Get upload batch status
Read individual outcomes from an accepted upload batch. Use itemKey to match each outcome to the original application row.
Before you call
Use the batchId from creation and the same scope required to create that kind of batch.
Required scope: analyses:write.
What happens next
Read item state, resourceId, attemptId, and errorCode. Each successful item creates a preparation, not an analysis. PUT each file to its item upload URL before quoting analyses.
Recovery
completed means all item processing is terminal, not that every item succeeded. Do not resubmit successful items. A revoked key can stop unadmitted items while accepted work continues.
Follow the complete workflow · Errors and retries
ApiKeyAuthorizationBearer <token>id*stringResource ID returned by this resource's creation or list endpoint. See prerequisites for whether this is a report, interview, job, or batch ID.
1 <= length <= 100Read item state, resourceId, attemptId, and errorCode. 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.curl --fail-with-body -X GET "$PROBB_URL/api/v1/upload-batches/RESOURCE_ID" \ -H "Authorization: Bearer $PROBB_API_KEY"{ "data": { "id": "batch_uploads", "kind": "uploads", "status": "completed", "createdAt": "2026-09-29T12:00:00.000Z", "expiresAt": "2026-09-29T13:00:00.000Z", "items": [ { "itemKey": "application-42", "state": "succeeded", "resourceId": "report_example", "attemptId": null, "errorCode": null, "upload": { "url": "https://storage.example.test/upload/synthetic-resume", "method": "PUT", "mimeType": "application/pdf", "sizeBytes": 1024, "expiresInSeconds": 600 } } ] }}