---
title: "Get Knowledge Source"
method: GET
path: "/v1/smb/knowledge-sources/{source_id}"
tags: ["smb", "SMB"]
---

# Get Knowledge Source

`GET /v1/smb/knowledge-sources/{source_id}`

## Request

- Base URL: `https://api.elevenlabs.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elevenlabs.io/v1/smb/knowledge-sources/{source_id}`
- Auth: none declared

Get a specific knowledge source by ID

## Path parameters

- `source_id` string, required

## Headers

- `xi-api-key` string, nullable: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.
- `xi-workspace-id` string, nullable: The customer workspace a reseller's API key acts on.

## Response `200`

Successful Response

- SMBKnowledgeSourceDBModel: Database model for knowledge sources (files and URLs). Inherits: - id, workspace_id, from_db, to_db from BaseMongoDBModel - owner_user_id from NonSharableCollectionMixin - created_at_unix, updated_at_unix from SMBResourceDBModel - source_type, source_url, etc. from SMBKnowledgeSourceBase
  - `source_type` 'file' | 'url': Type of knowledge source.
  - `source_url` string, nullable
  - `last_scraped_at_unix` integer, nullable
  - `original_filename` string
  - `content_type` string
  - `file_size_bytes` integer
  - `status` 'processing' | 'ready' | 'error': Processing status for knowledge sources. Simple three-state machine: - PROCESSING: Any active work (uploading, crawling, extracting, etc.) - READY: Processing complete, results available - ERROR: Something went wrong (user can retry) Detailed progress is tracked via the `progress` field.
  - `error_message` string, nullable
  - `failure_reason` 'blocked_url' | 'dns_failure' | 'host_unreachable' | 'access_refused' | 'crawl_timeout' | 'no_pages' | 'no_content' | 'upstream_timeout' | 'upstream_error' | 'unknown': Why a run failed, as a bounded taxonomy. Set explicitly at each raise site rather than recovered from the message text, so rewording a user-facing string cannot silently reshape the metric. The ``UPSTREAM_*`` causes are the exception: an unclassified escape is sorted by its type in ``ScrapeRun.failed``, so a dependency outage (the agents knowledge-base routes, the sandbox) is not filed as ``UNKNOWN``.
  - `crawl_entire_site` boolean
  - `scraped_pages_count` integer
  - `content_preview` string, nullable
  - `processing_started_at_unix` integer, nullable
  - `_id` string, required
  - `created_at_unix` integer: Unix timestamp (seconds since epoch)
  - `updated_at_unix` integer: Unix timestamp (seconds since epoch)

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-28** `0e2bfc751634`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/smb/knowledge-sources/:source_id/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) - [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/0e2bfc751634?raw)
