Batch
A submission and its progress.
Fields #
| Field | Type | Notes |
|---|---|---|
batch_id | string (uuid) | A UUID, with no prefix. Store it as a uuid or as 36 characters of text. |
operation | string | The wire name, e.g. profiles.enrich. |
status | string | queued, processing, completed, failed or cancelled. failed is reserved for a batch that could not run at all; a batch in which every item failed is completed with succeeded: 0. |
total | integer | Targets submitted. Never rows expected. |
succeeded | integer | |
failed | integer | |
pending | integer | The four always sum to total. |
results_available | integer | Delivered ENTRIES, which is a different number for a paged operation: one search target produces one entry per page. |
credits_used | number | Credits to one decimal, never hundredths. |
external_id | string | Your own handle, echoed. |
callback_url | string | |
webhook_tag | string | The routing key this completion was delivered under, when the submission named one. |
created_at | string (RFC 3339) | |
completed_at | string | null | Null until terminal. |
recommended_poll_ms | integer | How hard to poll. Server-set so the cadence can be tuned centrally. |
Absent is not null: a field we did not get is omitted rather than sent as an empty string, so you can tell "LinkedIn does not have this" from "this person left it blank".
Sample #
{
"batch_id": "afec9131-080b-4b96-b3bb-726249e4bbf8",
"operation": "profiles.enrich",
"status": "processing",
"total": 3,
"succeeded": 2,
"failed": 0,
"pending": 1,
"results_available": 2,
"credits_used": 2,
"created_at": "2026-09-01T10:00:00Z",
"completed_at": null,
"recommended_poll_ms": 2000
}