Labour Market Insights API
Labour-market insights computed live from deduplicated job postings - occupations, industries, skills, compensation, and AI exposure.
GET https://api.jobspipe.dev/v1/insights/...
POST https://api.jobspipe.dev/v1/insights/salary/benchmarkThe Insights endpoints answer aggregate labour-market questions from job postings: which occupations and industries are hiring, what skills they ask for, what they pay, and how exposed each group is to AI demand. Numbers are computed from deduplicated postings at request time. Occupations use ISCO-08 codes; industries use ISIC Rev.4 divisions. Requires authentication. Each call costs 1 credit.
Endpoints
| Method | Path | Returns |
|---|---|---|
GET | /v1/insights/occupations | ISCO-08 occupations ranked by posting volume |
GET | /v1/insights/occupations/{code} | Snapshot: count, remote share, top companies, titles, countries |
GET | /v1/insights/occupations/{code}/compensation | Advertised-salary percentiles (p10-p90) |
GET | /v1/insights/occupations/{code}/skills/top | Skills ranked by mention share |
GET | /v1/insights/occupations/{code}/skills/trending | Skills growing or declining vs the prior window |
GET | /v1/insights/industries | ISIC divisions ranked by posting volume |
GET | /v1/insights/industries/{division}/skills/trending | Trending skills inside one industry |
GET | /v1/insights/skills/{slug}/trend | Monthly mention-share series for one skill |
GET | /v1/insights/technology/ai-exposure | AI-skill share and salary premium per occupation or industry |
POST | /v1/insights/salary/benchmark | Salary percentiles for a code or title match |
Common parameters
| Param | Applies to | Description |
|---|---|---|
window_days | all | Look-back window over posting dates. Default 90, max 365. |
{code} | occupation endpoints | ISCO-08 code: 4 digits exact (2512), or 1-3 digits to roll up a whole group (25). |
{division} | industry endpoints | ISIC Rev.4 division, 2 digits (62). |
direction | trending endpoints | up (default) for growing skills, down for declining. The scan covers twice window_days to compare against the preceding period. |
country | compensation | ISO 3166-1 alpha-2 country, e.g. US. |
by | ai-exposure | occupation or industry. |
Sample sizes and suppression
- List endpoints only return groups with at least 30 postings in the window.
- Percentile endpoints return
suppressed: truewithpercentiles: nullwhen the sample is under 30. - Every percentile response carries a
confidencetier:low(30-99 postings),medium(100-999),high(1000+), alongside the exactcount.
Example
curl "https://api.jobspipe.dev/v1/insights/occupations/2512/compensation?country=US" \
-H "Authorization: Bearer jp_live_your_key_here"{
"occupation_code": "2512",
"occupation_label": "Software Developers",
"window_days": 90,
"country": "US",
"count": 8945,
"currency": "USD",
"percentiles": { "p10": 98000, "p25": 130000, "p50": 175500, "p75": 210000, "p90": 245000 },
"confidence": "high",
"suppressed": false
}Salary figures are advertised pay from postings that state it, annualized. Figures are in USD. They measure what employers offer publicly, which differs from survey-based earnings statistics.
Status codes
| Status | Meaning |
|---|---|
200 | Success (possibly suppressed: true) |
400 | Invalid parameter |
401 | Missing or invalid API key |
402 | Out of credits |
404 | Unknown code, or no postings in the window |
429 | Per-second rate limit exceeded |
See errors for handling guidance. Every endpoint is also in the API Explorer.