API Reference›Information Schema
API Reference

Information Schema

Inspect table and column metadata across all connections. Returns schema information including column names, data types, and sync status for every discovered table.

List tables

GET/v1/information_schema

List discovered tables with optional filtering and pagination. Supports wildcard patterns (SQL %) for schema and table name filters. Set include_columns=true to include column definitions (omitted by default). Every table carries its declared storage layout — partition_by and sorted_by — which is fixed when the table is created and cannot be changed afterwards. Both are always present; an empty array means none was declared. Only tables in a Hotdata instant database declare a layout here, so a table discovered from an external connection always reports empty arrays.

Query parameters

  • connection_id string — Filter by connection ID
  • schema string — Filter by schema name (supports % wildcards)
  • table string — Filter by table name (supports % wildcards)
  • include_columns boolean — Include column definitions (default: false)
  • limit integer — Maximum number of tables per page
  • cursor string — Pagination cursor from a previous response

Response 200 — Table metadata

  • count integer — required. Number of tables in this response, the same meaning count carries on the results and databases listings. This is a page size, not a total for the whole filter. Page with has_more and next_cursor: an empty tables array on its own does not mean the listing is finished. Min: 0
  • has_more boolean — required. True when more tables follow this page. Pass next_cursor to fetch them.
  • limit integer — required. The page size in effect for this response — the limit you asked for, clamped to the server's maximum, or the server default when you sent none. Min: 0
  • next_cursor string,null — Cursor for the next page, present only when has_more is true. Send it back as the cursor query parameter.
  • tables TableInfo[] — required. The tables on this page.
    • columns ColumnInfo[] | null
      • data_type string — required
      • name string — required
      • nullable boolean — required
    • connection string — required
    • constant_per_key string[] — required. Columns the table declares constant for a given key: for every row, any other row sharing its key holds the same value of these columns. Declaring this lets a keyed mutation narrow its search for prior versions to the values the upload carries. Empty when none is declared, which is the unrestricted search. Unlike partition_by and sorted_by this is NOT fixed at creation — it changes only which files a mutation opens, never how rows are written — so read it here rather than assuming a declaration took effect.
    • last_sync string,null
    • partition_by TablePartitionKey[] — required. The table's partition keys, in the order they were declared when the table was created. Empty when the table is not partitioned. A table's storage layout is fixed when the table is created and cannot be changed afterwards, so this is how to confirm a table really was created with the layout that was asked for. The field is always present: an empty array means "no partitioning declared", which is not the same as a response that omits the field entirely. Reported for tables in a Hotdata instant database, which are the only ones whose layout is declared here. A table discovered from an external connection always reports an empty array — its layout belongs to the upstream system, so an empty array there means "not known from here", not "confirmed unpartitioned".
      • column string — required. Column the key reads.
      • transform string — required. How the value is derived from the column. One of identity (the column value itself), year, month, day, or hour.
    • schema string — required
    • sorted_by TableSortKey[] — required. The table's sort keys, in the order they were declared when the table was created. Empty when no sort order was declared. Always present, and limited to tables in a Hotdata instant database, for the same reasons as partition_by.
      • column string — required
      • direction string,null — asc (the default) or desc. Null when the table was declared without an explicit direction for this key.
      • nulls string,null — Where nulls are placed: first or last. Defaults to the SQL default for the chosen direction. Null when the table was declared without an explicit placement for this key.
    • synced boolean — required
    • table string — required
{
  "count": 0,
  "has_more": true,
  "limit": 0,
  "next_cursor": "string",
  "tables": [
    {
      "columns": [
        {}
      ],
      "connection": "string",
      "constant_per_key": [
        "string"
      ],
      "last_sync": "string",
      "partition_by": [
        {}
      ],
      "schema": "string",
      "sorted_by": [
        {}
      ],
      "synced": true,
      "table": "string"
    }
  ]
}

Errors

StatusDescription
403The credential is limited to one database, and the request does not name that database's connection
404Connection not found