---
title: "List Table Providers"
method: GET
path: "/v1/table_providers"
tags: ["table_provider"]
---

# List Table Providers

`GET /v1/table_providers`

## Response `200`

Successful Response

- ListTableProvidersResponse — Response containing one page of table providers.
  - `table_providers` TableProviderOutput[] — Table providers in this page.
    - `name` string, required — Resource name in the form `table_providers/{table_provider}`.
    - `spec` TableProviderSpecOutput — One declarative source of a relation.
      - `view` ViewTableProviderSpec — A SQL view exposed as a table.
        - `sql` string — SQL query that defines the view.
        - `dialect` 'SQL_DIALECT_UNSPECIFIED' | 'SQL_DIALECT_GENERIC' | 'SQL_DIALECT_MYSQL' | 'SQL_DIALECT_POSTGRESQL' | 'SQL_DIALECT_HIVE' | 'SQL_DIALECT_SQLITE' | 'SQL_DIALECT_SNOWFLAKE' | 'SQL_DIALECT_REDSHIFT' | 'SQL_DIALECT_MSSQL' | 'SQL_DIALECT_CLICKHOUSE' | 'SQL_DIALECT_BIGQUERY' | 'SQL_DIALECT_ANSI' | 'SQL_DIALECT_DUCKDB' | 'SQL_DIALECT_DATABRICKS' — SQL dialect used to parse a view query.
      - `listing` ListingTableProviderSpecOutput — A table read from one or more absolute object-store or file URLs.
        - `table_paths` string[] — Paths must all resolve to the same object-store registration identity. The conversion boundary enforces this by parsing each URL canonically and comparing its scheme and authority; URI syntax validation alone cannot safely reproduce URL normalization for every supported scheme.
        - `file_schema` ArrowIpcSchema — An Arrow schema encoded as one canonical Arrow IPC schema message. The bytes contain only schema metadata, not an IPC stream, file, dictionary, record batch, or continuation marker. Consumers must reject any other IPC payload kind.
          - `ipc_message` string, binary, required
        - `options` ListingOptionsSpecOutput
          - `format` FileFormatSpecOutput
            - `arrow_ipc` ArrowIpcFileFormat
            - `csv` CsvFormatSpecOutput
              - …
            - `json` JsonFormatSpecOutput
              - …
            - `avro` AvroFileFormat
            - `parquet` ParquetFormatSpecOutput
              - …
          - `file_extension` string, nullable
          - `table_partition_columns` ArrowIpcSchema — An Arrow schema encoded as one canonical Arrow IPC schema message. The bytes contain only schema metadata, not an IPC stream, file, dictionary, record batch, or continuation marker. Consumers must reject any other IPC payload kind.
            - `ipc_message` string, binary, required
          - `collect_stat` boolean
          - `target_partitions` string, nullable — Omission selects one target partition.
      - `stream` FileStreamTableProviderSpecOutput — An appendable, unbounded table backed by one local file stream.
        - `location` string, required
        - `schema` ArrowIpcSchema — An Arrow schema encoded as one canonical Arrow IPC schema message. The bytes contain only schema metadata, not an IPC stream, file, dictionary, record batch, or continuation marker. Consumers must reject any other IPC payload kind.
          - `ipc_message` string, binary, required
        - `encoding` 'STREAM_ENCODING_UNSPECIFIED' | 'STREAM_ENCODING_CSV' | 'STREAM_ENCODING_JSON'
        - `has_header` boolean
        - `batch_size` string, nullable — Omission selects 1024 rows.
        - `constraints` StreamConstraintSpecOutput[]
          - `primary_key` StreamConstraintColumnsOutput
            - `columns` string[] — Zero-based indexes into the ordered fields of the Arrow schema. Every index must exist in the schema. Primary-key fields must additionally be non-nullable; consumers validate those schema-dependent invariants after decoding the Arrow IPC metadata.
          - `unique` StreamConstraintColumnsOutput
            - `columns` string[] — Zero-based indexes into the ordered fields of the Arrow schema. Every index must exist in the schema. Primary-key fields must additionally be non-nullable; consumers validate those schema-dependent invariants after decoding the Arrow IPC metadata.
      - `iceberg` IcebergTableProviderSpecOutput — One Iceberg table resolved through an Iceberg catalog connector.
        - `connector` ConnectorReference — A reference to a named connector definition.
          - `uri` string, required
        - `identifier` IcebergTableIdentifier
          - `namespace` string[]
          - `name` string, required
        - `access` IcebergTableAccessSpecOutput
          - `catalog_backed` IcebergCatalogBackedAccess
          - `static` IcebergStaticAccessOutput
            - `snapshot` IcebergSnapshotSelectorOutput
              - …
          - `metadata` IcebergMetadataAccess
            - `table` 'ICEBERG_METADATA_TABLE_TYPE_UNSPECIFIED' | 'ICEBERG_METADATA_TABLE_TYPE_SNAPSHOTS' | 'ICEBERG_METADATA_TABLE_TYPE_MANIFESTS'
      - `relational` RelationalTableProviderSpec — A relation queried through a relational connector.
        - `connector` ConnectorReference — A reference to a named connector definition.
          - `uri` string, required
        - `source_catalog` string — Catalog name.
        - `source_schema` string — Schema name.
        - `source_table` string — Table name.
      - `extension` ExtensionSpec — A registered specification whose schema is selected by type_url.
        - `type_url` string, required — An absolute RFC 3986 URI identifying the payload schema.
        - `config` unknown
  - `next_page_token` string — Token for retrieving the next page, or empty when this is the last page.

## Other responses

- `422` — Validation Error

## Changes

- **2026-07-26** `17afb53a6ac9` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/outerproduct/apis/outerproduct-api/changes/v1/table_providers/get.md)

---

[API](https://skmtc.dev/outerproduct/apis/outerproduct-api.md) · [All operations](https://skmtc.dev/outerproduct/apis/outerproduct-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/outerproduct/outerproduct-api/revisions/17afb53a6ac9/schema)
