Report Status API
Overview
This endpoint returns ingestion-side processing status for a report. It is different from the gateway-facing Report Info API, which returns lighter review metadata.
Direct ingestion path:
GET /sdac/reports/{report_id}
Widget same-origin path:
GET /api/ingestion/sdac/reports/{report_id}
Authentication and Access Model
This ingestion route does not enforce APIM bearer-token or subscription-key validation itself.
- Browser clients should use the widget same-origin proxy at
/api/ingestion/sdac/reports/{report_id}. - Direct
/sdac/reports/{report_id}access should stay behind private deployment controls or reverse-proxy authentication. - Do not expose the ingestion route directly to untrusted browser clients.
Request
| Attribute | Value |
|---|---|
| Endpoint | GET /sdac/reports/{report_id} |
| Response | JSON |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | Ingestion-side report identifier to look up |
warning
The current ingestion implementation returns HTTP
200 for success, missing-report, and backend-error bodies on this route. Inspect the response body status field rather than relying on the HTTP code alone.Success Response
{
"report_id": "8201EDC2-2EDE-4CA1-AF44-D0F5AA185CDB",
"district": "Maplewood Richmond Heights",
"quarter": "Q3",
"year": 2025,
"status": "success",
"processed_at": "2026-03-29T18:42:11.000Z",
"main_roster_count": 18,
"replacement_count": 3,
"total_personnel_count": 21
}
| Field | Description |
|---|---|
report_id | Report identifier |
district | District label stored by ingestion |
quarter | Quarter stored for the report |
year | Year stored for the report |
status | Processing status for the report |
processed_at | Processing completion timestamp when available |
main_roster_count | Count of main-roster rows |
replacement_count | Count of replacement rows |
total_personnel_count | Total personnel rows |
Not Found Response
{
"report_id": "8201EDC2-2EDE-4CA1-AF44-D0F5AA185CDB",
"status": "not_found",
"message": "No records found for this report ID"
}
Error Response
{
"report_id": "8201EDC2-2EDE-4CA1-AF44-D0F5AA185CDB",
"status": "error",
"message": "Unable to fetch report status right now."
}
HTTP Status Behavior
| HTTP Status | Meaning |
|---|---|
200 | Returned for successful lookups and for body-level status: "not_found" or status: "error" responses |
500 | Reserved for framework-level failures before the handler can return a body |