JobsWithPay API and MCP server
Open tech jobs with the posted pay, read directly from the job boards of the companies that hire and checked every day. Free, read only, no key and no sign-in.
JSON endpoints
| Endpoint | What it gives |
|---|---|
GET /api/v1/jobs/search | Search open tech jobs. All filters are optional. Up to 40 jobs a page; use next_cursor for the next page. Example: /api/v1/jobs/search?query=inference&location=bay_area&only_with_pay=true&sort=pay |
GET /api/v1/jobs/{id} | One job: full text (first 6,000 characters), posted pay, posted and last-checked dates, open or closed, and the apply link of the company. Example: /api/v1/jobs/351 |
GET /api/v1/pay/stats | Open jobs, the share with posted pay, and the median posted yearly USD base range for a job type and place. Example: /api/v1/pay/stats?job_type=ml_ai&location=nyc |
GET /api/v1/pay/top-companies | Companies with the highest median posted yearly USD base range (5 or more jobs with pay). Example: /api/v1/pay/top-companies?location=bay_area&job_type=software&limit=10 |
The OpenAPI 3.1 description is at /api/v1/openapi.json. A list value can repeat the key (location=nyc&location=bay_area) or use commas (location=nyc,bay_area). A wrong value gives HTTP 400 with the allowed values.
Search filters
| Name | Values |
|---|---|
query | Words in the job title or the company name, at most 120 characters. |
job_type | software, ml_ai, inference_systems, research, infra_cloud, data_eng, data_science, security, product, design, quant, solutions, hardware, analysis |
location | bay_area, nyc, remote_us, us_other, remote_global, international, india, bengaluru, hyderabad, delhi_ncr, mumbai, pune, chennai, remote_india |
level | intern, entry, senior, staff, principal, director |
workplace | onsite, hybrid, remote |
min_base_pay_usd | 100000, 150000, 200000, 250000, 300000: the top of the posted yearly USD range reaches this amount |
posted_within | 1d, 7d, 30d |
only_with_pay | true: only jobs that post a pay range |
sort | newest (default) or pay |
cursor | next_cursor from the previous page |
Places: bay_area (San Francisco Bay Area); nyc (New York City area); remote_us (remote in the US); us_other (other US places); remote_global (remote, any country); international (outside the US); india (India); bengaluru (Bengaluru); hyderabad (Hyderabad); delhi_ncr (Delhi NCR); mumbai (Mumbai); pune (Pune); chennai (Chennai); remote_india (remote in India).
MCP server
Add https://jobswithpay.com/api/mcp as a connector in ChatGPT, Claude or another agent (Streamable HTTP, no sign-in). It has the same 4 tools: search_jobs, get_job, salary_stats and top_paying_companies.
What the data means
Each job comes from the job board of the company: Greenhouse, Lever, Ashby, Workday, company careers sites, and some company boards through licensed feeds. We check each job every day and remove a job when the company removes it. last_checked is the date of the last check. Pay is the base range that the company posted, in its own currency and period; it does not include stock or bonus, and we never estimate it. The pay statistics use yearly USD ranges only.
Fair use
The API is free. Answers are cached for about 5 minutes, so do not ask for the same thing more often. When you show the data, name JobsWithPay as the source and link the job page (url), which has the apply link of the company. For high volume or a data partnership, write to us through the About page.