POST
/
{guru_slug}
/
data-sources
/
curl --request POST \
  --url https://api.gurubase.io/api/v1/{guru_slug}/data-sources/ \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "youtube_urls": [
    "<string>"
  ],
  "website_urls": [
    "<string>"
  ],
  "zendesk_urls": [
    "<string>"
  ],
  "jira_urls": [
    "<string>"
  ],
  "confluence_urls": [
    "<string>"
  ],
  "text_sources": [
    {}
  ]
}'
[
    {
        "type": "YouTube",
        "url": "https://youtu.be/gAkwW2tuIqE",
        "status": "success",
        "id": 3275,
        "title": null
    },
    {
        "type": "YouTube",
        "url": "https://youtu.be/AhZ3YStdaQs",
        "status": "exists",
        "id": 3274,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/home/",
        "status": "success",
        "id": 3276,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/concepts/",
        "status": "exists",
        "id": 3269,
        "title": null
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/hc/en-us/articles/36075266746139-How-to-troubleshoot-Gurubase-self-hosted",
        "status": "success",
        "id": 3231,
        "title": "How to troubleshoot Gurubase self hosted"
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/agent/tickets/7",
        "status": "exists",
        "id": 3232,
        "title": "Test Subject"
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-1",
        "status": "success",
        "id": 3167,
        "title": null
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-2",
        "status": "exists",
        "id": 3168,
        "title": "Test issue"
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/overview",
        "status": "success",
        "id": 3335,
        "title": null
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/pages/884737/Gurubase+inner+workings",
        "status": "exists",
        "id": 3342,
        "title": "Gurubase inner workings"
    },
    {
        "type": "Text",
        "title": "Text data source",
        "content": "This is a text data source",
        "status": "success",
        "id": 8302
    }    
]

Add new data sources (YouTube videos, websites, Zendesk tickets/articles, etc.) to your Guru. The processing is asynchronous. Check the status of the data sources with the Get Data Sources endpoint.

PDF and Excel files should be uploaded directly through the Gurubase platform interface. We will add support for uploading PDFs and Excel files via the API in the future.

If you do not have the relevant integration for Jira, Zendesk, and Confluence while adding a new data source, an error is returned.

Path Parameters

guru_slug
string
required

The slug of the Guru to add data sources to

Body Parameters

youtube_urls
string[]

Array of YouTube video URLs to process

website_urls
string[]

Array of website URLs to index

zendesk_urls
string[]

Array of Zendesk ticket/article URLs to index

For Gurubase Self-hosted version, Zendesk integration is currently in beta and available to selected users. For Gurubase Cloud version, Zendesk integration is available to all users.

jira_urls
string[]

Array of Jira Issue URLs to index

For Gurubase Self-hosted version, Jira integration is currently in beta and available to selected users. For Gurubase Cloud version, Jira integration is available to all users.

confluence_urls
string[]

Array of Confluence Page URLs to index

For Gurubase Self-hosted version, Confluence integration is currently in beta and available to selected users. For Gurubase Cloud version, Confluence integration is available to all users.

text_sources
object[]

Array of text sources to index. Each object should contain:

  • name (string): Name of the source
  • content (string): Text content to index

If you send a text data source that has the same name as an existing one, it will be updated with the new content.

Response

The response is an array of processed data sources.

type
string

Type of data source (Website, YouTube, Jira, Zendesk, Confluence, etc.)

url
string

URL of the data source

This field is not present for data sources of Text type.

status
string

Processing status (e.g., “exists”, “success”)

id
number

Unique identifier for the data source

title
string

Title of the data source (can be null)

content
string

Content of the data source

This field is only present for data sources of Text type.

[
    {
        "type": "YouTube",
        "url": "https://youtu.be/gAkwW2tuIqE",
        "status": "success",
        "id": 3275,
        "title": null
    },
    {
        "type": "YouTube",
        "url": "https://youtu.be/AhZ3YStdaQs",
        "status": "exists",
        "id": 3274,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/home/",
        "status": "success",
        "id": 3276,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/concepts/",
        "status": "exists",
        "id": 3269,
        "title": null
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/hc/en-us/articles/36075266746139-How-to-troubleshoot-Gurubase-self-hosted",
        "status": "success",
        "id": 3231,
        "title": "How to troubleshoot Gurubase self hosted"
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/agent/tickets/7",
        "status": "exists",
        "id": 3232,
        "title": "Test Subject"
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-1",
        "status": "success",
        "id": 3167,
        "title": null
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-2",
        "status": "exists",
        "id": 3168,
        "title": "Test issue"
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/overview",
        "status": "success",
        "id": 3335,
        "title": null
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/pages/884737/Gurubase+inner+workings",
        "status": "exists",
        "id": 3342,
        "title": "Gurubase inner workings"
    },
    {
        "type": "Text",
        "title": "Text data source",
        "content": "This is a text data source",
        "status": "success",
        "id": 8302
    }    
]
POST
/
{guru_slug}
/
data-sources
/
curl --request POST \
  --url https://api.gurubase.io/api/v1/{guru_slug}/data-sources/ \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "youtube_urls": [
    "<string>"
  ],
  "website_urls": [
    "<string>"
  ],
  "zendesk_urls": [
    "<string>"
  ],
  "jira_urls": [
    "<string>"
  ],
  "confluence_urls": [
    "<string>"
  ],
  "text_sources": [
    {}
  ]
}'
[
    {
        "type": "YouTube",
        "url": "https://youtu.be/gAkwW2tuIqE",
        "status": "success",
        "id": 3275,
        "title": null
    },
    {
        "type": "YouTube",
        "url": "https://youtu.be/AhZ3YStdaQs",
        "status": "exists",
        "id": 3274,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/home/",
        "status": "success",
        "id": 3276,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/concepts/",
        "status": "exists",
        "id": 3269,
        "title": null
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/hc/en-us/articles/36075266746139-How-to-troubleshoot-Gurubase-self-hosted",
        "status": "success",
        "id": 3231,
        "title": "How to troubleshoot Gurubase self hosted"
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/agent/tickets/7",
        "status": "exists",
        "id": 3232,
        "title": "Test Subject"
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-1",
        "status": "success",
        "id": 3167,
        "title": null
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-2",
        "status": "exists",
        "id": 3168,
        "title": "Test issue"
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/overview",
        "status": "success",
        "id": 3335,
        "title": null
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/pages/884737/Gurubase+inner+workings",
        "status": "exists",
        "id": 3342,
        "title": "Gurubase inner workings"
    },
    {
        "type": "Text",
        "title": "Text data source",
        "content": "This is a text data source",
        "status": "success",
        "id": 8302
    }    
]

Add new data sources (YouTube videos, websites, Zendesk tickets/articles, etc.) to your Guru. The processing is asynchronous. Check the status of the data sources with the Get Data Sources endpoint.

PDF and Excel files should be uploaded directly through the Gurubase platform interface. We will add support for uploading PDFs and Excel files via the API in the future.

If you do not have the relevant integration for Jira, Zendesk, and Confluence while adding a new data source, an error is returned.

Path Parameters

guru_slug
string
required

The slug of the Guru to add data sources to

Body Parameters

youtube_urls
string[]

Array of YouTube video URLs to process

website_urls
string[]

Array of website URLs to index

zendesk_urls
string[]

Array of Zendesk ticket/article URLs to index

For Gurubase Self-hosted version, Zendesk integration is currently in beta and available to selected users. For Gurubase Cloud version, Zendesk integration is available to all users.

jira_urls
string[]

Array of Jira Issue URLs to index

For Gurubase Self-hosted version, Jira integration is currently in beta and available to selected users. For Gurubase Cloud version, Jira integration is available to all users.

confluence_urls
string[]

Array of Confluence Page URLs to index

For Gurubase Self-hosted version, Confluence integration is currently in beta and available to selected users. For Gurubase Cloud version, Confluence integration is available to all users.

text_sources
object[]

Array of text sources to index. Each object should contain:

  • name (string): Name of the source
  • content (string): Text content to index

If you send a text data source that has the same name as an existing one, it will be updated with the new content.

Response

The response is an array of processed data sources.

type
string

Type of data source (Website, YouTube, Jira, Zendesk, Confluence, etc.)

url
string

URL of the data source

This field is not present for data sources of Text type.

status
string

Processing status (e.g., “exists”, “success”)

id
number

Unique identifier for the data source

title
string

Title of the data source (can be null)

content
string

Content of the data source

This field is only present for data sources of Text type.

[
    {
        "type": "YouTube",
        "url": "https://youtu.be/gAkwW2tuIqE",
        "status": "success",
        "id": 3275,
        "title": null
    },
    {
        "type": "YouTube",
        "url": "https://youtu.be/AhZ3YStdaQs",
        "status": "exists",
        "id": 3274,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/home/",
        "status": "success",
        "id": 3276,
        "title": null
    },
    {
        "type": "Website",
        "url": "https://kubernetes.io/docs/concepts/",
        "status": "exists",
        "id": 3269,
        "title": null
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/hc/en-us/articles/36075266746139-How-to-troubleshoot-Gurubase-self-hosted",
        "status": "success",
        "id": 3231,
        "title": "How to troubleshoot Gurubase self hosted"
    },
    {
        "type": "Zendesk",
        "url": "https://gurubase.zendesk.com/agent/tickets/7",
        "status": "exists",
        "id": 3232,
        "title": "Test Subject"
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-1",
        "status": "success",
        "id": 3167,
        "title": null
    },
    {
        "type": "Jira",
        "url": "https://domain.atlassian.net/browse/KAN-2",
        "status": "exists",
        "id": 3168,
        "title": "Test issue"
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/overview",
        "status": "success",
        "id": 3335,
        "title": null
    },
    {
        "type": "Confluence",
        "url": "https://aral-yektatest.atlassian.net/wiki/spaces/araltestsp/pages/884737/Gurubase+inner+workings",
        "status": "exists",
        "id": 3342,
        "title": "Gurubase inner workings"
    },
    {
        "type": "Text",
        "title": "Text data source",
        "content": "This is a text data source",
        "status": "success",
        "id": 8302
    }    
]