Get a scan
Retrieve the current state of a scan job returned by an asynchronous submission.
/api/v1/scan/{job_id}Read a job returned in a 202 response. Requires scan:read and the account that submitted it. Query parameters are not supported.
Example
Section titled “Example”Use the job ID from an HTTP 202 response or a completed Prefer: wait=1 response.
curl --fail-with-body \ "https://control.patronus.studio/api/v1/scan/$JOB_ID" \ -H "Authorization: Bearer $PATRONUS_API_KEY"Poll until terminal
Section titled “Poll until terminal”status | Next step |
|---|---|
running | Wait before polling again. Progress may be available. |
completed | Stop polling. Check completion and category results. |
failed | Stop polling. Handle the failure; do not treat the input as clean. |
Start with one poll per second and a bounded deadline. Honor Retry-After on rate-limited responses. The complete clients stop on HTTP errors so your application can decide whether to retry.
Polling does not consume the account’s scan-request quota, but request rate limits still apply.
Job lifetime
Section titled “Job lifetime”Accepted jobs remain available for 15 minutes after storage. Retrieve and store required results before the window ends. 404 JOB_NOT_FOUND also covers another account’s jobs and expired jobs.
A synchronous text job (submit without Prefer) is not stored for polling. URL, file, and MCP server jobs are asynchronous by default. A completed job returned with HTTP 200 after Prefer: wait=1 can be retrieved by its job_id for 15 minutes.
Parameters
Section titled “Parameters”| Name | Location | Description |
|---|---|---|
job_id (required) | path | Public job ID returned by createScan. |
Responses
Section titled “Responses”| HTTP | Meaning | Body |
|---|---|---|
200 | Current job state. HTTP 200 also includes running or failed jobs; inspect status. | Job |
400 | Malformed request or unsupported query parameters. | Error |
401 | Missing, expired, revoked, or invalid API key. | Error |
403 | The key lacks the required scan scope. | Error |
404 | Job missing, expired, or owned by another account. | Error |
429 | Rate limit or account quota reached. | Error |
500 | Request could not be completed. | Error |
503 | Authentication or scan service unavailable. | Error |
504 | Scan service timeout; submission may already have started. | Error |
Generated from the OpenAPI specification.