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

# List Connector Resources

> List configured resources and their sync state.

export const Field = ({name, type, required, recommended}) => {
  const label = required ? 'required' : recommended ? 'recommended' : null;
  const typeLabel = typeof type === 'string' ? type : null;
  const ariaParts = [name, typeLabel && `${typeLabel}`, label].filter(Boolean);
  return <span aria-label={ariaParts.join(', ')} className={label ? 'field-wrap has-field-tip' : 'field-wrap'} style={{
    position: 'relative',
    cursor: label ? 'default' : undefined
  }} tabIndex={label ? 0 : undefined}>
      <span className="field-name-row">
        <code>{name}</code>
        {required && <span className="field-req"> *</span>}
        {recommended && <span className="field-rec"> ●</span>}
      </span>
      {type && <span className="field-type">{type}</span>}
      {label && <span className="field-tip" role="tooltip">
          {label}
        </span>}
    </span>;
};

Returns all resources configured on a connector and their current sync state. Poll `provider_cursor` after triggering a sync  -  a non-empty value confirms the sync ran.

<RequestExample>
  ```bash cURL theme={null}
  curl 'https://api.hydradb.com/connectors/{id}/resources' \
    -H "Authorization: Bearer $HYDRA_DB_API_KEY" \
    -H "API-Version: 2"
  ```
</RequestExample>

## Path parameters

| Name | Description                                    |
| ---- | ---------------------------------------------- |
| `id` | Connector UUID returned by `POST /connectors`. |

<ResponseExample>
  ```json 200 theme={null}
  {
    "resources": [
      {
        "connector_id": "{connector_id}",
        "resource_id": "{resource_id}",
        "resource_type": "channel",
        "display_name": "general",
        "status": "active",
        "provider_cursor": "{cursor}",
        "tenant_id_override": "",
        "sub_tenant_id_override": "all-hands",
        "provider_metadata": null,
        "filters": {
          "lookback_days": 30
        }
      }
    ]
  }
  ```
</ResponseExample>

Use `status` and `provider_cursor` to track sync state. A non-empty `provider_cursor` confirms the first sync has run.

<div className="api-before-related-resources" />

## Related Resources

* [Add Connector Resource](/api-reference/v2/endpoint/add-connector-resource)  -  add a single resource
* [Delete Connector Resource](/api-reference/v2/endpoint/delete-connector-resource)  -  remove a resource
* [Configure Connector](/api-reference/v2/endpoint/configure-connector)  -  activate multiple resources with metadata and lookback settings
* [Sync Connector](/api-reference/v2/endpoint/sync-connector)  -  trigger a sync


## OpenAPI

````yaml api-reference/v2/openapi.json GET /connectors/{id}/resources
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/{id}/resources:
    get:
      tags:
        - connectors
      summary: List connector resources
      description: List the configured resources for a connector.
      parameters:
        - description: Connector ID
          in: path
          name: id
          required: true
          schema:
            example: HydraDoc1234
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.connectorResourcesResponse'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.ErrorResponse'
          description: Internal Server Error
      security:
        - BearerAuth: []
components:
  schemas:
    handler.connectorResourcesResponse:
      properties:
        resources:
          example:
            - additional_metadata:
                author: ada
                doc_version: 3
              backfill_chunk_interval_seconds: 86400
              backfill_oldest: '2026-06-01T00:00:00Z'
              connector_id: conn_abc123
              display_name: general
              filters:
                channel: general
              metadata:
                department: finance
                priority: 7
              provider_cursor: '1699999999.000100'
              provider_metadata:
                workspace_id: T12345ACME
              resource_id: C0123456789
              resource_type: channel
              status: completed
              sync_blocked: true
          items:
            $ref: '#/components/schemas/connectors.Resource'
          type: array
          uniqueItems: false
      type: object
    handler.ErrorResponse:
      properties:
        data: {}
        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: true
          type: boolean
      type: object
    connectors.Resource:
      properties:
        acl:
          description: >-
            ACL is the customer-declared access-control list stamped onto every

            object synced from this resource (PRO-1684; see
            internal/domain/acl).

            Stored in caller-supplied form and normalized at transform time. nil

            means no ACL, documents stay unrestricted. Provider-derived ACLs

            (Phase 2) take precedence over this when the provider supports them.
          items:
            type: string
          type: array
          uniqueItems: false
        acl_fingerprint:
          description: >-
            ACLFingerprint is the stable identity of the ACL last APPLIED to
            this

            resource's already-indexed documents (PRO-1684). The sync compares
            the

            freshly-resolved provider ACL against it: equal means nothing to do,

            different means fan the new ACL out to existing documents. Empty
            means

            nothing has been applied yet (first capture-enabled sync).
          type: string
        additional_metadata:
          additionalProperties: {}
          description: >-
            AdditionalMetadata is merged into the additional_metadata (document

            metadata) layer of every object synced from this resource.
            User-supplied

            keys are shallow-merged as the base; provider-generated fields are

            applied on top and always win on conflict.
          example:
            author: ada
            doc_version: 3
          type: object
        backfill_chunk_interval_seconds:
          description: >-
            BackfillChunkIntervalSeconds is the pacing interval persisted at
            configure

            time so the scheduler can thread it into each chunk's workflow
            input.
          example: 86400
          type: integer
        backfill_next_chunk_at:
          description: >-
            BackfillNextChunkAt is the RFC3339 time the next chunk becomes due.
            The

            backfill workflow processes one chunk then sets this to now+interval
            and

            exits; the connector scheduler starts the next chunk once it passes.
          type: string
        backfill_oldest:
          description: >-
            BackfillOldest is an RFC3339 timestamp marking the oldest boundary
            remaining

            for async historical backfill. Empty means backfill is complete or
            not needed.
          example: '2026-06-01T00:00:00Z'
          type: string
        backfill_status:
          description: >-
            BackfillStatus gates the sparse ResourcesByBackfillNextChunkAt GSI:
            it is

            set to BackfillStatusActive while a historical backfill is in
            progress and

            removed when it completes, so only actively-backfilling resources
            appear in

            the scheduler's due query. Pacing between chunks is driven by that
            scheduler

            (see BackfillNextChunkAt), not by an in-workflow sleep.
          type: string
        collection_override:
          description: >-
            Routes this resource's synced objects into a specific collection,
            overriding the connector's. Canonical name; mirrors the deprecated
            `sub_tenant_id_override` alias.
          type: string
        connector_id:
          description: Connector this resource belongs to.
          example: conn_abc123
          type: string
        custom_instructions:
          description: >-
            CustomInstructions is optional free-text ingestion guidance scoped
            to

            this resource. When set it replaces the connector-level

            custom_instructions for documents synced from this resource; empty
            means

            the resource inherits the connector's value. Max 4000 characters;

            changes apply from the next sync cycle.
          type: string
        database_override:
          description: >-
            DatabaseOverride/CollectionOverride are the canonical v2 names for
            the

            deprecated tenant_id_override/sub_tenant_id_override wire fields.
            Empty

            means the resource inherits the connector's database/collection,
            exactly

            as the deprecated fields do. Not persisted (dynamodbav:"-"):
            mirrored from

            the tenant_id_override/sub_tenant_id_override values at construction
            time.
          type: string
        display_name:
          description: Human-readable name for this resource.
          example: general
          type: string
        filters:
          additionalProperties: {}
          description: >-
            Provider-specific filters applied during sync (e.g.
            `{"lookback_days": 30}`).
          example:
            channel: general
          type: object
        metadata:
          additionalProperties: {}
          description: >-
            Metadata is merged into the tenant metadata layer of every object
            synced

            from this resource. User-supplied keys are shallow-merged as the
            base;

            system defaults (connector_id, provider) are applied on top so they

            always win on conflict — user keys extend the map but cannot
            override

            system-set fields.
          example:
            department: finance
            priority: 7
          type: object
        provider_cursor:
          description: >-
            Bookmark of the last synced position. Non-empty value confirms the
            first sync has run.
          example: '1699999999.000100'
          type: string
        provider_metadata:
          additionalProperties: {}
          description: Additional provider-supplied metadata for this resource.
          example:
            workspace_id: T12345ACME
          type: object
        resource_id:
          description: Resource identifier from the Discover endpoint.
          example: C0123456789
          type: string
        resource_type:
          description: >-
            Type of resource within the provider (e.g. `channel`, `repo`,
            `linear_team`).
          example: channel
          type: string
        status:
          description: Current sync state of this resource (e.g. `active`, `paused`).
          example: completed
          type: string
        sub_tenant_id_override:
          deprecated: true
          description: >-
            Overrides the connector-level collection for objects synced from
            this resource.
          type: string
          x-deprecated: 'true'
        sync_blocked:
          description: >-
            SyncBlocked marks a resource the provider will go on refusing — a
            table

            that was dropped, a channel this credential was never invited to.


            Deliberately not a Status value. Status gates
            ListConnectorResources,

            which is what GET /connectors/{id}/status reads, so expressing this
            as a

            status would hide the resource from the one endpoint that explains
            why it

            stopped. The resource stays active and visible; this only takes it
            out of

            what gets synced.
          example: true
          type: boolean
        sync_blocked_at:
          description: SyncBlockedAt is when the resource was stopped (RFC3339).
          type: string
        sync_blocked_reason:
          description: >-
            SyncBlockedReason is the provider's own explanation, carried forward
            from

            the health that triggered the block so it survives the next sync

            overwriting that health.
          type: string
        tenant_id_override:
          deprecated: true
          description: >-
            Overrides the connector-level database for objects synced from this
            resource. Deprecated.
          type: string
          x-deprecated: 'true'
      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 for API clients: always false on this path, so it carries
            no

            information. To detect a failure read the HTTP status code; for what

            went wrong read the envelope's error.code and error.message, and

            meta.request_id when reporting it. The whole `detail` object is

            deprecated legacy — tagging the field individually so SDK users see
            it

            on the property, not just the container (PRO-1208).
          example: true
          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:
          type: string
        latency_ms:
          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
  securitySchemes:
    BearerAuth:
      bearerFormat: API key
      description: 'API key sent as a Bearer token: "Bearer prefix.secret"'
      scheme: bearer
      type: http

````