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

# List data connectors

> Access document-bound client sessions, queries, schedules, bindings and write claims.

Required scopes: `client:read`.


## OpenAPI

````yaml GET /api/v2/metrics/client/connectors
openapi: 3.1.1
info:
  title: chatobserver public API
  version: '2026-09-09'
  description: >-
    Track AI visibility, manage prompts, inspect collected answers and
    citations, and integrate workspace data with your own tools. Visibility
    endpoints use workspace API keys. Data endpoints use scoped service-account
    keys; spreadsheet client endpoints use authorised client sessions. See the
    authentication guide for each credential type.
  contact:
    name: chatobserver support
    url: https://chatobserver.com/contact
    email: support@chatobserver.com
servers:
  - url: https://app.chatobserver.com
    description: Production API
security:
  - WorkspaceKey: []
  - BearerKey: []
tags:
  - name: Workspace
    description: Validate access and list the workspace project and available platforms.
  - name: Prompts
    description: Create, schedule, organise, activate and retrieve tracked prompts.
  - name: Answers
    description: Retrieve collected AI answers, their analysis and visibility trends.
  - name: Brands
    description: Manage brands and compare their visibility in AI answers.
  - name: Sources and citations
    description: Analyse cited domains, pages and ownership across answers.
  - name: Visitor analytics
    description: Read website visitor and crawler analytics for the workspace.
  - name: Content opportunities
    description: Retrieve content-gap findings and recommendations for tracked prompts.
  - name: Usage
    description: Read workspace consumption and allowance summaries.
  - name: Data connections
    description: Discover authorised connections, source accounts and connector catalogues.
  - name: Data queries
    description: >-
      Create versioned queries, publish definitions and inspect integration
      contracts.
  - name: Data operations
    description: >-
      Execute, validate, cancel and inspect operations and page through result
      rows.
  - name: Data delivery
    description: Manage schedules, transfers, destinations and import workflows.
  - name: Data definitions
    description: Manage reusable definitions and their immutable versions.
  - name: Data webhooks
    description: >-
      Configure event delivery, inspect deliveries, replay events and rotate
      secrets.
  - name: Client authorisation
    description: Authorise spreadsheet clients using a user-approved challenge exchange.
  - name: Spreadsheet clients
    description: >-
      Access document-bound client sessions, queries, schedules, bindings and
      write claims.
  - name: AI visibility audits
    description: Create website visibility audits and retrieve their report links.
  - name: Version 1
    description: Integrate with the version 1 visibility and analytics endpoints.
paths:
  /api/v2/metrics/client/connectors:
    get:
      tags:
        - Spreadsheet clients
      summary: List data connectors
      description: >-
        Access document-bound client sessions, queries, schedules, bindings and
        write claims. Required scopes: `client:read`.
      operationId: getV2MetricsClientConnectors
      parameters:
        - name: x-metrics-client-audience
          in: header
          required: true
          schema:
            enum:
              - chatobserver-metrics-sheets
              - chatobserver-metrics-excel
            type: string
          description: The audience bound to the authorised client session.
        - name: x-metrics-document-reference
          in: header
          required: true
          schema:
            type: string
            pattern: ^[a-f0-9]{64}$
          description: The document reference hash bound to the client session.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getV2MetricsClientConnectorsResponse200'
        default:
          description: >-
            Request failed. Inspect the error code and request identifier; retry
            only when the failure is retryable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataError'
      security:
        - ClientSession: []
components:
  schemas:
    getV2MetricsClientConnectorsResponse200:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              definition:
                type: object
                properties:
                  description:
                    type: string
                  category:
                    type: string
                  connectorKey:
                    type: string
                  displayName:
                    type: string
                  buildVersion:
                    type: string
                  documentationUrl:
                    type: string
                  capabilities:
                    type: object
                    properties:
                      contractVersion:
                        type: number
                      connectorKey:
                        type: string
                      availability:
                        enum:
                          - preview
                          - request_only
                          - production
                          - internal_fixture
                          - retired
                        type: string
                      authenticationMethods:
                        type: array
                        items:
                          enum:
                            - basic
                            - oauth2
                            - oauth1
                            - api_key
                            - bearer_token
                            - service_account
                            - key_pair
                            - database_credentials
                            - file
                            - none
                          type: string
                      accountDiscovery:
                        enum:
                          - flat
                          - none
                          - hierarchical
                        type: string
                      catalogDiscovery:
                        enum:
                          - dynamic
                          - static
                          - hybrid
                        type: string
                      queryTypes:
                        type: array
                        items:
                          type: string
                      dateSemantics:
                        type: object
                        properties:
                          comparison:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          absolute:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          relative:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          incremental:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          timeZone:
                            enum:
                              - provider
                              - query
                              - account
                            type: string
                          minimumFreshnessDelayMinutes:
                            type: number
                          maximumHistoryDays:
                            anyOf:
                              - type: 'null'
                              - type: number
                        required:
                          - comparison
                          - absolute
                          - relative
                          - incremental
                          - timeZone
                          - minimumFreshnessDelayMinutes
                          - maximumHistoryDays
                      pagination:
                        enum:
                          - cursor
                          - offset
                          - none
                          - page
                          - provider_specific
                        type: string
                      pushdown:
                        type: object
                        properties:
                          limit:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          filters:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          comparison:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          pivot:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          aggregation:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          sorting:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                          pagination:
                            anyOf:
                              - type: boolean
                                const: false
                              - type: boolean
                                const: true
                        required:
                          - limit
                          - filters
                          - comparison
                          - pivot
                          - aggregation
                          - sorting
                          - pagination
                      rateLimitModel:
                        enum:
                          - none
                          - provider_specific
                          - fixed_window
                          - sliding_window
                          - quota_units
                        type: string
                      supportedOutputFormats:
                        type: array
                        items:
                          enum:
                            - json
                            - ndjson
                            - csv
                            - parquet
                            - html_preview
                          type: string
                      compatibleDestinationKinds:
                        type: array
                        items:
                          type: string
                      supportsAccountTags:
                        anyOf:
                          - type: boolean
                            const: false
                          - type: boolean
                            const: true
                      supportsCustomFields:
                        anyOf:
                          - type: boolean
                            const: false
                          - type: boolean
                            const: true
                      supportsMediaFields:
                        anyOf:
                          - type: boolean
                            const: false
                          - type: boolean
                            const: true
                      supportsRealtime:
                        anyOf:
                          - type: boolean
                            const: false
                          - type: boolean
                            const: true
                      limits:
                        type: object
                        properties:
                          maximumRowsPerRun:
                            type: number
                          maximumAccountsPerQuery:
                            type: number
                          maximumFieldsPerQuery:
                            type: number
                          maximumConcurrentRequests:
                            type: number
                        required:
                          - maximumRowsPerRun
                          - maximumAccountsPerQuery
                          - maximumFieldsPerQuery
                          - maximumConcurrentRequests
                    required:
                      - contractVersion
                      - connectorKey
                      - availability
                      - authenticationMethods
                      - accountDiscovery
                      - catalogDiscovery
                      - queryTypes
                      - dateSemantics
                      - pagination
                      - pushdown
                      - rateLimitModel
                      - supportedOutputFormats
                      - compatibleDestinationKinds
                      - supportsAccountTags
                      - supportsCustomFields
                      - supportsMediaFields
                      - supportsRealtime
                      - limits
                  releasedAt:
                    type: string
                  retiredAt:
                    anyOf:
                      - type: 'null'
                      - type: string
                required:
                  - description
                  - category
                  - connectorKey
                  - displayName
                  - buildVersion
                  - documentationUrl
                  - capabilities
                  - releasedAt
                  - retiredAt
              readiness:
                type: object
                properties:
                  connectorKey:
                    type: string
                  declaredAvailability:
                    enum:
                      - preview
                      - request_only
                      - production
                      - internal_fixture
                      - retired
                    type: string
                  selectable:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  visible:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  platformConfigured:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  conformancePassed:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  reasonCode:
                    enum:
                      - retired
                      - ready
                      - internal_fixture_environment_only
                      - platform_configuration_missing
                      - conformance_evidence_missing
                      - request_access
                    type: string
                required:
                  - connectorKey
                  - declaredAvailability
                  - selectable
                  - visible
                  - platformConfigured
                  - conformancePassed
                  - reasonCode
              presentation:
                type: object
                properties:
                  brandDomain:
                    type: string
                  brandAssetPath:
                    anyOf:
                      - type: 'null'
                      - type: string
                  authenticationMethod:
                    enum:
                      - basic
                      - oauth2
                      - api_key
                      - bearer_token
                      - key_pair
                      - none
                    type: string
                  accountModel:
                    enum:
                      - flat
                      - hierarchy
                    type: string
                  connectPath:
                    anyOf:
                      - type: 'null'
                      - type: string
                  setupFields:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        label:
                          type: string
                        description:
                          type: string
                        secret:
                          anyOf:
                            - type: boolean
                              const: false
                            - type: boolean
                              const: true
                        required:
                          anyOf:
                            - type: boolean
                              const: false
                            - type: boolean
                              const: true
                        minLength:
                          type: number
                        maxLength:
                          type: number
                        placeholder:
                          type: string
                        format:
                          enum:
                            - email
                            - hostname
                            - text
                          type: string
                      required:
                        - key
                        - label
                        - secret
                        - required
                required:
                  - brandDomain
                  - brandAssetPath
                  - authenticationMethod
                  - accountModel
                  - connectPath
                  - setupFields
            required:
              - definition
              - readiness
              - presentation
        destinations:
          type: array
          items:
            type: object
            properties:
              kind:
                enum:
                  - sftp
                  - google_sheets
                  - google_bigquery
                  - google_cloud_storage
                  - amazon_s3
                  - google_alloydb
                  - azure_sql
                  - azure_blob_storage
                  - azure_synapse
                  - databricks
                  - microsoft_fabric
                  - amazon_redshift
                  - snowflake
                  - chatobserver_managed_dataset
                  - fixture_object_store
                type: string
              label:
                type: string
              description:
                type: string
              brandDomain:
                anyOf:
                  - type: 'null'
                  - type: string
              credentialProviderKeys:
                type: array
                items:
                  type: string
              requiredScopes:
                type: array
                items:
                  type: string
              capability:
                type: object
                properties:
                  contractVersion:
                    type: number
                  availability:
                    enum:
                      - preview
                      - request_only
                      - production
                      - internal_fixture
                      - retired
                    type: string
                  authenticationMethods:
                    type: array
                    items:
                      enum:
                        - basic
                        - oauth2
                        - oauth1
                        - api_key
                        - bearer_token
                        - service_account
                        - key_pair
                        - database_credentials
                        - file
                        - none
                      type: string
                  limits:
                    type: object
                    properties:
                      maximumRowsPerWrite:
                        anyOf:
                          - type: 'null'
                          - type: number
                      maximumBytesPerWrite:
                        anyOf:
                          - type: 'null'
                          - type: number
                      maximumConcurrentWrites:
                        type: number
                    required:
                      - maximumRowsPerWrite
                      - maximumBytesPerWrite
                      - maximumConcurrentWrites
                  destinationKind:
                    type: string
                  writeModes:
                    type: array
                    items:
                      enum:
                        - replace
                        - append
                        - upsert
                        - rolling_window
                        - single_day_snapshot
                        - historical_snapshot
                        - rolling_historical_snapshot
                      type: string
                  schemaPolicies:
                    type: array
                    items:
                      enum:
                        - locked
                        - additive
                        - reconcile
                      type: string
                  supportedFormats:
                    type: array
                    items:
                      enum:
                        - ndjson
                        - csv
                        - parquet
                        - rows
                      type: string
                  supportsTransactions:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  supportsAtomicReplace:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  supportsPartitioning:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  supportsDelete:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                  supportsTestConnection:
                    anyOf:
                      - type: boolean
                        const: false
                      - type: boolean
                        const: true
                required:
                  - contractVersion
                  - availability
                  - authenticationMethods
                  - limits
                  - destinationKind
                  - writeModes
                  - schemaPolicies
                  - supportedFormats
                  - supportsTransactions
                  - supportsAtomicReplace
                  - supportsPartitioning
                  - supportsDelete
                  - supportsTestConnection
              targetFields:
                type: array
                items:
                  type: object
                  properties:
                    key:
                      type: string
                    label:
                      type: string
                    description:
                      type: string
                    type:
                      enum:
                        - select
                        - text
                      type: string
                    required:
                      anyOf:
                        - type: boolean
                          const: false
                        - type: boolean
                          const: true
                    placeholder:
                      type: string
                    values:
                      type: array
                      items:
                        type: object
                        properties:
                          value:
                            type: string
                          label:
                            type: string
                        required:
                          - value
                          - label
                  required:
                    - key
                    - label
                    - description
                    - type
                    - required
              internalOnly:
                anyOf:
                  - type: boolean
                    const: false
                  - type: boolean
                    const: true
            required:
              - kind
              - label
              - description
              - brandDomain
              - credentialProviderKeys
              - requiredScopes
              - capability
              - targetFields
              - internalOnly
      required:
        - data
        - destinations
    DataError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              enum:
                - internal
                - validation_failed
                - authentication_required
                - forbidden
                - not_found
                - conflict
                - precondition_failed
                - idempotency_conflict
                - capability_unavailable
                - connection_unavailable
                - reauthentication_required
                - provider_rate_limited
                - workspace_limit_exceeded
                - result_expired
                - operation_failed
                - temporarily_unavailable
              type: string
            fieldPath:
              type: array
              items:
                anyOf:
                  - type: string
                  - type: number
            parameters:
              type: object
              properties: {}
              additionalProperties:
                anyOf:
                  - type: 'null'
                  - type: string
                  - type: number
                  - type: boolean
                    const: false
                  - type: boolean
                    const: true
            repairActions:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 96
              maxItems: 10
            requestId:
              type: string
              minLength: 1
              maxLength: 160
            retryable:
              anyOf:
                - type: boolean
                  const: false
                - type: boolean
                  const: true
            retryAfterSeconds:
              anyOf:
                - type: 'null'
                - type: integer
                  exclusiveMinimum: 0
          required:
            - code
            - fieldPath
            - parameters
            - repairActions
            - requestId
            - retryable
            - retryAfterSeconds
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    WorkspaceKey:
      type: apiKey
      in: header
      name: x-chatobserver-key
      description: >-
        A workspace API key. Data endpoints require a service-account key with
        the specified scopes.
    BearerKey:
      type: http
      scheme: bearer
      description: The workspace or service-account API key as a bearer token.
    ClientSession:
      type: http
      scheme: bearer
      description: >-
        A client session token obtained through the client authorisation
        challenge flow.

````