No, not for reading job postings. Indeed's current APIs are for partners who post jobs and handle applications, and the old job search API that took a publisher ID is gone. To get Indeed postings as data today, use Scavio's Indeed API: POST /api/v1/indeed/search with a role and a location returns a live page of postings with title, employer, employer rating, location, posting date and the salary as salary_min and salary_max, and /api/v1/indeed/job returns the full description. Each call costs 2 credits, about $0.004 on the Growth plan billed yearly, with no Indeed account.
The question has been asked on Reddit for years. A developer on r/webdev asked whether it was still possible to work with the Indeed API: the docs required a publisher ID, yet "there is no link to register", and they did not list the endpoints. The thread has 42 comments and still ranks first on Google for Reddit threads about the Indeed API. On r/IndeedJobs, someone building a job board asked whether they could connect to Indeed's API to show its postings. Here is where both stand in October 2026.
What Indeed offers now
Indeed's partner documentation splits job postings by partner type: ATS partners and direct employers use the Job Sync API to create, update and expire jobs, agencies use the Job Update API to edit jobs their ATS already publishes, and publishing partners use the Publisher JavaScript Plugin. Credentials live in the Partner Console, which you sign into with an Indeed partner account and where Indeed configures your app during setup.
The plugin is the closest thing to the old publisher program, and it is a widget, not data. You must be an Indeed partner to use it, it shows job cards that link to the job on Indeed, and the jobs come from a subset Indeed provides; the docs say to contact your Indeed representative for details. The old Publisher job search documentation at opensource.indeedeng.io/api-documentation now redirects to Indeed's engineering blog.
So if you are an ATS or a job board with an Indeed agreement, the partner route is the official one. If you want to search postings, store them, read salaries or feed them to an agent, there is no first-party API for it.
Step 1: Search postings
curl -s https://api.scavio.dev/api/v1/indeed/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "software engineer", "location": "New York, NY"}'On October 27, 2026 this returned 45 postings in 3.8 seconds, with total_results 3,518 and unique_results 2,784. One row, trimmed:
{
"job_key": "8af0957fc860f6a7",
"title": "Software Development Engineer",
"company": "Adobe",
"company_rating": 4.2,
"location": "New York, NY 10012",
"salary_text": "$114,100 - $214,950 a year",
"salary_min": 114100,
"salary_max": 214950,
"salary_period": "yearly",
"job_types": ["Full-time"],
"posted_relative": "30+ days ago",
"sponsored": false
}These are the fields the old publisher API was used for, plus a few it never had: numeric salary, the employer's rating and sponsored, which marks Indeed's paid placements. 30 of the 45 rows on this page were sponsored, so filter on it when you build a list.
Step 2: Keep a job board fresh
curl -s https://api.scavio.dev/api/v1/indeed/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "registered nurse", "location": "Denver, CO", "radius": 25, "max_age_days": 3, "job_type": "full_time"}'This returned 30 full-time nurse postings from the last three days within 25 miles of Denver, and every one showed a salary, 25 of them hourly. For a daily refresh, set max_age_days to 1 and skip any job_key you already hold. radius accepts 0, 5, 10, 15, 25, 35, 50 or 100 miles, and job_type takes full_time, part_time, contract, temporary or internship.
Step 3: Get the full posting
curl -s https://api.scavio.dev/api/v1/indeed/job \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_id": "8af0957fc860f6a7"}'Job detail returns the description as plain text and HTML (6,892 characters for the Adobe posting), structured salary, employment type, posted_at and valid_through (here February 24, 2027), and company_slug, which you can pass to /api/v1/indeed/company for the employer's profile and to /api/v1/indeed/company/reviews for employee reviews. The step-by-step version of all four calls is in how to get Indeed job postings.
What to expect, and the limits
- Live, not an index: each call reads Indeed when you make it, so new postings appear as soon as Indeed shows them.
- Salary only where posted: across 570 software engineer postings in ten cities, 79.5% showed a salary, from 93% in New York to 57% in Dallas. The rest return
salary_textnull. - Page sizes vary: page 1 held 36 to 45 postings in our test and later pages 15 to 25, each a separate 2-credit call.
- indeed.com only: there is no parameter for country sites such as indeed.co.uk.
- Your use is your responsibility: the data is public posting data, but republishing it on your own board is governed by Indeed's terms and the law where you operate, so check both.
A job board covering 20 roles in 5 metros, refreshed daily with max_age_days 1, is 100 calls and 200 credits a day, about 6,000 credits a month: $12 at the Growth-yearly rate. Pulling full descriptions only for postings you have not seen keeps the detail calls to the new ones.
Try the Indeed API free, 50 credits, no card, or run a search in the playground.
Reference: Indeed API overview · search docs · job docs · the best Indeed job data APIs
Frequently asked questions
Is the Indeed Publisher API deprecated?
The job search API that publishers used to call with a publisher ID is no longer offered. Its documentation at opensource.indeedeng.io/api-documentation now redirects to Indeed's engineering blog, and Indeed's current partner docs list no job search endpoint. What remains under the Publisher name is a JavaScript plugin that shows Indeed job cards on a partner's site.
Does Indeed use an API?
Yes, for partners. Indeed's Job Sync API lets ATS partners and employers create, update and expire jobs, the Job Update API lets agencies edit ATS-integrated jobs, Indeed Apply and the Disposition Sync API move applications and their status, and credentials are managed in the Partner Console. All of them move data into Indeed or between Indeed and a hiring system.
Can I show Indeed jobs on my job board?
Indeed's official route is the Publisher JavaScript Plugin, which requires an Indeed partner account and displays a subset of jobs Indeed provides, each linking back to Indeed. If you want the posting data itself to search, filter or analyse, Scavio's Indeed API returns it as JSON; check Indeed's terms and your counsel before republishing postings.
How do I get only new Indeed jobs each day?
Pass max_age_days to Scavio's /api/v1/indeed/search. It accepts 1, 3, 7 or 14, so a daily job with max_age_days 1 returns only postings from the last day, and job_key lets you skip any you already stored.