Create an upload batch
Queue several uploads in one durable request and track outcomes by your own itemKey. Use this to process an application import without coordinating every admission yourself.
Before you call
Supply 1–20 items, at most 256 KiB JSON, unique itemKey values, and an Idempotency-Key. Only one batch of each kind can be active per workspace.
Required scope: analyses:write.
What happens next
A 202 returns batchId and statusUrl. Items can succeed or fail independently. Each successful item creates a preparation, not an analysis. PUT each file to its item upload URL before quoting analyses.
Recovery
Keep successful resource IDs. Capacity-limited items can wait up to the admission deadline; inspect per-item errorCode. Retry failed items deliberately in a new batch; analysis/interview items need fresh quotes. Foreign or unknown resource IDs reject the envelope.
Follow the complete workflow · Errors and retries
ApiKeyAuthorizationBearer <token>Idempotency-Key*stringStable key for one logical write. Retry the identical body with the same key after a timeout; a changed body conflicts. 1–128 letters, digits, dots, underscores, colons, or hyphens.
^[A-Za-z0-9._:-]+$1 <= length <= 128application/json- body
jobDescription?|Role context: inline text or a saved job ID on input; selected role fields on a report response.
items*array<>Page or batch entries. An empty list is valid; use the cursor or individual item states to decide what happens next.
1 <= items <= 20A 202 returns batchId and statusUrl. Items can succeed or fail independently. Each successful item creates a preparation, not an analysis. PUT each file to its item upload URL before quoting analyses.
application/json- response
data*# Set PROBB_URL and PROBB_API_KEY. Replace RESOURCE_ID if present.# Set REQUEST_KEY once for this logical write; reuse it with the same body on retries.curl --fail-with-body -X POST "$PROBB_URL/api/v1/upload-batches" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H "Idempotency-Key: $REQUEST_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "items": [ { "itemKey": "application-42", "input": { "fileName": "resume.pdf", "fileSize": 1024, "mimeType": "application/pdf", "externalReference": { "source": "my-ats", "id": "application-42" }, "jobDescription": { "kind": "text", "text": "Build reliable backend services. Required: API development, PostgreSQL, and production incident response." } } } ]}'{ "data": { "batchId": "batch_uploads", "statusUrl": "/api/v1/upload-batches/batch_uploads" }}