One call returns rows like this — 8,039 postings across 266 companies already carry a published annual range; the median is $200,000:
{"company":"anthropic","ats":"ashby","title":"Software Engineer, Inference",
"location":"San Francisco, CA","remote":false,"salaryLow":280000,"salaryHigh":420000,
"salaryCurrency":"USD","salaryUsdLow":280000,"salaryUsdHigh":420000,
"postedAt":"2026-10-21T18:04:00+00:00","url":"https://job-boards.greenhouse.io/..."}
Free Apify account → Settings → Integrations → API token. The dataset CSV needs no account at all; the API does.
curl -s -X POST \
"https://api.apify.com/v2/acts/zqBGjpzG8z3UZxN51/runs?token=$APIFY_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{"useVerifiedPool": true, "salaryOnly": true, "maxJobs": 50, "maxPerCompany": 2, "maxWorkers": 6}'
$0.0005 per run start plus $0.0015 per row returned. Rows you do not get are not charged, and postings without a salary are never returned when salaryOnly is on — so filtering is free.
| Rows | You pay | What that buys |
|---|---|---|
| 50 | $0.0755 | fast: descriptions off, no salary parsing |
| 200 | $0.3005 | reads job descriptions to recover pay ranges |
| 1,000 | $1.50 | reads job descriptions to recover pay ranges |
summaryComponents, Lever salaryRange); only then a text window around pay-cue phrases.salaryLocal*, so you can re-derive it yourself.The same rows are a free CSV, CC BY 4.0: 8,039 rows, 1.7 MB · method and distributions · mirror on GitHub. The paid version exists for the things a CSV cannot do: filters, incremental runs, and being a stable endpoint.