Skip to content
WebScrap

Indeed API Alternative and Indeed Scraper API for Job Posting Data

Indeed's own APIs are for partners that publish jobs and receive applicants. None of them searches listings. Send an Indeed search or job URL and the fields you want, and get title, company, location, pay, posting date and the full description back as JSON, from 0.98 USD per 1,000 pages.

See pricing

Run a real request

Render
Extract
Status
...
Elapsed
... ms
Exit country
...
Browser used
...

This console sends a real request and shows you the real response. Five live fetches per session, and the sample targets run as often as you like.

Why the Indeed API does not return job listings

Indeed has an API, and it points the wrong way for most people who search for it. The documented endpoints let an applicant tracking system push its customers' jobs into Indeed and pull applications back out. There is no endpoint where you send "registered nurse, Austin" and receive the postings.

The API that did that was the Publisher job search API. It no longer issues keys. What replaced it is a partner program run through Indeed's Partner Console, with OAuth credentials and a Partner Developer Agreement that requires the partner to send a complete list of all jobs for all of its clients. That is a fair deal for an ATS vendor and no use to a job board, a staffing agency watching competitors, or an analyst counting openings by metro.

The postings themselves are public. An Indeed scraper API reads the search and job pages through residential addresses with a real browser, gets past the Cloudflare check in front of them, and returns the fields you name as JSON rows your database can take as they are.

Indeed API vs Indeed scraper API compared

Partner API terms as described in Indeed's developer documentation and Job Sync legal terms, read October 12, 2026. Indeed's own docs site answered our plain request with the same security check as the job pages, so these terms come from the indexed copies of those pages.

QuestionIndeed partner APIsOld Publisher APIWebScrap Indeed scraper API
What it doesPublishes jobs, receives applications, reports hiring outcomesSearched Indeed listings for display on publisher sitesReads any public search, job or company page
Search by keyword and cityNoYes, while it ranYes, any search URL you can open in a browser
How you get inPartner application, Partner Console app, OAuthNo new keys issuedAn API key from signup
ObligationsPartner Developer Agreement, send all jobs for all clientsNot applicableYour own compliance with site terms and data law
PriceNot publishedNot available49 USD for 50,000 pages, 0.33 per 1,000 on Scale
Best forATS and recruiting software posting customer jobsNobody todayJob boards, staffing agencies, labor market analytics

Where Indeed's route wins: if you build an ATS or a recruiting product and your customers want their jobs on Indeed with applications flowing back, the partner APIs are the only correct answer and no scraper replaces them. Sponsored job performance and candidate data live only inside Indeed. This page is for the opposite direction, reading what is publicly posted.

What one Indeed search page returns

You list the fields in plain English and the same keys come back on every page, so a nurse search in Austin and a welder search in Tulsa load into one table. A search page gives the summary of each posting. The job page behind it gives the full description, benefits and schedule.

Keep the job key. Indeed identifies each posting with a jk value in the URL, and the same job often shows up under several searches. Deduplicating on that key is what turns a pile of result pages into a clean count of openings. Pay is present only when the employer lists it or Indeed shows an estimate, so store it as nullable and keep the raw text next to the parsed range.

The same request shape works on other job sites. If you need several boards in one feed, the job scraping API page covers the general pattern and the LinkedIn scraper API page covers LinkedIn job listings.

Illustrative output. Field names are the ones you ask for.

What Indeed job data costs per month

One search page or one job page is one request. A search page lists about 15 postings and pages through with &start=10, &start=20. Sorting by date and reading the first pages each day catches new postings without walking the whole result set again. Monthly billing.

JobRequests per monthWebScrap planPer 1,000 pages
500 role and city searches, first two pages, dailyabout 30,00049 USD, Starter0.98 USD
The same 500 searches plus the full description of 20,000 new postingsabout 50,00049 USD, Starter0.98 USD
2,000 searches, first three pages, daily, for a niche job boardabout 180,000149 USD, Growth0.60 USD
National dataset, 12,000 searches, first three pages, daily, plus 400,000 job pagesabout 1,480,000499 USD, Scale0.33 USD

Figures assume each page loads on the first try. A page that comes back as a Cloudflare block is retried through a fresh residential address and only the successful fetch counts against your plan. Yearly billing halves every price above. Plan details are on the pricing page.

How to get Indeed job postings in four steps

01

Build the search list

Write the searches you would run by hand: role in q, city or ZIP in l, plus sort=date. Two hundred roles across twenty metros is 4,000 URLs and a spreadsheet can generate them.

02

Name the fields

Ask for job key, title, company, location, pay, job type and posting age. Send each URL as a POST to /v1/scrape with rendering on, as the API docs show.

03

Fetch only new jobs

Compare the job keys with what you already hold and request the job page only for keys you have not seen. That keeps description fetches to a fraction of the search volume.

04

Schedule it

Growth and Scale save a request as a job that runs every morning and posts the rows to your webhook, so new openings reach your recruiters or your board before lunch.

Who buys Indeed job data and what they do with it

Staffing

Staffing and recruiting agencies

Find employers that posted the same role three weeks running. A req that will not fill is a sales call, and the posting tells the rep what to pitch.

Job boards

Niche boards and aggregators

Track which employers hire in your niche and how they word and price roles, then sell them a listing on a board their candidates actually read.

Analytics

HR and labor market analytics

Count openings by title, metro and week, and read advertised pay bands for compensation benchmarks that are days old, not quarters.

Sales and investing

Hiring signals for sales and funds

A company that opens twelve warehouse roles in a new state is expanding. Sales teams and investors use hiring velocity as an early signal.

Illustrative rows with made up employers. The report is a group by on job key, company and title.

Four mistakes that break an Indeed scraper

Measured on October 12, 2026 against a public search URL.

Faking the user agent and stopping there. Our plain request got a page titled Blocked. Adding a desktop Chrome user agent changed the title to Security Check and nothing else: still a 403, still no jobs. Cloudflare scores the TLS handshake, the address and the JavaScript the client runs, so the fix is a real browser on a residential address. The Cloudflare scraping API page explains how the retries work and why you do not pay for the blocked ones.

Counting postings without the job key. One opening appears under "nurse", "RN" and "registered nurse", and sponsored jobs repeat across pages. Count rows and you overstate demand by a wide margin. Count distinct job keys.

Trusting "posted 30+ days ago". Indeed shows relative ages and stops counting at thirty days. Record the date you first saw a job key and compute age yourself. That first seen date is the most valuable column in the table, and you only get it by running daily.

Waiting for an API that fits. Teams spend weeks on a partner application before learning the program is for publishing jobs. If your product reads listings, decide that on day one and budget for the pages.

Indeed API and scraper questions

Does Indeed have an API?

Yes, but not one that returns job listings. Indeed's developer documentation covers partner APIs for applicant tracking systems and recruiting software: Job Sync to publish jobs, Indeed Apply and Candidate Sync to receive applications, and Disposition Sync to report hiring outcomes. They use GraphQL with OAuth credentials issued through Indeed's Partner Console.

Can I use the Indeed API for job search?

No. The documented Indeed APIs move data from an employer's software into Indeed and send candidates back. None of them takes a keyword and a city and returns matching postings. The older Publisher job search API that did this no longer issues keys, so reading Indeed search results today means reading the public pages.

How do I get an Indeed API key?

You apply to become an Indeed partner. Indeed sets up an app for your integration in its Partner Console and issues OAuth client credentials, under the Indeed Partner Developer Agreement. That route exists for ATS and recruiting software vendors that publish their customers' jobs. There is no self serve key for reading job listings.

Is the Indeed API free?

Indeed publishes no price list for its partner APIs. Access comes through a partner agreement, not a checkout page, and it obliges the partner to send a complete list of all jobs for all its clients. For a team that wants job data, the practical cost is a scraping API or a job data vendor, not an Indeed fee.

What happened to the Indeed Publisher API?

The Publisher program let job sites show Indeed listings through a job search API with a publisher ID. It no longer accepts new publishers and old integrations stopped returning data. We found no official retirement date from Indeed, and third party write ups place it anywhere from 2020 to 2024, so treat any exact date with caution.

Can you scrape Indeed?

Yes. Indeed search results and job pages are public and show title, company, location, pay when the employer lists it, job type, posting age and the full description. A scraping API loads them through residential addresses with a real browser, passes the Cloudflare check in front of the site and returns the fields you name as JSON.

Why is my Indeed scraper blocked?

Indeed sits behind Cloudflare. On October 12, 2026 a plain request to an Indeed search URL returned HTTP 403 and a 25,742 byte page titled Blocked. The same request with a desktop browser user agent returned 403 and a Security Check page asking for JavaScript. Residential addresses with full browser rendering get the real results.

What data can you scrape from Indeed?

From a search page, each posting's title, company, location, pay range, job type, posting age and job key. From a job page, the full description, benefits, schedule, remote or hybrid status and the employer's rating. Company pages add open role counts. Salary appears only where the employer or Indeed's estimate shows it.

How much does an Indeed scraper API cost?

On WebScrap one page is one request at a flat rate. Starter is 49 USD a month for 50,000 successful requests, which is 0.98 USD per 1,000, Growth is 149 USD for 250,000 and Scale is 499 USD for 1.5 million, or 0.33 per 1,000. A search page lists about 15 postings. Blocked fetches are retried and never billed.

Is it legal to scrape Indeed?

Reading public pages is generally not unauthorized access under US law after the hiQ v. LinkedIn rulings, but Indeed's terms restrict automated collection, so contract claims are possible. Job postings are employer content rather than personal data, which lowers privacy risk. Do not republish full descriptions as your own listings without permission, and have counsel review the use.

Get Indeed job postings as JSON without a partner agreement

Send a search or job URL and the fields you want. Title, company, location, pay and description come back as rows. 49 USD for 50,000 pages on Starter, blocked pages never billed.

Billed only on successful requests. No card required to create your account.