---
title: "List the fields a table's imported rows could be matched on"
method: GET
path: "/tables/{table_id}/source/identity-options/"
tags: ["table-sources"]
---

# List the fields a table's imported rows could be matched on

`GET /tables/{table_id}/source/identity-options/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/tables/{table_id}/source/identity-options/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

For a table fed by a connected tool: every id field its records carry, which one the rows are matched on now, and what switching to each would do. Reads one fresh sample from the tool (whether every record carries the field and no two share it) and the table's own rows (how many have no value for it and how many share one). `available` says whether the switch can be made; `problem` says why not. Changes nothing.

## Path parameters

- `table_id` string, uuid, required

## Response `200`

Successful Response

- SourceIdentityOptionSchema[]
  - `available` boolean, required: Whether the table can switch to it now.
  - `current` boolean, required: Whether the rows are matched on it now.
  - `editable` boolean, nullable, required: True when people can edit this field in the tool, so an edited record comes back as a new row; false when the tool sets it and it never changes; null when the tool does not say.
  - `field` string, required: The key, as the tool names it. Send it as identity_field.
  - `filled` integer, required: How many sampled records carry a value for it.
  - `label` string, required: The key's name for a person to read, e.g. 'Record ID'.
  - `problem` 'missing' | 'shared' | 'inexact', required: Why a key cannot match rows. ``MISSING`` and ``SHARED`` are facts about values: some records (or rows) have none, or two different ones hold the same. ``INEXACT`` is about how a value is stored: only text and whole numbers come back out of a row's stored record exactly as the provider sends them, and re-keying stored rows on anything else would match nothing on the next refresh.
  - `recommended` boolean, required: Whether it is the key a new import from this tool would pick.
  - `rows` integer, required: Rows in the table that came from the tool.
  - `rows_missing` integer, required: Of those, rows whose stored record has no value for it.
  - `rows_shared` integer, required: Of those, rows whose value another row also has.
  - `sampled` integer, required: How many of the tool's records were just sampled.
  - `unique` boolean, required: Whether no two different sampled records share a value.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Table has no source
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
