---
title: "Derive what one destination record type can do"
method: GET
path: "/table-writeback/write-capabilities/"
tags: ["table-writeback"]
---

# Derive what one destination record type can do

`GET /table-writeback/write-capabilities/`

## 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/table-writeback/write-capabilities/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

The legal write actions (including composite create-or-update), the fields records can be matched on, the supported write modes, and whether matching is possible at all: everything the export editor's action, match-key and write-mode controls are driven by.

Probes the LIVE connection, so expired credentials fail here with a message about the connection rather than at run time.

## Query parameters

- `integration_id` string, uuid, required
- `record_type` string, required

## Response `200`

Successful Response

- WriteCapabilitiesSchema: What one destination record type can actually do, fully derived.
  - `actions` ExportWriteAction[], required: The write actions this record type supports, including composite upsert.
  - `bulk_actions` string[], required: Action values with a synchronous bulk write method: the ones a batched export can actually use.
  - `can_match` boolean, required: Whether an existing record can be found by field value: the precondition for replay-safe creates. False means only blind creates are possible and the editor must say so.
  - `identity_fields_by_action` object, required: Selectable match/identity fields per action value. An EMPTY list means the destination resolves identity dynamically (a database: any column), and the picker falls back to the discovered fields.
  - `suggested_batch_size` integer, nullable, required: The destination's own recommended batch size, or None.
  - `supports_bulk` boolean, required: Whether records can be written in batches.
  - `update_modes` string[], required: Supported write modes (replace, patch, set_once) for update/upsert.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Integration not found
- `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)
