Syllable Data Sources API

Operations related to data sources. A data source is a blob of text that can be made available to an agent's general info tools to provide more context to the agent when generating its responses. For more information, see [Console docs](https://docs.syllable.ai/Resources/DataSources).

Operations 5

GET /api/v1/data_sources/ List Data Sources #
POST /api/v1/data_sources/ Create Data Source #
PUT /api/v1/data_sources/ Update Data Source #
GET /api/v1/data_sources/{data_source_id} Get Data Source #
DELETE /api/v1/data_sources/{data_source_id} Delete Data Source #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/syllable-data-sources-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

syllable-data-sources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Data Sources API
  description: '# Syllable Platform SDK


    Syllable SDK gives you the power of awesome AI agentry.'
  version: 0.0.3
servers:
- url: https://api.syllable.cloud
  description: API server
tags:
- name: Data Sources
  description: Operations related to data sources. A data source is a blob of text that can be made available to an agent's general info tools to provide more context to the agent when generating its responses. For more information, see Console docs.
paths:
  /api/v1/data_sources/:
    get:
      tags:
      - Data Sources
      summary: List Data Sources
      description: Fetch metadata about all data sources, not including their text.
      operationId: data_sources_list
      security:
      - APIKeyHeader: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: The page number from which to start (0-based)
          examples:
          - 0
          default: 0
          title: Page
        description: The page number from which to start (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: The maximum number of items to return
          examples:
          - 25
          default: 25
          title: Limit
        description: The maximum number of items to return
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/DataSourceProperties'
          description: String names of fields to search. Correspond by index to search field values
          examples:
          - name
          default: []
          title: Search Fields
        description: String names of fields to search. Correspond by index to search field values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
          examples:
          - Some Object Name
          default: []
          title: Search Field Values
        description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/DataSourceProperties'
          - type: 'null'
          description: The field whose value should be used to order the results
          examples:
          - name
          title: Order By
        description: The field whose value should be used to order the results
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: The direction in which to order the results
          title: Order By Direction
        description: The direction in which to order the results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/DataSourceProperties'
          - type: 'null'
          description: The fields to include in the response
          default: []
          title: Fields
        description: The fields to include in the response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The start datetime for filtering results
          examples:
          - '2023-01-01T00:00:00Z'
          title: Start Datetime
        description: The start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The end datetime for filtering results
          examples:
          - '2024-01-01T00:00:00Z'
          title: End Datetime
        description: The end datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_DataSourceMetadataResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.data_sources.list(page=0, limit=25, search_fields=[\n        models.DataSourceProperties.NAME,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.dataSources.list({\n    page: 0,\n    searchFields: [\n      \"name\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    post:
      tags:
      - Data Sources
      summary: Create Data Source
      description: Create a new data source.
      operationId: data_sources_create
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSourceCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.data_sources.create(request={\n        \"name\": \"Rain\",\n        \"description\": \"Information about rain.\",\n        \"labels\": [\n            \"Weather Info\",\n        ],\n        \"chunk\": False,\n        \"chunk_delimiter\": \"\",\n        \"text\": \"The following are names and addresses of pizza shops.\\n\\nCool Pizza, 123 Main St.\\n\\nReally Good Pizza, 456 Water St.\\n\\nThe Best Pizza, 789 Circle Dr.\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.dataSources.create({\n    name: \"Rain\",\n    description: \"Information about rain.\",\n    labels: [\n      \"Weather Info\",\n    ],\n    chunk: false,\n    chunkDelimiter: \"\",\n    text: \"The following are names and addresses of pizza shops.\\n\\nCool Pizza, 123 Main St.\\n\\nReally Good Pizza, 456 Water St.\\n\\nThe Best Pizza, 789 Circle Dr.\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - Data Sources
      summary: Update Data Source
      description: Update an existing data source.
      operationId: data_sources_update
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSourceUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.data_sources.update(request={\n        \"name\": \"Rain\",\n        \"description\": \"Information about rain.\",\n        \"labels\": [\n            \"Weather Info\",\n        ],\n        \"chunk\": False,\n        \"chunk_delimiter\": \"\",\n        \"id\": 1,\n        \"edit_comments\": \"Added new info\",\n        \"text\": \"The following are names and addresses of pizza shops.\\n\\nCool Pizza, 123 Main St.\\n\\nReally Good Pizza, 456 Water St.\\n\\nThe Best Pizza, 789 Circle Dr.\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.dataSources.update({\n    name: \"Rain\",\n    description: \"Information about rain.\",\n    labels: [\n      \"Weather Info\",\n    ],\n    chunk: false,\n    chunkDelimiter: \"\",\n    id: 1,\n    editComments: \"Added new info\",\n    text: \"The following are names and addresses of pizza shops.\\n\\nCool Pizza, 123 Main St.\\n\\nReally Good Pizza, 456 Water St.\\n\\nThe Best Pizza, 789 Circle Dr.\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/data_sources/{data_source_id}:
    get:
      tags:
      - Data Sources
      summary: Get Data Source
      description: Fetch a given data source, including its text.
      operationId: data_sources_get_by_id
      security:
      - APIKeyHeader: []
      parameters:
      - name: data_source_id
        in: path
        required: true
        schema:
          type: integer
          title: Data Source Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.data_sources.get_by_id(data_source_id=87219)\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.dataSources.getById({\n    dataSourceId: 87219,\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - Data Sources
      summary: Delete Data Source
      description: Delete a given data source.
      operationId: data_sources_delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: data_source_id
        in: path
        required: true
        schema:
          type: integer
          title: Data Source Id
      - name: reason
        in: query
        required: true
        schema:
          type: string
          title: Reason
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.data_sources.delete(data_source_id=509584, reason=\"<value>\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.dataSources.delete({\n    dataSourceId: 509584,\n    reason: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    DataSourceDetailResponse:
      properties:
        name:
          type: string
          title: Name
          description: The data source name. Must be unique within suborg. Cannot contain whitespace.
          examples:
          - Rain
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the data source.
          examples:
          - Information about rain.
        labels:
          items:
            type: string
          type: array
          title: Labels
          description: Searchable labels for the data source. Can be included in agent.prompt_tool_defaults for a given tool to give the agent access to data sources with those labels when calling that tool.
          default: []
          examples:
          - - Weather Info
        chunk:
          type: boolean
          title: Chunk
          description: Whether the content should be split into smaller chunks. (This feature is coming in the future - currently this value will always be treated as False.)
          examples:
          - false
        chunk_delimiter:
          anyOf:
          - type: string
          - type: 'null'
          title: Chunk Delimiter
          description: String that should be treated as delimiter between intended chunks. (This feature is coming in the future - currently this value will always be treated as None.)
          examples:
          - ''
        id:
          type: integer
          title: Id
          description: The data source ID.
          examples:
          - 1
        edit_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Edit Comments
          description: The comments for the most recent edit to the data source
          examples:
          - Added new info
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Timestamp of most recent update
        last_updated_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated By
          description: Email of the user who last updated the data source
          examples:
          - user@email.com
        text:
          type: string
          title: Text
          description: Information that the data source will provide to the agent accessing it.
      type: object
      required:
      - name
      - chunk
      - id
      - updated_at
      - last_updated_by
      - text
      title: DataSourceDetailResponse
      description: 'Metadata about a data source, along with the text. A data source is a blob of text that

        can be made available to an agent''s general info tools to provide more context to the agent when

        generating its responses. For more information, see

        [Console docs](https://docs.syllable.ai/Resources/DataSources).'
    DataSourceCreateRequest:
      properties:
        name:
          type: string
          title: Name
          description: The data source name. Must be unique within suborg. Cannot contain whitespace.
          examples:
          - Rain
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the data source.
          examples:
          - Information about rain.
        labels:
          items:
            type: string
          type: array
          title: Labels
          description: Searchable labels for the data source. Can be included in agent.prompt_tool_defaults for a given tool to give the agent access to data sources with those labels when calling that tool.
          default: []
          examples:
          - - Weather Info
        chunk:
          type: boolean
          title: Chunk
          description: Whether the content should be split into smaller chunks. (This feature is coming in the future - currently this value will always be treated as False.)
          examples:
          - false
        chunk_delimiter:
          anyOf:
          - type: string
          - type: 'null'
          title: Chunk Delimiter
          description: String that should be treated as delimiter between intended chunks. (This feature is coming in the future - currently this value will always be treated as None.)
          examples:
          - ''
        text:
          type: string
          title: Text
          description: Information that the data source will provide to the agent accessing it. It is recommended to include a sentence at the beginning providing context to the LLM for the information in the data source.
          examples:
          - 'The following are names and addresses of pizza shops.


            Cool Pizza, 123 Main St.


            Really Good Pizza, 456 Water St.


            The Best Pizza, 789 Circle Dr.'
      type: object
      required:
      - name
      - chunk
      - text
      title: DataSourceCreateRequest
      description: Request model to create a data source.
    DataSourceMetadataResponse:
      properties:
        name:
          type: string
          title: Name
          description: The data source name. Must be unique within suborg. Cannot contain whitespace.
          examples:
          - Rain
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the data source.
          examples:
          - Information about rain.
        labels:
          items:
            type: string
          type: array
          title: Labels
          description: Searchable labels for the data source. Can be included in agent.prompt_tool_defaults for a given tool to give the agent access to data sources with those labels when calling that tool.
          default: []
          examples:
          - - Weather Info
        chunk:
          type: boolean
          title: Chunk
          description: Whether the content should be split into smaller chunks. (This feature is coming in the future - currently this value will always be treated as False.)
          examples:
          - false
        chunk_delimiter:
          anyOf:
          - type: string
          - type: 'null'
          title: Chunk Delimiter
          description: String that should be treated as delimiter between intended chunks. (This feature is coming in the future - currently this value will always be treated as None.)
          examples:
          - ''
        id:
          type: integer
          title: Id
          description: The data source ID.
          examples:
          - 1
        edit_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Edit Comments
          description: The comments for the most recent edit to the data source
          examples:
          - Added new info
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Timestamp of most recent update
        last_updated_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated By
          description: Email of the user who last updated the data source
          examples:
          - user@email.com
      type: object
      required:
      - name
      - chunk
      - id
      - updated_at
      - last_updated_by
      title: DataSourceMetadataResponse
      description: 'Metadata about a data source, not including the text. A data source is a blob of text that

        can be made available to an agent''s general info tools to provide more context to the agent when

        generating its responses. For more information, see

        [Console docs](https://docs.syllable.ai/Resources/DataSources).'
    ListResponse_DataSourceMetadataResponse_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/DataSourceMetadataResponse'
          type: array
          title: Items
          description: List of items returned from the query
          examples: []
        page:
          type: integer
          title: Page
          description: The page number of the results (0-based)
          examples:
          - 0
        page_size:
          type: integer
          title: Page Size
          description: The number of items returned per page
          examples:
          - 25
        total_pages:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Pages
          description: The total number of pages of results given the indicated page size
          examples:
          - 4
        total_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Count
          description: The total number of items returned from the query
          examples:
          - 100
      type: object
      required:
      - items
      - page
      - page_size
      title: ListResponse[DataSourceMetadataResponse]
    DataSourceProperties:
      type: string
      enum:
      - name
      - description
      - labels
      - chunk
      - chunk_delimiter
      - updated_at
      - last_updated_by
      title: DataSourceProperties
      description: Names of data source fields supported for filtering/sorting on list endpoint.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DataSourceUpdateRequest:
      properties:
        name:
          type: string
          title: Name
          description: The data source name. Must be unique within suborg. Cannot contain whitespace.
          examples:
          - Rain
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the data source.
          examples:
          - Information about rain.
        labels:
          items:
            type: string
          type: array
          title: Labels
          description: Searchable labels for the data source. Can be included in agent.prompt_tool_defaults for a given tool to give the agent access to data sources with those labels when calling that tool.
          default: []
          examples:
          - - Weather Info
        chunk:
          type: boolean
          title: Chunk
          description: Whether the content should be split into smaller chunks. (This feature is coming in the future - currently this value will always be treated as False.)
          examples:
          - false
        chunk_delimiter:
          anyOf:
          - type: string
          - type: 'null'
          title: Chunk Delimiter
          description: String that should be treated as delimiter between intended chunks. (This feature is coming in the future - currently this value will always be treated as None.)
          examples:
          - ''
        id:
          type: integer
          title: Id
          description: The data source ID.
          examples:
          - 1
        edit_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Edit Comments
          description: The comments for the most recent edit to the data source
          examples:
          - Added new info
        text:
          type: string
          title: Text
          description: Information that the data source will provide to the agent accessing it. It is recommended to include a sentence at the beginning providing context to the LLM for the information in the data source.
          examples:
          - 'The following are names and addresses of pizza shops.


            Cool Pizza, 123 Main St.


            Really Good Pizza, 456 Water St.


            The Best Pizza, 789 Circle Dr.'
      type: object
      required:
      - name
      - chunk
      - id
      - text
      title: DataSourceUpdateRequest
      description: Request model to update an existing data source.
    OrderByDirection:
      type: string
      enum:
      - asc
      - desc
      title: OrderByDirection
      description: The direction in which to order list results, either ascending or descending.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: Syllable-API-Key
x-speakeasy-name-override:
- operationId: .*_list$
  methodNameOverride: list
- operationId: .*_create$
  methodNameOverride: create
- operationId: .*_update$
  methodNameOverride: update
- operationId: .*_upload$
  methodNameOverride: upload
- operationId: .*_delete$
  methodNameOverride: delete
- operationId: .*_get_by_id$
  methodNameOverride: get_by_id
- operationId: .*_get_by_name$
  methodNameOverride: get_by_name
- operationId: .*_add$
  methodNameOverride: add
- operationId: .*_remove$
  methodNameOverride: remove
- operationId: .*_results$
  methodNameOverride: results
- operationId: .*_queue_work$
  methodNameOverride: queue_work
- operationId: .*_activate$
  methodNameOverride: activate
- operationId: .*_inactivate$
  methodNameOverride: inactivate
- operationId: .*_list_files$
  methodNameOverride: list_files
- operationId: .*_move_files$
  methodNameOverride: move_files
- operationId: .*_upload_file$
  methodNameOverride: upload_file