---
title: "List a table's fields"
method: GET
path: "/v1/sync/syncs/{sync_id}/tables/{table_id}/fields"
tags: ["Schema"]
---

# List a table's fields

`GET /v1/sync/syncs/{sync_id}/tables/{table_id}/fields`

## Request

- Base URL: `https://api.whalesync.com`
- URL: `https://api.whalesync.com/v1/sync/syncs/{sync_id}/tables/{table_id}/fields`
- Auth: HTTP bearer

The fields of one table, with the connector-native `type` and capability flags. Fetched from the connected app on first use and cached; `202` means another request is already loading them — retry the same GET.

## Path parameters

- `sync_id` string, required
- `table_id` string, required

## Query parameters

- `side` 'left' | 'right'
- `refresh` string

## Response `200`

The table's fields.

- FieldList
  - `data` Field[], required
    - `id` string, required
    - `remote_id` string, required: The field id in the connector, stable across renames.
    - `name` string, required
    - `type` string, required: The connector's own field type. Every connector has its own set; `POST …/validate` is the compatibility authority.
    - `read` boolean, required: Whether Whalesync can read values from this field.
    - `write` boolean, required: Whether Whalesync can write values into this field.
    - `required` boolean, required: Whether this field must be mapped when its table is mapped.
    - `primary` boolean, required: Whether this is the table's primary/display field.
    - `type_details` object, nullable, required: Sparse extras: `display_name`, `allows_multiple_values`, `write_once`, `mapping_disabled`.
  - `fetched_at` string, date-time, nullable, required: When these fields were last fetched from the connected app. Pass `?refresh=true` to refetch.

## Other responses

- `202`: Another request is already loading this schema; retry the same GET.
- `401`: The API key is missing, invalid, or revoked (`missing_api_key`, `invalid_api_key`). Carries a `required_action` linking a person to key creation, naming the smallest scope this endpoint needs.
- `403`: The key's scope does not allow this call (`insufficient_scope` on a mutation with a `read` key).
- `404`: No such sync or table on this account.
- `409`: A person has to act first (`requires_action`): the error carries `required_action` — relay its `instruction` and `url` to a human, then retry. Also `sync_active` when `refresh=true` is asked of an active sync.
- `429`: Rate limit exceeded. Wait for `Retry-After` seconds.

---

[API](https://skmtc.dev/whalesync/apis/whalesync-api.md) · [All operations](https://skmtc.dev/whalesync/apis/whalesync-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whalesync/apis/whalesync-api/revisions/5131522b325a?raw)
