Indeed Jobs Scraper API
for jobs, salaries, and descriptions
Search Indeed job postings by keyword and location. One request returns a full page of jobs with titles, companies, salaries, and descriptions as clean JSON. No partner account, no proxies or infrastructure to run.
of requests succeed
median response
95% finish faster
per 1k job searches at volume
Indeed changes its layout overnight. Your code shouldn't care.
- Bot checks and challenges
- Rotating proxies & residential IPs
- A headless fleet to keep warm
- Salary formats that never match
- Layout tests that break parsers weekly
One GET Request. That's the whole integration.
Start with just a query. Add more parameters when your use case needs them.
curl -G 'https://api.hasdata.com/scrape/indeed/listing' \
--data-urlencode 'keyword=software engineer' \
--data-urlencode 'location=New York, NY' \
--data-urlencode 'sort=date' \
--data-urlencode 'domain=www.indeed.com' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'keyword * Search Querylocation * Locationsort Sort Bystart Result Offsetdomain domaincurl -G 'https://api.hasdata.com/scrape/indeed/job' \
--data-urlencode 'url=https://www.indeed.com/viewjob?jk=3c916f0d7f870c71' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'url * Job URLEvery posting, one predictable schema
The same keys come back on every request. Map the fields once and forget about it.
[
{
"title": "Agentic AI Engineer — Healthcare AI",
"company": "Deloitte",
"location": "New York, NY",
"description": "Deloitte brings together AI researchers, modeling and platform engineers, architects, clinical and domain specialists, and product leaders to build, deploy, and operate…",
"salary": {
"min": 110700,
"max": 372900,
"type": "YEARLY"
},
"details": [
"Full-time"
],
"sponsored": false,
"date": "30+ days ago",
"isoDate": "2026-06-11T01:35:21.152Z",
"url": "https://www.indeed.com/m/viewjob?jk=05d20580ccc0b96a"
}
]title stringJob title
company stringEmployer name
location stringCity, state or "Remote"
description stringPosting snippet
salary objectNormalized range: min, max, type (YEARLY, HOURLY, …)
details string[]Job type tags (Full-time, …)
sponsored booleanPaid placement flag
date / isoDate stringPosting date, human and ISO
url stringJob page URL for the job endpoint
{
"title": "Agentic AI Engineer — Healthcare AI",
"company": "Deloitte",
"location": "New York, NY",
"salary": {
"min": 110700,
"max": 372900,
"type": "YEARLY"
},
"details": {
"jobType": [
"Full-time"
]
},
"description": "Three hundred fifty million Americans rely on a healthcare system whose decision-making has become slow, costly, and adversarial - care delayed by prior authorization and paperwork, claims that…",
"descriptionHtml": "<div><p>Three hundred fifty million Americans rely on a healthcare system whose……</p></div>"
}title stringJob title
company stringEmployer name
location stringJob location
salary objectNormalized range: min, max, type
details.jobType string[]Employment type
description stringFull description, plain text
descriptionHtml stringFull description with original markup
{
"searchInformation": {
"title": "Software engineer jobs in New York, NY"
},
"pagination": {
"nextPage": "https://www.indeed.com/m/jobs?q=software+engineer&l=New+York%2C+NY&jli…"
}
}searchInformation.title stringSearch summary from the page
pagination.nextPage stringReady-to-use URL for the next results page
Enterprise-grade Indeed scraper
Get a complete Indeed scraping stack in just one API, which handles JS rendering, adaptive IP pools, automated retries, and 99.9% uptime backed by synthetic tests and health checks.
Discover similar
scrapers and APIs
to expand your projects.
Indeed Scraper
Job Listings Data • $0.75 / 1k Rows
Glassdoor Jobs Scraper API
Job Listings Data • $0.75 / 1k Request
Fits right into your stack.
Works with the tools you already use.
View Documentation ->Teams that deleted their scraper
Now it's the part of the pipeline they don't think about
HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.
We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.
Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.
I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.
We were particularly impressed with how easily we could integrate HasData into our existing workflow.
Plans that get cheaper at scale
Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.
Free
Startup
Business
RecommendedEnterprise
Monthly job search volume
Start with 200 free job searches. No credit card required.
Questions, answered
Per successful request. One search request returns a full page of postings, 50+ jobs included. A failed request costs nothing.
Yes, a one-time trial of 200 job searches with every field included. No credit card required. When you're done testing, pick a plan that fits your volume.
Paid plans start at $49 per month for 40,000 job searches and scale to 20 million a month. The unit price drops with volume, from $1.23 down to $0.37 per 1,000 searches.
Indeed's official APIs are limited to ATS and enterprise partners. HasData works with publicly available pages instead. No partner agreement, no OAuth, just an API key.
Titles, companies, locations, normalized salary ranges (min, max, period), sponsored flags, posting dates, and pagination for the next page.
Yes. Pass a job URL to the job endpoint and get the complete description as both plain text and HTML.
Yes. Set location for city-level search and domain for regional Indeed sites.
Nothing on your side. We track the changes and keep the response schema stable. Fields keep their names and types, and existing keys don't disappear.
No. Requests run on HasData's infrastructure, so there's nothing to provision or maintain. You're responsible for using the results in line with each target site's terms and applicable law.
Yes, you can cancel your subscription at any time from your dashboard in a few seconds. Once cancelled, there are no recurring payments.
Your first Indeed job listing
is minutes away
200 job searches free · no credit card