JobZone Risk API
The JobZone Risk API provides read-only programmatic access to our AI Job Resistance Index (AIJRI) data, including role scores, zone classifications, rankings, and workforce statistics.
API access is available on request. If you’re interested in integrating JobZone Risk data into your application, research, or platform, get in touch and we’ll discuss your requirements.
Authentication
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer jzr_your_api_key_here
Rate limit: 100 requests per minute per key (default). Custom limits may be assigned per key. Standard headers included in every response:
X-RateLimit-Limit— requests allowed per windowX-RateLimit-Remaining— requests left in current windowX-RateLimit-Reset— UTC epoch when window resets
Endpoints
Roles
| Method | Path | Description |
|---|---|---|
GET | /api/v1/roles | Search and browse roles. Params: q, zone (GREEN/YELLOW/RED), domain, specialism, sort, page, per_page |
GET | /api/v1/roles/:slug | Full role details: scores, specialisms, employment data |
Statistics
| Method | Path | Description |
|---|---|---|
GET | /api/v1/stats/summary | Total roles, average AIJRI score, zone distribution, workforce coverage |
GET | /api/v1/stats/zones | Zone counts and BLS employment per zone |
GET | /api/v1/stats/domains | Domain role counts, average scores, zone distribution |
Rankings
| Method | Path | Description |
|---|---|---|
GET | /api/v1/rankings/top | Top N safest roles. Param: n (default 10, max 100) |
GET | /api/v1/rankings/bottom | Top N most at-risk roles. Param: n |
GET | /api/v1/rankings/domain/:domain/top | Top roles within a domain |
GET | /api/v1/rankings/domain/:domain/bottom | Bottom roles within a domain |
Response Format
All responses use JSON. Successful responses wrap data in a data field. Paginated endpoints include meta:
{
"data": [ ... ],
"meta": {
"page": 1,
"per_page": 24,
"total": 1188,
"total_pages": 50
}
}
Errors use RFC 7807 Problem Details format:
{
"type": "https://jobzonerisk.com/api/errors/not-found",
"title": "Not Found",
"status": 404,
"detail": "No role found with slug 'xyz'"
}