Published 2026-10-28 by Atlas Data
Indeed has no public job-search API for developers. If you need Indeed postings in a spreadsheet, a database or your own job board, the Indeed Jobs Scraper & API on Apify works like one. You send a keyword and a location and get clean JSON job records back. It covers 60 Indeed country sites and costs $0.06 per 1,000 jobs plus a $0.0005 start fee.
What you get per job
Job key, title, company, company rating and review count, location (city, state, postcode, country), salary parsed into min / max / period / currency with a yearly equivalent, job type, schedule, benefits, experience level, posted date, the full description, the Indeed job URL and the direct apply URL, plus a remote flag. Fields like salary, rating and benefits are filled only when Indeed shows them (salary on about 62% of jobs in our tests).
Option 1: No code
- Open the Indeed Jobs Scraper and click Try for free.
- Enter keywords (
data analyst), a location (Austin, TX) and the country. - Optionally set radius, date posted, job type, remote only, minimum salary and max jobs.
- Run it, then export the dataset as CSV, Excel or JSON.
You can also paste any Indeed search URL, for example https://uk.indeed.com/jobs?q=chef&l=Manchester&fromage=7. The country, query, location, radius, date and job-type filters are read from the URL.
Option 2: One HTTP call
run-sync-get-dataset-items runs the Actor and returns the jobs in the response:
curl -X POST "https://api.apify.com/v2/acts/atlasdata~indeed-jobs-scraper-reliable/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["software engineer"],
"location": "New York, NY",
"datePosted": "3",
"maxResults": 100
}'
Your API token is under Settings → API & Integrations in Apify Console.
Option 3: Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("atlasdata/indeed-jobs-scraper-reliable").call(run_input={
"keywords": ["registered nurse"],
"location": "Houston, TX",
"country": "us",
"jobType": "full-time",
"maxResults": 200,
})
for job in client.dataset(run.default_dataset_id).iterate_items():
print(job["title"], "|", job["companyName"], "|", job.get("salaryMin"), job.get("salaryPeriod"), "|", job["applyUrl"])
(pip install apify-client; this uses apify-client v3, on v2 write run["defaultDatasetId"]. A JavaScript client, apify-client on npm, works the same way.)
Useful input options
| Input | Example | Notes |
|---|---|---|
keywords |
["nurse", "data analyst"] |
Each keyword is a separate search |
location |
"London" |
Leave it empty to search a whole country |
country |
"gb" |
Which Indeed country site to search (60 available) |
radius |
10 |
Distance around the location |
datePosted |
"1", "3", "7" |
Posted in the last N days |
jobType |
"part-time" |
full-time, part-time, contract, temporary, internship |
remoteOnly |
true |
Remote jobs only |
minSalary |
120000 |
Applied to the parsed yearly salary. Jobs with no salary are skipped |
maxResults |
1000 |
Larger requests are split into date windows and de-duplicated |
startUrls |
Indeed search URLs | Use instead of keywords |
Keep a feed fresh
To get only new postings every day, save an input with "datePosted": "1" as a task and add a daily Schedule. Then send each new dataset to Google Sheets, Slack, a webhook or your database with Apify integrations. You pay only for unique jobs saved, and a search with no results costs only the start fee.
Speed and cost
In our tests a 50-job run took about 3 seconds, 1,000 jobs about 24 seconds and 2,000 jobs about 108 seconds. Costs: 100 jobs ≈ $0.0065, 10,000 jobs ≈ $0.60.
More job sources
- Google Jobs Scraper & API: postings from the job boards Google aggregates, with apply links, $3 per 1,000 jobs
- Glassdoor Jobs Scraper & API: salary ranges, company rating and company profile, $0.30 per 1,000 jobs
Use it from an AI agent
The Indeed scraper is also available as an MCP tool through the hosted Apify MCP server, alongside Google Jobs and Glassdoor:
https://mcp.apify.com/?tools=atlasdata/indeed-jobs-scraper-reliable,atlasdata/google-jobs-scraper-reliable,atlasdata/glassdoor-jobs-scraper-reliable
Configs for Claude, Cursor and VS Code are in the atlas-data-mcp repository.
Further reading
- Build a small job-market tracker with Google Jobs, Python and SQLite (dev.to)
- Compare salaries and hiring across countries with Glassdoor job data and Python (dev.to)