table.apply_edits
Write a batch of cell edits to a board
- Request
- POST
/api/v1/boards/{boardId}/table/edits - Scope required
applications:write- Effect
- Changes data. Send an Idempotency-Key if you might retry it.
- Acts on
- Acts on the account’s own job search.
- MCP tool
table_apply_edits- Environment
- Live and sandbox alike.
- Request body
- JSON.
What it does
Applies up to 500 cell edits in one transaction: every edit lands, or none of them do. Each edit names an application, a column and the new value; send `null` to clear an optional column. Enum columns take the public spelling the rest of the API uses, for example `status: "interviewing"`. The three read-only columns — `interviewCount`, `createdAt` and `updatedAt` — are refused, and so is an edit naming an application that is not on the board in the path. A rejected edit is reported with its position in the batch as `edits[n]`, so fix that one and send the batch again. Read the rows first with `table.list_rows`.
Parameters
| Name | Sent in | Requirement | Accepts |
|---|---|---|---|
| boardId | path | Required | string |
Request body
- edits
- array of object, required
- applicationId
- string, required
- field
- string, required
- value
- string or number or null, required
Response
- appliedCount
- integer, required
Examples
Move one card to Interviewing and note why
curl -s -X POST https://www.jobapplicationtracking.com/api/v1/boards/brd_7/table/edits \
-H "Authorization: Bearer $JAT_KEY" \
-H "Content-Type: application/json" \
-d '{
"edits": [
{
"applicationId": "app_123",
"field": "status",
"value": "interviewing"
},
{
"applicationId": "app_123",
"field": "notes",
"value": "Screen booked"
}
]
}'{
"appliedCount": 2
}