> ## Documentation Index
> Fetch the complete documentation index at: https://ago.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Custom Data Source

> Update metadata and optionally extend the schema (append-only columns).



## OpenAPI

````yaml /openapi-v1.json put /api/v1/custom-data-sources/{id_or_slug}
openapi: 3.1.0
info:
  title: AGO Public API
  version: 1.0.0
  description: Programmatic access to your AGO workspace.
servers:
  - url: https://{tenant_id}.api.useago.com
    description: AGO Public API v1
    variables:
      tenant_id:
        default: your-tenant-id
        description: Your AGO tenant identifier
security: []
paths:
  /api/v1/custom-data-sources/{id_or_slug}:
    put:
      tags:
        - Custom Data Sources
      summary: Update Custom Data Source
      description: Update metadata and optionally extend the schema (append-only columns).
      operationId: core_api_v1_controllers_custom_data_sources_update_custom_data_source
      parameters:
        - in: path
          name: id_or_slug
          schema:
            title: Id Or Slug
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomDataSourceUpdateSchema'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDataSourceDetailSchema'
      security:
        - ScopedAPIKeyAuth: []
components:
  schemas:
    CustomDataSourceUpdateSchema:
      description: >-
        Metadata update + append-only schema extension (add new nullable
        columns).
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        extraction_prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Extraction Prompt
        is_active:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Active
        added_columns:
          anyOf:
            - items:
                $ref: '#/components/schemas/ColumnDefinition'
              type: array
            - type: 'null'
          title: Added Columns
        searchable_fields_to_add:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Searchable Fields To Add
        label_field:
          anyOf:
            - type: string
            - type: 'null'
          title: Label Field
      title: CustomDataSourceUpdateSchema
      type: object
    CustomDataSourceDetailSchema:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        name:
          title: Name
          type: string
        slug:
          title: Slug
          type: string
        description:
          title: Description
          type: string
        extraction_prompt:
          title: Extraction Prompt
          type: string
        is_active:
          title: Is Active
          type: boolean
        schema_definition:
          $ref: '#/components/schemas/CustomDataSourceSchema'
        embedding_model_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Embedding Model Id
        created_at:
          format: date-time
          title: Created At
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - name
        - slug
        - description
        - extraction_prompt
        - is_active
        - schema_definition
        - embedding_model_id
        - created_at
        - updated_at
      title: CustomDataSourceDetailSchema
      type: object
    ColumnDefinition:
      properties:
        name:
          title: Name
          type: string
        type:
          $ref: '#/components/schemas/CustomColumnType'
        nullable:
          default: true
          title: Nullable
          type: boolean
        indexed:
          default: false
          title: Indexed
          type: boolean
      required:
        - name
        - type
      title: ColumnDefinition
      type: object
    CustomDataSourceSchema:
      description: >-
        Schema of a custom datasource: its columns, search config, and display
        field.
      properties:
        columns:
          items:
            $ref: '#/components/schemas/ColumnDefinition'
          maxItems: 200
          title: Columns
          type: array
        searchable_fields:
          description: >-
            Custom column names whose values are concatenated into
            searchable_text for embedding.
          items:
            type: string
          title: Searchable Fields
          type: array
        label_field:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Custom column name used as the human-readable label in UIs and agent
            outputs.
          title: Label Field
      title: CustomDataSourceSchema
      type: object
    CustomColumnType:
      description: Whitelist of column types a tenant can define on a custom datasource.
      enum:
        - text
        - integer
        - bigint
        - numeric
        - boolean
        - date
        - timestamp
        - text_array
      title: CustomColumnType
      type: string
  securitySchemes:
    ScopedAPIKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````