Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: AITraining.jobs open data Pay.json API
version: 1.0.0
summary: 'AI training job market data: open roles by kind of work and platform, and advertised hourly pay.'
description: 'Free, read-only data on AI training jobs (paid work training, evaluating and labeling data for AI models), measured daily from about 17 platforms'' public job feeds. No key, CORS enabled. Field reference: https://aitraining.jobs/data . License CC BY 4.0: credit AITraining.jobs and cite the date in temporal_coverage. The same data is available to AI assistants as a remote MCP server at https://aitraining.jobs/api/mcp .'
contact:
name: AITraining.jobs
url: https://aitraining.jobs/data
email: hello@aitraining.jobs
license:
name: CC BY 4.0
identifier: CC-BY-4.0
servers:
- url: https://aitraining.jobs
tags:
- name: Pay.json
paths:
/pay.json:
get:
operationId: getPayByWorkType
summary: Advertised hourly pay by kind of work
description: Median and typical (25th to 75th percentile) advertised hourly pay by kind of work, for each kind whose rate at least three platforms advertise.
responses:
'200':
description: The pay document for the day in temporal_coverage.
content:
application/json:
schema:
$ref: '#/components/schemas/PayDocument'
tags:
- Pay.json
components:
schemas:
DocumentInfo:
type: object
properties:
name:
type: string
description:
type: string
source:
type: string
format: uri
description: The page that renders the same numbers.
license:
type: string
format: uri
measurement_technique:
type: string
updated:
type: string
format: date-time
description: When the job feeds were last read (UTC).
temporal_coverage:
type: string
format: date
description: The day the figures describe. Cite this date.
PayBand:
type: object
properties:
currency:
type:
- string
- 'null'
examples:
- USD
unit:
type:
- string
- 'null'
examples:
- per hour
median:
type:
- number
- 'null'
typical_low:
type:
- number
- 'null'
description: 25th percentile of advertised rates.
typical_high:
type:
- number
- 'null'
description: 75th percentile of advertised rates.
rate_samples:
type:
- integer
- 'null'
description: Distinct advertised rates measured, after removing relistings.
platforms:
type:
- integer
- 'null'
description: Platforms advertising those rates.
PayDocument:
allOf:
- $ref: '#/components/schemas/DocumentInfo'
- type: object
properties:
pay_by_work_type:
type: array
items:
allOf:
- $ref: '#/components/schemas/PayBand'
- type: object
properties:
slug:
type: string
label:
type: string
open_total:
type: integer
description: Open roles of that kind.
unpriced:
type: integer
description: Open roles of that kind that state no rate.
externalDocs:
description: Field reference and terms
url: https://aitraining.jobs/data