Airweave sources API

The sources API from Airweave — 2 operation(s) for sources.

OpenAPI Specification

airweave-sources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API Reference collections sources API
  version: 1.0.0
servers:
- url: https://api.airweave.ai
  description: Production
- url: http://localhost:8001
  description: Local
tags:
- name: sources
paths:
  /sources:
    get:
      operationId: list-sources-get
      summary: List Sources
      description: 'Retrieve all available data source connectors.


        Returns the complete catalog of source types that Airweave can connect to,

        including their authentication methods, configuration requirements, and

        supported features. Use this endpoint to discover which integrations are

        available for your organization.


        Each source includes:

        - **Authentication methods**: How to connect (OAuth, API key, etc.)

        - **Configuration schemas**: What settings are required or optional

        - **Supported auth providers**: Pre-configured OAuth providers available'
      tags:
      - sources
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Source'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
  /sources/{short_name}:
    get:
      operationId: get-sources-short-name-get
      summary: Get Source
      description: 'Retrieve detailed information about a specific data source connector.


        Returns the complete configuration for a source type, including:


        - **Authentication fields**: Schema for credentials required to connect

        - **Configuration fields**: Schema for optional settings and customization

        - **Supported auth providers**: Pre-configured OAuth providers available for this source


        Use this endpoint before creating a source connection to understand what

        authentication and configuration values are required.'
      tags:
      - sources
      parameters:
      - name: short_name
        in: path
        description: Technical identifier of the source type (e.g., 'github', 'stripe', 'slack')
        required: true
        schema:
          type: string
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Source'
        '404':
          description: Source Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
components:
  schemas:
    ValidationErrorLocItems:
      oneOf:
      - type: string
      - type: integer
      title: ValidationErrorLocItems
    Fields:
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ConfigField'
      required:
      - fields
      description: Fields model.
      title: Fields
    Source:
      type: object
      properties:
        name:
          type: string
          description: Human-readable name of the data source connector (e.g., 'GitHub', 'Stripe', 'PostgreSQL').
        description:
          type:
          - string
          - 'null'
          description: Detailed description explaining what data this source can extract and its typical use cases.
        auth_methods:
          type:
          - array
          - 'null'
          items:
            type: string
          description: List of supported authentication methods (e.g., 'direct', 'oauth_browser').
        oauth_type:
          type:
          - string
          - 'null'
          description: OAuth token type for OAuth sources (e.g., 'access_only', 'with_refresh').
        requires_byoc:
          type: boolean
          default: false
          description: Whether this OAuth source requires users to bring their own client.
        auth_config_class:
          type:
          - string
          - 'null'
          description: Python class name that defines the authentication configuration fields required for this source (only for DIRECT auth).
        config_class:
          type:
          - string
          - 'null'
          description: Python class name that defines the source-specific configuration options and parameters.
        short_name:
          type: string
          description: Technical identifier used internally to reference this source type. Must be unique across all sources.
        class_name:
          type: string
          description: Python class name of the source implementation that handles data extraction logic.
        output_entity_definitions:
          type: array
          items:
            type: string
          description: List of entity definition short names that this source can produce (e.g., ['asana_task_entity', 'asana_project_entity']).
        labels:
          type:
          - array
          - 'null'
          items:
            type: string
          description: Categorization tags to help users discover and filter sources by domain or use case.
        supports_continuous:
          type: boolean
          default: false
          description: Whether this source supports cursor-based continuous syncing for incremental data extraction.
        federated_search:
          type: boolean
          default: false
          description: Whether this source uses federated search instead of traditional syncing.
        supports_temporal_relevance:
          type: boolean
          default: true
          description: Whether this source's entities have timestamps that enable recency-based ranking.
        supports_access_control:
          type: boolean
          default: false
          description: Whether this source supports document-level access control.
        rate_limit_level:
          type:
          - string
          - 'null'
          description: 'Rate limiting level for this source: ''org'' (organization-wide), ''connection'' (per-connection/per-user), or None (no rate limiting).'
        feature_flag:
          type:
          - string
          - 'null'
          description: Feature flag required to access this source. If set, only organizations with this feature enabled can see/use this source.
        supports_browse_tree:
          type: boolean
          default: false
          description: Whether this source supports lazy-loaded browse tree for selective node syncing.
        auth_fields:
          oneOf:
          - $ref: '#/components/schemas/Fields'
          - type: 'null'
          description: Schema definition for authentication fields required to connect to this source.
        config_fields:
          $ref: '#/components/schemas/Fields'
          description: Schema definition for configuration fields required to customize this source.
        supported_auth_providers:
          type:
          - array
          - 'null'
          items:
            type: string
          description: List of auth provider short names that support this source.
      required:
      - name
      - short_name
      - class_name
      - config_fields
      description: 'Complete source representation with authentication and configuration schemas.


        Served from the in-memory SourceRegistry — no database row needed.'
      title: Source
    ValidationError:
      type: object
      properties:
        loc:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorLocItems'
        msg:
          type: string
        type:
          type: string
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ConfigField:
      type: object
      properties:
        name:
          type: string
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        type:
          type: string
        required:
          type: boolean
          default: true
        items_type:
          type:
          - string
          - 'null'
        feature_flag:
          type:
          - string
          - 'null'
        is_secret:
          type: boolean
          default: false
        enum_values:
          type:
          - array
          - 'null'
          items:
            type: string
      required:
      - name
      - title
      - type
      description: Config field model.
      title: ConfigField
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
      title: HTTPValidationError
    NotFoundErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Error message describing what was not found
      required:
      - detail
      description: Response returned when a resource is not found (HTTP 404).
      title: NotFoundErrorResponse
    RateLimitErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Error message explaining the rate limit
      required:
      - detail
      description: 'Response returned when rate limit is exceeded (HTTP 429).


        The API enforces rate limits to ensure fair usage. When exceeded,

        wait for the duration specified in the Retry-After header before retrying.'
      title: RateLimitErrorResponse
  securitySchemes:
    default:
      type: apiKey
      in: header
      name: x-api-key