NewSearch millions of jobs from your AI agent with MCP
All posts
Guide·Jul 19, 2026·7 min read

Adzuna API: the free jobs API developers find first - a field guide

Adzuna is the rare aggregator with a genuinely free, documented jobs API - 1,000 calls a month, real salary analytics, coverage in 16+ countries. What the API returns, the endpoints nobody reads about (histograms, top companies, jobsworth), where it runs out, and what to pair it with.

Dvir Atias

Dvir Atias

Founder, JobsPipe

Search for a free jobs API and Adzuna is usually the first real answer you find. Unlike most aggregators, Adzuna publishes a documented, self-serve API with a genuinely free tier - about 1,000 calls a month - covering job search and, unusually, labor-market analytics across 16+ countries. This guide covers what the Adzuna API actually returns, the analytics endpoints most write-ups skip, where it runs out, and what to pair it with when it does.

Getting a key and making the first call

Register at Adzuna’s developer portal and you get an app_id and app_key pair. Every endpoint is scoped by country code in the path:

curl "https://api.adzuna.com/v1/api/jobs/us/search/1?\
app_id=$APP_ID&app_key=$APP_KEY&\
what=python%20developer&where=austin&results_per_page=20"

The response is JSON: a results array with title, company, location (with a parsed area hierarchy), category, a description excerpt, salary_min/salary_max, created date, and a redirect_url. Pagination is the trailing path segment (/search/1, /search/2, …).

The analytics endpoints nobody talks about

The search endpoint is what everyone uses, but Adzuna’s more distinctive surface is aggregate analytics over its index:

  • /histogram - salary distribution for a query, bucketed by range. The fastest way to answer “what does a data engineer make in Manchester?” without collecting postings yourself.
  • /history - average advertised salary by month, going back months. A free time series of salary drift per role or region.
  • /top_companies - which employers advertise most for a given query.
  • /geodata - vacancy counts by location, useful for heatmaps.

If your product is charts about the job market rather than the postings themselves, these endpoints alone can carry a prototype.

Where the Adzuna API runs out

  • Salary is often modeled, not stated. Responses carry a salary_is_predicted flag: when the posting has no stated range, Adzuna estimates one. Fine for aggregates, dangerous if you display it as the employer’s number.
  • Excerpts, not full descriptions. The description field is truncated, and redirect_url routes through Adzuna to the original listing - the API is built to send traffic to Adzuna, not to hand you complete records.
  • Aggregator provenance. Postings arrive via boards and feeds without per-source attribution you can query, and the same role can appear more than once through different boards.
  • Quota math. 1,000 calls a month is 33 a day. At 50 results a page, broad monitoring across roles and cities exhausts it quickly; the paid tiers are negotiated rather than listed.

What to pair it with

Adzuna is the best free option for aggregate analytics, and we say as much in our 2026 jobs API comparison and on the free jobs API roundup. The gap is record quality: if you need full descriptions, stated (not predicted) salary ranges, explicit source attribution, and dedup, you need the layer where postings are first published - the ATS feeds.

That is the layer JobsPipe reads: Workday, Greenhouse, Lever, Ashby and 30+ other sources, normalized into one JSON schema with cross-source dedup, structured salary parsed from the posting itself, and webhooks when a role opens or closes. A common split: Adzuna’s histograms for market-level charts, JobsPipe for the postings your product actually stores and shows.

Full postings, stated salaries, 30+ sources - free tier included.

Get a free API key

Frequently asked questions

Is the Adzuna API free?

Yes - Adzuna offers a free tier of roughly 1,000 API calls per month after registering for an app_id and app_key. Higher volumes are handled through negotiated paid plans rather than a published pricing page.

What data does the Adzuna API return?

Job search results with title, company, parsed location, category, a truncated description, salary_min/salary_max (with a salary_is_predicted flag when the range is estimated), and a redirect URL to the listing. Separate endpoints return salary histograms, historical salary averages, top hiring companies, and vacancy counts by location.

What are the Adzuna API's main limitations?

Descriptions are excerpts rather than full text, links route through Adzuna, salaries are often model-predicted rather than stated by the employer, there is no per-source attribution, and the free quota of about 33 calls a day runs out fast for broad monitoring. For complete, deduplicated records an ATS-layer API like JobsPipe is the usual complement.