---
title: "Poll a compliance report job"
method: GET
path: "/api/v1/compliance/reports/{id}"
tags: ["Compliance"]
---

# Poll a compliance report job

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

## Request

- Base URL: `https://orchestrator.getaxonflow.com`
- URL: `https://orchestrator.getaxonflow.com/api/v1/compliance/reports/{id}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/docs/api/v1/compliance/reports/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Return the current state of a report job. This is the POLL shape and is
exempt from the tenant-wide audit-export role gate that guards the
create and download routes.

## Path parameters

- `id` string, required

## Response `200`

The report job

- ComplianceReportJob: An asynchronous compliance-report job. `org_id`, `tenant_id` and `storage_key` are deliberately NOT on the wire (json:"-" in the platform type); the tenancy is the caller's own and the storage key is internal.
  - `id` string
  - `regulator` string
  - `framework` string
  - `format` string
  - `period_start` string, date-time
  - `period_end` string, date-time
  - `status` string
  - `report_state` '' | 'not_available' | 'enabled_empty' | 'populated'
  - `progress` integer
  - `record_count` integer
  - `size_bytes` integer
  - `checksum` string
  - `error` string
  - `requested_by` string
  - `created_at` string, date-time
  - `started_at` string, date-time
  - `completed_at` string, date-time

## Other responses

- `401`: Tenant scope required
- `404`: Report not found

---

[API](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api.md) - [All operations](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/revisions/f408ef3ec9dd?raw)
