Start an analysis
Submit the uploaded resume for asynchronous analysis against its job description. Use this after a successful storage upload and a current quote.
Before you call
Send the prepared reportId, quoteFingerprint, and a stable Idempotency-Key. Capacity and the workspace allowance are checked at admission.
Required scope: analyses:write.
What happens next
A 202 means the analysis was accepted, not completed. Save attemptId and follow statusUrl or report events. The accepted file is frozen for this attempt.
Recovery
Retry identical requests after timeouts. QUOTE_STALE needs a new quote/key. INVALID_UPLOAD needs a corrected upload. ACTIVE_ANALYSIS_LIMIT means wait for capacity. After terminal failure, a deliberate new attempt needs a new key/current quote; completed analyses cannot be restarted here.
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
reportId*stringReport ID returned by upload preparation, admission, discovery, or an event. It must belong to the API key's workspace.
1 <= length <= 100quoteFingerprint*stringFingerprint copied unchanged from the corresponding current quote. Changing quote inputs requires a new quote.
^[a-f0-9]{64}$A 202 means the analysis was accepted, not completed. Save attemptId and follow statusUrl or report events. The accepted file is frozen for this attempt.
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/analyses" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H "Idempotency-Key: $REQUEST_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "reportId": "report_example", "quoteFingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}'{ "data": { "reportId": "report_example", "attemptId": "attempt_example", "statusUrl": "/api/v1/reports/report_example/status" }}