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.

Request API Access

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 window
  • X-RateLimit-Remaining — requests left in current window
  • X-RateLimit-Reset — UTC epoch when window resets

Endpoints

Roles

MethodPathDescription
GET/api/v1/rolesSearch and browse roles. Params: q, zone (GREEN/YELLOW/RED), domain, specialism, sort, page, per_page
GET/api/v1/roles/:slugFull role details: scores, specialisms, employment data

Statistics

MethodPathDescription
GET/api/v1/stats/summaryTotal roles, average AIJRI score, zone distribution, workforce coverage
GET/api/v1/stats/zonesZone counts and BLS employment per zone
GET/api/v1/stats/domainsDomain role counts, average scores, zone distribution

Rankings

MethodPathDescription
GET/api/v1/rankings/topTop N safest roles. Param: n (default 10, max 100)
GET/api/v1/rankings/bottomTop N most at-risk roles. Param: n
GET/api/v1/rankings/domain/:domain/topTop roles within a domain
GET/api/v1/rankings/domain/:domain/bottomBottom 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'"
}