Public API

Jobs API

A free, read-only JSON API for every open job on Active Vacancies. Listings come straight from employers' own hiring systems, are checked daily, and are removed when they close. No sign-up is needed.

Quick start

curl "https://activevacancies.com/api/v1/jobs?q=product%20designer&remote=remote&limit=5"
  • Base URL: https://activevacancies.com
  • Format: JSON. Every response has success and data; lists also have pagination.
  • Rate limits: 60 requests a minute without a key, 300 with a key sent in the x-api-key header. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; a 429 response adds Retry-After.
  • Keys and questions: support@activevacancies.com
  • Prefer a feed? The newest jobs are also in our RSS feed.

Endpoints

GET/api/v1/jobs

Search open jobs, newest first.

ParameterWhat it does
qKeywords, e.g. "data engineer".
locationCity, region or country text, e.g. London.
remoteremote, hybrid or onsite.
typefull_time, part_time, contract or internship.
company_slugOnly jobs from one company, e.g. stripe.
min_salaryOnly jobs whose published salary reaches this amount.
sortrecent (default) or salary.
limitResults per page, 1 to 50 (default 15).
pagePage number, for small result sets.
afterCursor from pagination.nextCursor, for walking large result sets.

Try it: /api/v1/jobs?q=data%20engineer&remote=remote&limit=5

GET/api/v1/companies

Employers we track, with their current count of open roles.

ParameterWhat it does
qCompany name search.
ats_providergreenhouse, lever, ashby and others.
min_active_jobsOnly companies with at least this many open roles.
limitResults per page, 1 to 100 (default 20).
pagePage number.

Try it: /api/v1/companies?min_active_jobs=100&limit=10

GET/api/v1/companies/{slug}

One company with its open roles and a breakdown by department.

Try it: /api/v1/companies/stripe

Example response

{
  "success": true,
  "data": [
    {
      "id": "97816519-cc30-4346-a2cf-9fa4506c0f8b",
      "title": "Senior Data Engineer",
      "slug": "senior-data-engineer-at-example-1a2b3c",
      "company": { "name": "Example", "slug": "example", "atsProvider": "greenhouse" },
      "department": "Data",
      "location": "London, UK",
      "remoteStatus": "hybrid",
      "employmentType": "full_time",
      "salary": { "min": 90000, "max": 120000, "currency": "GBP", "interval": "yearly" },
      "applyUrl": "https://boards.greenhouse.io/example/jobs/123",
      "url": "https://activevacancies.com/jobs/senior-data-engineer-at-example-1a2b3c",
      "postedAt": "2026-10-20T00:00:00.000Z",
      "firstSeenAt": "2026-10-20T06:00:00.000Z",
      "lastVerifiedAt": "2026-10-31T06:00:00.000Z"
    }
  ],
  "pagination": { "page": 1, "limit": 15, "totalCount": 1, "totalPages": 1, "hasNextPage": false, "nextCursor": null }
}

Salary is only present when the employer published it. applyUrl always points to the employer's own application page.

Fair use

Use the API in apps, research and dashboards. Please link back to Active Vacancies where you show the data, and keep each job's applyUrl so applicants reach the employer directly. Monthly totals are published in our hiring report.