JobsPipe
API Reference

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/benchmark

The Insights endpoints turn the postings corpus into aggregate labour-market answers: which occupations and industries are hiring, what skills they ask for, what they pay, and how exposed each group is to AI demand. Every number is measured live from deduplicated, liveness-tracked job ads at request time - never cached, never modeled. Occupations use ISCO-08 codes; industries use ISIC Rev.4 divisions. Requires authentication; each call costs 1 credit from your monthly quota.

Endpoints

MethodPathReturns
GET/v1/insights/occupationsISCO-08 occupations ranked by posting volume
GET/v1/insights/occupations/{code}Snapshot: count, remote share, top companies, titles, countries
GET/v1/insights/occupations/{code}/compensationAdvertised-salary percentiles (p10-p90)
GET/v1/insights/occupations/{code}/skills/topSkills ranked by mention share
GET/v1/insights/occupations/{code}/skills/trendingSkills growing or declining vs the prior window
GET/v1/insights/industriesISIC divisions ranked by posting volume
GET/v1/insights/industries/{division}/skills/trendingTrending skills inside one industry
GET/v1/insights/skills/{slug}/trendMonthly mention-share series for one skill
GET/v1/insights/technology/ai-exposureAI-skill share and salary premium per occupation or industry
POST/v1/insights/salary/benchmarkSalary percentiles for a code or title match

Common parameters

ParamApplies toDescription
window_daysallLook-back window over posting dates. Default 90, max 365.
{code}occupation endpointsISCO-08 code: 4 digits exact (2512), or 1-3 digits to roll up a whole group (25).
{division}industry endpointsISIC Rev.4 division, 2 digits (62).
directiontrending endpointsup (default) for growing skills, down for declining. The scan covers twice window_days to compare against the preceding period.
byai-exposureoccupation or industry.

Sample sizes and suppression

Insight quality is stated, never implied:

  • List endpoints only return groups with at least 30 postings in the window.
  • Percentile endpoints return suppressed: true with percentiles: null when the sample is under 30 - small-sample statistics are never leaked.
  • Every percentile response carries a confidence tier: low (30-99 postings), medium (100-999), high (1000+), alongside the exact count.

Example

curl "https://api.jobspipe.dev/v1/insights/occupations/2512/compensation?country=US" \
  -H "Authorization: Bearer jp_live_your_key_here"
200 OK
{
  "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, normalized to annual USD - a measurement of what employers offer publicly, which is not identical to survey-based earnings statistics.

Status codes

StatusMeaning
200Success (possibly suppressed: true)
400Invalid parameter
401Missing or invalid API key
402Monthly request quota exceeded
404Unknown code, or no postings in the window
429Per-second rate limit exceeded

See the error reference for handling guidance.

On this page