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

# Browse Table

> Full introspection of one remote table: rich columns (defaults, identity, comments, precision), indexes, foreign keys, check constraints, table comment and size. Requires a connector advertising browse:describe (0.1.25+).



## OpenAPI

````yaml GET /orgs/{org_id}/connectors/{connector_id}/browse/table
openapi: 3.1.0
info:
  title: Timbal Platform API
  description: Public API documentation for the Timbal platform
  license:
    name: ''
  version: 2.0.0
servers:
  - url: https://api.timbal.ai
    description: Production
  - url: https://api.dev.timbal.ai
    description: Development
security: []
tags:
  - name: ace
    description: Action Control Engine (ACE) operations
  - name: analytics
    description: Org and project analytics
  - name: billing
    description: Subscriptions, usage, and payment-related operations
  - name: content
    description: Re-sign stored content URLs
  - name: files
    description: File operations
  - name: iam
    description: IAM — actions, roles, users, and authorization introspection
  - name: k2
    description: Knowledge Bases v2 operations
  - name: orgs
    description: Organization operations
  - name: projects
    description: Project operations
  - name: runs
    description: Execution operations
  - name: templates
    description: Public project template catalog
  - name: users
    description: Authenticated user profile
paths:
  /orgs/{org_id}/connectors/{connector_id}/browse/table:
    get:
      tags:
        - connectors
      summary: '`GET /orgs/{org_id}/connectors/{connector_id}/browse/table`'
      description: >-
        Full introspection of one remote table: rich columns (defaults,
        identity, comments, precision), indexes, foreign keys, check
        constraints, table comment and size. Requires a connector advertising
        browse:describe (0.1.25+).
      operationId: table
      parameters:
        - name: org_id
          in: path
          required: true
          schema:
            type: string
        - name: connector_id
          in: path
          required: true
          schema:
            type: string
        - name: connection_ref
          in: query
          required: true
          schema:
            type: string
        - name: schema
          in: query
          required: true
          schema:
            type: string
        - name: table
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Table described
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableDetailRes'
        '403':
          description: Forbidden
        '404':
          description: Connector not found
        '422':
          description: Connector offline / refused / timed out / too old
      security:
        - bearer_auth: []
components:
  schemas:
    TableDetailRes:
      type: object
      required:
        - schema
        - name
        - approx_rows
        - columns
        - indexes
        - foreign_keys
        - check_constraints
      properties:
        approx_rows:
          type: integer
          format: int64
          description: Planner estimate; `-1` when unknown.
        check_constraints:
          type: array
          items:
            $ref: '#/components/schemas/CheckConstraintView'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ColumnView'
        comment:
          type:
            - string
            - 'null'
          description: Table description from the source's own doc mechanism.
        foreign_keys:
          type: array
          items:
            $ref: '#/components/schemas/ForeignKeyView'
        indexes:
          type: array
          items:
            $ref: '#/components/schemas/IndexView'
        name:
          type: string
        schema:
          type: string
        size_bytes:
          type:
            - integer
            - 'null'
          format: int64
          description: >-
            Total on-disk size (data + indexes) in bytes, when the source
            reports one.
    CheckConstraintView:
      type: object
      required:
        - name
        - definition
      properties:
        definition:
          type: string
          description: The check expression, verbatim from the source.
        name:
          type: string
    ColumnView:
      type: object
      required:
        - name
        - data_type
        - nullable
        - cursor_candidate
      properties:
        comment:
          type:
            - string
            - 'null'
          description: >-
            Column description from the source's own doc mechanism (`COMMENT
            ON`,

            `MS_Description`, `COLUMN_COMMENT`).
        cursor_candidate:
          type: boolean
          description: Usable as the extract job's `cursor_column`.
        data_type:
          type: string
        default:
          type:
            - string
            - 'null'
          description: |-
            Column default expression, verbatim from the source
            (`nextval('t_id_seq')`, `(getdate())`, …). `null` = no default, or a
            pre-0.1.25 node.
        generated:
          type:
            - boolean
            - 'null'
          description: Computed/generated column.
        identity:
          type:
            - boolean
            - 'null'
          description: |-
            Auto-assigned by the source (identity / serial / auto_increment) —
            the ideal extract cursor when integer-typed.
        max_length:
          type:
            - integer
            - 'null'
          format: int64
          description: |-
            Declared max character length for string types; `-1` = unbounded
            (`varchar(max)`, `text`).
        name:
          type: string
        nullable:
          type: boolean
        numeric_precision:
          type:
            - integer
            - 'null'
          format: int32
          description: Numeric precision (total digits).
        numeric_scale:
          type:
            - integer
            - 'null'
          format: int32
          description: Numeric scale (fraction digits).
        pk_position:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            1-based position in the table's primary key, or `null` if not a key

            column. Order matters — it's the merge key for upsert syncs and the

            keyset tiebreaker, both of which need composite columns in declared

            order. Always `null` from nodes older than key discovery; tell "no
            PK"

            from "old node" by node version, not by an all-`null` column set.
          minimum: 0
        unique:
          type:
            - boolean
            - 'null'
          description: >-
            `true` when the column alone is guaranteed unique (sole key of a
            unique

            index or the PK) — a unique cursor keeps incremental extraction on
            the

            cheap scalar path; a non-unique one needs a PK tie-breaker. `null`
            from

            nodes older than the hint (0.1.25): unknown, not "not unique".
    ForeignKeyView:
      type: object
      required:
        - name
        - columns
        - ref_schema
        - ref_table
        - ref_columns
      properties:
        columns:
          type: array
          items:
            type: string
          description: '`columns[i]` references `ref_columns[i]`.'
        name:
          type: string
        on_delete:
          type:
            - string
            - 'null'
        on_update:
          type:
            - string
            - 'null'
        ref_columns:
          type: array
          items:
            type: string
        ref_schema:
          type: string
        ref_table:
          type: string
    IndexView:
      type: object
      required:
        - name
        - unique
        - primary
        - columns
      properties:
        columns:
          type: array
          items:
            type: string
          description: Key columns in index order.
        kind:
          type:
            - string
            - 'null'
          description: Source-native kind (`btree`, `CLUSTERED`, `FULLTEXT`, …).
        name:
          type: string
        primary:
          type: boolean
          description: Backs the table's `PRIMARY KEY`.
        unique:
          type: boolean
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: >-
        Timbal API key. Obtain your API key from the Timbal platform settings.
        See [Authentication](/api-reference/authentication) for more
        information.

````