[NewSearch millions of jobs from your AI agent with MCP→](/blog/jobspipe-mcp-server)

[All posts](/blog)

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](/authors/dvir-atias.jpg)

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](/blog/best-jobs-api-2026) and on the [free jobs API](/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.

## 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.

[

← Previous

How to build a startup job board in 2026

](/blog/how-to-build-a-startup-job-board)[

Next →

Google Jobs API: why it doesn't exist, and what to use instead

](/blog/google-jobs-api)

---
Canonical URL: https://jobspipe.dev/blog/adzuna-api
Title: Adzuna API: the free jobs API developers find first - a field guide
Description: 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.