> ## Documentation Index
> Fetch the complete documentation index at: https://cortex-e852fafe-t3code-rewrite-docs-declutter.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List Connector Providers

> List the providers you can connect, or describe one: its credentials and the fields you can filter on.

`GET /connectors/providers` does two jobs with one endpoint:

* **Without `id`,** it returns the catalog of providers you can connect, in display order.
* **With `id={provider}`,** it describes that one provider: the credentials it needs and the fields you can search and filter on.

Use a catalog entry's `provider` value as `provider` in [Create Connector](/api-reference/v2/endpoint/create-connector), and as `id` to read that provider's credential schema.

<RequestExample>
  ```bash List every provider theme={"dark"}
  curl 'https://api.hydradb.com/connectors/providers' \
    -H "Authorization: Bearer $HYDRA_DB_API_KEY" \
    -H "API-Version: 2"
  ```

  ```bash Describe one provider theme={"dark"}
  curl 'https://api.hydradb.com/connectors/providers?id=affinity' \
    -H "Authorization: Bearer $HYDRA_DB_API_KEY" \
    -H "API-Version: 2"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 List every provider theme={"dark"}
  {
    "providers": [
      {
        "provider": "slack",
        "category": "Communication",
        "supported": true,
        "moveit_support": false,
        "webhook_support": false,
        "is_alpha": false,
        "is_beta": false,
        "rank": 1
      }
    ]
  }
  ```

  ```json 200 Describe one provider theme={"dark"}
  {
    "provider": "affinity",
    "connector_type": "affinity",
    "indexed_object_types": ["list_entries", "notes"],
    "searchable_fields": [
      {
        "name": "author",
        "data_type": "string",
        "description": "Resolved name of the note's creator."
      }
    ],
    "filterable_fields": [
      {
        "name": "container_id",
        "data_type": "string",
        "filter_key": "additional_metadata.container_id",
        "description": "Affinity list ID the record belongs to."
      }
    ],
    "credential_schema": {
      "type": "object",
      "properties": { "...": "JSON Schema for the provider's credential inputs" }
    }
  }
  ```
</ResponseExample>

## The catalog

Only providers you can connect are listed, so `supported` is always `true`. `webhook_support` is `true` for providers whose data arrives by webhook instead of scheduled syncs. `rank` is `null` for providers without a display position; they are listed last, alphabetically.

## One provider

* `credential_schema` is the JSON Schema for `credentials` on [Create Connector](/api-reference/v2/endpoint/create-connector) and [Update Connector](/api-reference/v2/endpoint/update-connector). It is omitted when unavailable.
* `setup_guide`, `token_scopes` and `token_scopes_note` appear for providers that need extra setup, such as creating a token with specific scopes.
* `indexed_object_types` are the provider's record types that become searchable.
* `searchable_fields` are values written into each synced document's text. Search finds them, but you cannot target one field on its own.
* `filterable_fields` are exact-match filters. Each entry's `filter_key` is where the value lives in `metadata_filters`.

A `filter_key` such as `additional_metadata.container_id` is written as a nested object in a query:

```json Filtering by a provider field theme={"dark"}
{
  "database": "acme_corp",
  "query": "diligence notes",
  "metadata_filters": {
    "additional_metadata": { "container_id": "12345" }
  }
}
```

A `filter_key` with no prefix, such as `connector_id`, goes directly under `metadata_filters`.

For Gmail, filter on `account_email` (`additional_metadata.account_email`) to scope results to one connected mailbox.

## Errors

* `404`: with `id`, no provider has that id. Check it against the catalog.

## Related Resources

* [Create Connector](/api-reference/v2/endpoint/create-connector): connect a provider
* [Connectors - Overview](/api-reference/v2/endpoint/connectors-overview)


## OpenAPI

````yaml api-reference/v2/openapi.json GET /connectors/providers
openapi: 3.1.0
info:
  contact:
    email: support@hydradb.com
    name: HydraDB Support
  description: >-
    HydraDB Application API — knowledge ingestion, search, and memory
    management.
  license:
    name: Proprietary
  title: HydraDB Application API
  version: 0.1.0
servers:
  - description: Production server
    url: https://api.hydradb.com
security: []
externalDocs:
  description: ''
  url: ''
paths:
  /connectors/providers:
    get:
      tags:
        - connectors
      summary: List supported providers, or describe one in detail
      description: >-
        Lists the providers you can connect. With `id`, describes one: its
        searchable object types and fields (with `filter_key`),
        `credential_schema`, and `setup_guide` when needed.
      parameters:
        - description: Provider name (e.g. slack, gmail). Omit to list all.
          in: query
          name: id
          schema:
            example: HydraDoc1234
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.providerListResponse'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.ErrorResponse'
          description: Not Found
components:
  schemas:
    handler.providerListResponse:
      properties:
        providers:
          description: Providers you can connect, in catalog display order.
          example:
            - is_alpha: true
              is_beta: true
              moveit_support: true
              provider: slack
              rank: 1
              rbac_support: true
              supported: true
              webhook_support: true
          items:
            $ref: '#/components/schemas/handler.catalogConnector'
          type: array
          uniqueItems: false
      type: object
    handler.ErrorResponse:
      properties:
        data:
          description: Always `null` on this error response.
        detail:
          $ref: '#/components/schemas/handler.ErrorDetail'
          description: Structured error detail with code, message, and deprecation hints.
          example:
            deprecated: true
            deprecated_field: tenant_id
            error_code: VALIDATION_ERROR
            message: Request validation failed
            preferred_field: database
        error:
          $ref: '#/components/schemas/handler.apiError'
          description: Error message, empty string on success.
          example:
            code: DATABASE_NOT_FOUND
            message: Database not found
        meta:
          $ref: '#/components/schemas/handler.ErrorMeta'
          example:
            latency_ms: 12.3
            request_id: 9d13aef4-02f4-4e73-8c62-4c2601d04f9d
        success:
          description: Whether the request succeeded.
          example: false
          type: boolean
      type: object
    handler.catalogConnector:
      properties:
        category:
          description: Display grouping for the provider, such as `Communication`.
          type: string
        is_alpha:
          description: True when the connector is in alpha.
          example: true
          type: boolean
        is_beta:
          description: True when the connector is in beta.
          example: true
          type: boolean
        moveit_support:
          description: >-
            Which sync engine serves the provider. Informational: you connect
            every provider the same way, and `credential_schema` already
            reflects it.
          example: true
          type: boolean
        provider:
          description: >-
            External provider being synced (e.g. `slack`, `github`, `linear`,
            `notion`, `gmail`).
          example: slack
          type: string
        rank:
          description: >-
            Catalog display order; lower ranks appear first. `null` when
            unranked.
          example: 1
          type: integer
        rbac_description:
          description: >-
            One-line summary of which provider permissions are captured as
            document access rules. Not returned by this endpoint.
          type: string
        rbac_support:
          description: Reserved. Always `false` on this endpoint.
          example: true
          type: boolean
        supported:
          description: >-
            Whether the provider can be connected. Only supported providers are
            listed, so this is always `true`.
          example: true
          type: boolean
        webhook_support:
          description: >-
            True when the provider's data arrives by inbound webhook instead of
            scheduled polling. `credential_schema` already describes what to
            send.
          example: true
          type: boolean
      type: object
    handler.ErrorDetail:
      properties:
        deprecated:
          description: Whether this response concerns a deprecated field or route.
          example: true
          type: boolean
        deprecated_field:
          description: The deprecated field name.
          example: tenant_id
          type: string
        error_code:
          description: Machine-readable error classification code.
          example: VALIDATION_ERROR
          type: string
        message:
          description: Human-readable description of the error.
          example: Request validation failed
          type: string
        preferred_field:
          description: The canonical replacement for the deprecated field.
          example: database
          type: string
        success:
          deprecated: true
          description: >-
            Deprecated: always `false`. Read the HTTP status, then `error.code`
            and `error.message`.
          example: false
          type: boolean
          x-deprecated: 'true'
      type: object
    handler.apiError:
      properties:
        code:
          description: Machine-readable error code (e.g. `DATABASE_NOT_FOUND`).
          example: DATABASE_NOT_FOUND
          type: string
        message:
          description: Human-readable description of the error.
          example: Database not found
          type: string
      type: object
    handler.ErrorMeta:
      properties:
        api_version:
          description: Version of the API that served the request, for example `2.0.1`.
          type: string
        latency_ms:
          description: Server-side processing time in milliseconds.
          example: 12.3
          type: number
        request_id:
          description: Unique identifier for this request, useful for support and tracing.
          example: 9d13aef4-02f4-4e73-8c62-4c2601d04f9d
          type: string
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.