Scraper API

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.

SUCCESS
99.9%

of requests succeed

P50
2.4s

median response

P95
3.9s

95% finish faster

PRICE
$0.37

per 1k job searches at volume

Stop maintaining scrapers

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 integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in salary
fix: cf_clearance expired mid-crawl
fix: 403 wall after 20 pages
chore: rotate residential IPs again
fix: selector drift after layout test
hotfix: sponsored rows breaking dedupe
fix: salary regex misses hourly ranges
chore: rotate user-agents, again
fix: pagination token stopped working
fix: mobile viewjob redirect loop
hotfix: markup changed, nulls in salary
fix: cf_clearance expired mid-crawl
fix: 403 wall after 20 pages
chore: rotate residential IPs again
fix: selector drift after layout test
hotfix: sponsored rows breaking dedupe
fix: salary regex misses hourly ranges
chore: rotate user-agents, again
fix: pagination token stopped working
fix: mobile viewjob redirect loop
hotfix: markup changed, nulls in salary
fix: cf_clearance expired mid-crawl
fix: 403 wall after 20 pages
chore: rotate residential IPs again
fix: selector drift after layout test
hotfix: sponsored rows breaking dedupe
fix: salary regex misses hourly ranges
chore: rotate user-agents, again
fix: pagination token stopped working
fix: mobile viewjob redirect loop
hotfix: markup changed, nulls in salary
fix: cf_clearance expired mid-crawl
fix: 403 wall after 20 pages
chore: rotate residential IPs again
fix: selector drift after layout test
hotfix: sponsored rows breaking dedupe
fix: salary regex misses hourly ranges
chore: rotate user-agents, again
fix: pagination token stopped working
fix: mobile viewjob redirect loop
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
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 Query
The keyword used to search for job listings.
location * Location
The location to search for job listings.
sort Sort By
The sorting option for the search results.
start Result Offset
The starting index of the results to retrieve (optional).
domain domain
The domain of the Indeed site (optional).
TRY ALL 5 PARAMETERS FREE
Response

Every posting, one predictable schema

The same keys come back on every request. Map the fields once and forget about it.

jobs.json
[
  {
    "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"
  }
]
Fields in jobs
title string

Job title

company string

Employer name

location string

City, state or "Remote"

description string

Posting snippet

salary object

Normalized range: min, max, type (YEARLY, HOURLY, …)

details string[]

Job type tags (Full-time, …)

sponsored boolean

Paid placement flag

date / isoDate string

Posting date, human and ISO

url string

Job page URL for the job endpoint

What We Offer

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.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

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.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

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.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

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.

Hussein Ali
Hussein Ali
Clutch Clutch ★★★★★

We were particularly impressed with how easily we could integrate HasData into our existing workflow.

TB
Taras Bazyshyn
CEO at BAZTDL Sp. z o.o
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
200 job searches to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$1.02 / 1k job searches
40K job searches / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.41 / 1k job searches
200K job searches / month
30 concurrent requests
Team seats
Priority email support
Get started
Enterprise
$208 /mo
$0.35 / 1k job searches
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly job search volume
Free 200K 1M 4M 12M 20M
Best fit
Business
job searches / mo
200K
Concurrency
30
$ / 1k job searches
$0.41
$83 /mo
Get Started

Start with 200 free job searches. No credit card required.

FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first Indeed job listing
is minutes away

200 job searches free · no credit card