---
title: "Get Job Status"
method: GET
path: "/api/v1/jobs/{job_id}"
tags: ["Jobs"]
---

# Get Job Status

`GET /api/v1/jobs/{job_id}`

## Request

- Base URL: `https://api.bellatorsi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.bellatorsi.com/api/v1/jobs/{job_id}`
- Auth: none declared

Poll async job status and retrieve result when completed.

This unified endpoint serves all async operations including:
- Health score calculations
- Forensics analysis (logic audit, DCMA 14-point, etc.)
- CPM calculations
- Resource analysis
- And all other async endpoints

**Job Lifecycle:**
1. **queued** - Job submitted, waiting for worker
2. **processing** - Worker executing job
3. **completed** - Job finished successfully, result available
4. **failed** - Job encountered error
5. **cancelled** - Job cancelled by user

**Progress Tracking:**
- `progress_percent`: Overall progress (0-100)
- `checks_completed` / `total_checks`: Granular progress for forensics endpoints

**Polling Recommendations:**
- Initial delay: 5 seconds
- Interval: 2-5 seconds
- Exponential backoff for long-running jobs

**Result Expiration:**
- Job results are stored for 24 hours
- After expiration, job status returns 404

## Path parameters

- `job_id` string, required

## Headers

- `x-api-key` string, nullable
- `authorization` string, nullable
- `x-bellator-internal-dispatch` string, nullable

## Response `200`

Success - Job status retrieved

- JobStatusResponse: Response model for job status polling.
  - `job_id` string, required: Job identifier
  - `status` 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled', required: Status of an async job. Job lifecycle: 1. QUEUED - Job submitted to queue, waiting for worker 2. PROCESSING - Worker picked up job and is executing 3. COMPLETED - Job finished successfully 4. FAILED - Job encountered an error 5. CANCELLED - Job was cancelled by user before completion
  - `created_at` string, date-time, required: Job creation timestamp
  - `started_at` string, date-time, nullable: Job start timestamp
  - `completed_at` string, date-time, nullable: Job completion timestamp
  - `task_count` integer, required: Number of tasks in schedule
  - `result` object, nullable: Job result when completed
  - `error` string, nullable: Error message if failed
  - `progress_percent` number, nullable: Job progress percentage (if available)
  - `endpoint_name` string, nullable: Endpoint that submitted this job
  - `checks_completed` integer, nullable: Number of checks/steps completed (for forensics endpoints)
  - `total_checks` integer, nullable: Total number of checks/steps (for forensics endpoints)

## Other responses

- `404`: Not Found - Job does not exist or has expired
- `422`: Validation Error
- `429`: Too Many Requests - Rate limit exceeded

---

[API](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis.md) · [All operations](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis/revisions/03e7b786e43b?raw)
