Skip to main content
Tables let Enterprise customers read structured data from known Clay tables. Use table queries when your integration already knows which table it needs and wants specific fields, filters, ordering, and pagination.
Tables are available on Enterprise plans.
Clay tables can act as a GTM database for your downstream systems. You can build dashboards, internal tools, QA views, scoring jobs, and interactive apps on top of data that already exists in Clay. The current public API does not include a list-tables endpoint. You need the table identifiers your integration uses before querying table data. You can find the table id in a Clay URL after /tables/, for example https://app.clay.com/workspaces/{workspaceId}/tables/t_0te9i4tZEHwc9hihBXu.

Common uses

  • Pull records into a dashboard or internal tool.
  • Power interactive apps that search, filter, and inspect Clay table data.
  • Run QA checks against known Clay tables.
  • Sync selected table fields into another system.
  • Power alerts, scoring models, and warehouse jobs.

Query shape

Table queries are structured. You select fields, apply filters, and page through results with a cursor.
curl --request POST \
  --url https://api.clay.com/public/v0/tables/query \
  --header "Content-Type: application/json" \
  --header "clay-api-key: $CLAY_API_KEY" \
  --data '{
    "tables": [
      {
        "id": "t_0te9i4tZEHwc9hihBXu"
      }
    ],
    "select": [
      {
        "field": "Company Name",
        "as": "company_name"
      },
      {
        "field": "Domain",
        "as": "domain"
      }
    ],
    "filter": {
      "field": "Domain",
      "op": "is_not_empty"
    },
    "field_mode": "names",
    "limit": 20
  }'
The response includes a data array and an optional cursor for pagination. Cell values are returned with a status so your integration can distinguish successful, empty, pending, and errored cells.
{
  "data": [
    {
      "company_name": {
        "status": "success",
        "value": "Clay",
        "fields": null
      },
      "domain": {
        "status": "success",
        "value": "clay.com",
        "fields": null
      }
    }
  ],
  "fields": {
    "company_name": {
      "id": "field_company_name",
      "name": "Company Name",
      "type": "text"
    },
    "domain": {
      "id": "field_domain",
      "name": "Domain",
      "type": "text"
    }
  },
  "cursor": "eyJwYWdlIjoyfQ"
}

Generated API reference

See the table-query schema and try-it UI.