Skip to content

Open data

Open data on robot training jobs and pay

The numbers behind RobotTraining.jobs, free to use: the robot training roles open today by kind of work and employer, and the hourly pay they advertise. Plain JSON and CSV over HTTPS, with no key and no sign-up, readable from any website, refreshed every day.

748

open roles today

Data updated 17 hrs ago

Endpoints

Three files, one GET request each

Each file is built from the same daily read of the employers' own job feeds as the pages that show it, so the data and the site never disagree.

Open roles

GET /roles.json

How many robot training roles are open right now, by kind of work and by employer, with how many were first listed in the last 7 days and in each recent week. Counts are aggregates: the file does not list individual roles.

name, description
What the dataset is.
source
The page that renders the same numbers.
license
CC BY 4.0.
measurement_technique
How the figures are measured.
updated
When the job feeds were last read (ISO 8601, UTC).
temporal_coverage
The day the figures describe (YYYY-MM-DD). Cite this date.
totals.open_roles
Open roles across every employer read.
totals.platforms_live
Employers and programs with at least one open role.
totals.new_last_7d
Still-open roles first listed in the last 7 days.
recent_market_momentum.weekly[]
Roles first listed in each recent ISO week (week_start, new_roles), and their average.
open_by_work_type[]
slug, label, open_count, and the pay fields below where at least three employers advertise a rate (otherwise null).
open_by_platform[]
slug, name, open_count.

Pay by kind of work

GET /pay.json

The hourly pay robot training roles advertise, for each kind of work whose rate is advertised by at least three employers, so one employer's rate card is never published as a market rate.

name, description
What the dataset is.
source
The page that renders the same numbers.
license
CC BY 4.0.
measurement_technique
How the figures are measured.
updated
When the job feeds were last read (ISO 8601, UTC).
temporal_coverage
The day the figures describe (YYYY-MM-DD). Cite this date.
pay_by_work_type[].slug, label
The kind of work (for example robot teleoperation, egocentric capture, AV and drone operation).
currency, unit
USD, per hour.
median
Median advertised hourly rate.
typical_low, typical_high
25th and 75th percentile of advertised rates.
rate_samples
Distinct advertised rates measured, after removing relistings.
platforms
Employers advertising those rates.
open_total, unpriced
Open roles of that kind, and how many state no rate.

Pay by kind of work, as a spreadsheet

GET /pay.csv

The same rows as /pay.json, downloaded as a dated CSV file for spreadsheets.

Example

curl https://robottraining.jobs/roles.json

const res = await fetch("https://robottraining.jobs/pay.json");
const { pay_by_work_type } = await res.json();

Research reports

Every figure in the research reports

Each research report downloads whole or one figure at a time. Add ?edition=YYYY-MM for a frozen monthly edition and ?figure= with a figure's id for one table. The CSV has one line per published value: figure, row, measure, unit and value.

For AI assistants

Search the jobs from Claude, ChatGPT or any MCP client

The same data is a remote MCP server: an AI assistant can search the open roles and read the pay figures, and every role it finds links back here to apply. No key, no sign-up.

Server URL (Streamable HTTP)

https://robottraining.jobs/api/mcp

search_robot_training_jobs
Open roles matching keywords, kind of work, employer, country or a minimum hourly rate, each with its pay and a link to apply.
get_robot_training_pay
Median and typical hourly pay by kind of work (the /pay.json figures).
get_robot_training_market
Open roles by kind of work and employer, optionally for one country (the /roles.json figures).

In Claude, add it under Settings, Connectors, Add custom connector. In clients configured by file (Cursor, VS Code, Claude Code), add:

{
  "mcpServers": {
    "robottraining-jobs": { "url": "https://robottraining.jobs/api/mcp" }
  }
}

Terms

Free to reuse, with credit

  • License: CC BY 4.0. Credit RobotTraining.jobs, link the pay report, and cite the date in temporal_coverage.
  • Access: no API key, HTTPS only, CORS enabled (any origin may read the files from the browser). OpenAPI description: /openapi.json.
  • Freshness: the feeds are read once a day, so fetching more often returns the same figures. Cache for a few hours.
  • Method: how rates are counted, which roles are excluded and why a rate needs three employers is on how we compile pay.

Need a cut by country, employer or kind of work, or a longer history? Email hello@robottraining.jobs.