---
title: "Get report status"
method: GET
path: "/api/v1/reports/{id}/status"
tags: ["Reports"]
---

# Get report status

`GET /api/v1/reports/{id}/status`

## Request

- Base URL: `https://app.probbai.com`
- URL: `https://app.probbai.com/api/v1/reports/{id}/status`
- Auth: HTTP bearer

Poll the small status response while analysis is running, or reconcile a delayed webhook with the current attempt.

## Before you call

Use the reportId returned by preparation or admission. Keep polling infrequent enough to respect your read limit.

**Required scope:** `reports:read`.

## What happens next

queued and processing mean wait. completed means retrieve the result; requires_action means review in the app; failed means inspect code. attemptId is null before admission and can be null for legacy reports.

## Recovery

Compare the event attemptId with the current one before updating your records. Worker retries keep the attempt ID; a newly admitted run changes it. Do not infer failure from elapsed time alone.

[Follow the complete workflow](/integration-results/) · [Errors and retries](/api-errors/)

## Path parameters

- `id` string, required

## Response `200`

queued and processing mean wait. completed means retrieve the result; requires_action means review in the app; failed means inspect code. attemptId is null before admission and can be null for legacy reports.

- object
  - `data` ReportStatus, required
    - `id` string, required: Resource identifier. External-reference IDs are supplied by your system; resource/event IDs are returned by ProBB AI.
    - `status` 'awaiting_upload' | 'queued' | 'processing' | 'requires_action' | 'completed' | 'failed', required: Current state of the surrounding resource or finding. Use the documented enum and the operation's workflow explanation.
    - `attemptId` string, nullable, required: Analysis run identity. Retries keep this ID; a new admitted run receives a new ID. Null when no run is available.
    - `code` 'ANALYSIS_FAILED' | 'RESULT_UNAVAILABLE' | 'CANDIDATE_JOB_MISMATCH' | 'UNSUPPORTED_REPORT_VERSION', nullable, required: Stable machine-readable outcome or error code; null when no code applies.
    - `reportSystemVersion` string, nullable, required: Assigned report version used by the quote or analysis. Can be null for a legacy report.

## Other responses

- `400`: Invalid input or cursor
- `401`: Invalid, expired, or revoked API key
- `403`: Disabled organisation or missing scope
- `404`: The resource is absent, expired, deleted, or unavailable in this workspace. Verify the resource ID and key's workspace.
- `405`: Method not allowed; consult Allow for supported methods
- `429`: Request limit exceeded
- `500`: Unexpected failure
- `503`: Service unavailable

---

[API](https://skmtc.dev/probbai/apis/probb-ai-customer-api.md) · [All operations](https://skmtc.dev/probbai/apis/probb-ai-customer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/probbai/apis/probb-ai-customer-api/revisions/33a3294530e4?raw)
