Claim a Row

Atomically find one row matching an exact-value filter and update it. Use this endpoint when multiple workers may compete for the same work: only one caller can claim a given row. A successful response with `claim: null` means no matching row was available. At least one filtered field must be changed by `data`.

POST/api/v1/tables/{tableId}/rows/claim
X-API-Key<token>

Your SteelEngine API key (personal or workspace). Generate one from the SteelEngine dashboard under Settings > API Keys.

In: header

Path Parameters

tableId*string

The unique identifier of the table.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/tables/string/rows/claim" \  -H "Content-Type: application/json" \  -d '{    "workspaceId": "wsp_abc123",    "filter": {      "status": "pending"    },    "data": {      "status": "claimed",      "workerId": "worker_123"    }  }'

{  "success": true,  "data": {    "claim": {      "id": "row_abc123",      "original": {        "id": "row_abc123",        "data": {          "status": "pending"        },        "position": 0,        "createdAt": "2026-01-15T10:30:00Z",        "updatedAt": "2026-01-15T10:30:00Z"      },      "row": {        "id": "row_abc123",        "data": {          "status": "claimed",          "workerId": "worker_123"        },        "position": 0,        "createdAt": "2026-01-15T10:30:00Z",        "updatedAt": "2026-01-15T10:31:00Z"      }    }  }}