Export Record Set
Export every record in a record set as a single JSON response: record IDs, source documents, ordinals, keys, statuses, and confidence, without pagination.
Export the complete list of records in a record set as one JSON response, without pagination. Each exported record carries its identity metadata: the record UUID, the document_id it maps to, its ordinal position, the optional record_key, the row status, and the aggregate confidence. Use it when you need the full row inventory of a set in a single call, for example to drive a bulk sync or an offline audit.
The export returns row metadata only. To read the cell values, page through GET /v1/record-sets/{id}/records?include=values, which attaches the latest cell value, status, and confidence per field. For very large sets, or for pushing complete datasets to S3, SFTP, or a webhook, the delivery module is the better fit than repeated exports.
Like the paginated records read, the export is visibility-filtered as the user who minted the API key: rows whose source document is hidden by Sources IAM rules are dropped, and total counts what was actually exported. That means total can be smaller than the record set's cached record_count, and keys minted by differently-permissioned users can export different row inventories from the same set. Rows without a source document are never restricted.
Rows arrive ordered by ordinal, the same stable order as the paginated read and the platform UI, which makes successive exports diffable: compare on record id to detect new rows, and on status and confidence to spot rows that changed state between pipeline runs. A common sync pattern is to export the row inventory first, then fetch values only for the records whose state changed, via the paginated records endpoint with include=values.
The export is a snapshot, not a stream: rows are read in one query and returned in one JSON body, so a set that is still being written yields whatever rows existed at read time. For end-of-run syncs, wait for the producing job or pipeline to report completed before exporting, or diff two exports to pick up late rows. When you need output pushed rather than pulled, configure a delivery destination instead of polling exports.
/v1/record-sets/{id}/exportPath parameters
Response
Response fields
curl
curl -s https://api.talonic.com/v1/record-sets/a1b2c3d4-e5f6-7890-abcd-ef1234567890/export \
-H "Authorization: Bearer tlnc_your_api_key"Response
{
"record_set_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Resolution Run 2024-10-15",
"total": 142,
"records": [
{
"id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"document_id": "d1c2b3a4-e5f6-7890-abcd-ef1234567890",
"ordinal": 0,
"record_key": "INV-2024-0042",
"status": "active",
"confidence": 0.96
}
]
}Extract the row inventory with jq
curl -s https://api.talonic.com/v1/record-sets/a1b2c3d4-e5f6-7890-abcd-ef1234567890/export \
-H "Authorization: Bearer tlnc_your_api_key" \
| jq -r '.records[] | [.id, .document_id, .status, .confidence] | @tsv' > rows.tsvErrors
Error responses