Indeed Publisher API Deprecated: What Happened, What to Use Now

CleanJobData Engineering

TL;DR

Indeed's Publisher API, the free job search API behind api.indeed.com/ads/apisearch, is retired and has no public replacement. Developers were reporting it as deprecated by mid-2022, and Indeed never published a dated shutdown notice we could find. Everything Indeed documents today at docs.indeed.com is for partners pushing jobs and applications into Indeed, advertisers managing Sponsored Jobs, or researchers reading aggregate Hiring Lab data. If you need queryable job listings, you need a different source, such as an ATS-sourced API, a Google Jobs scraper or a job-board aggregator.

On this page

Indeed's Publisher API, the free job search API that let developers query Indeed's listings with a publisher ID, is retired, and Indeed has not replaced it with any public way to read its job listings. The APIs Indeed documents today are for partners posting jobs and syncing applications into Indeed, for advertisers managing Sponsored Jobs, and for researchers reading aggregate labor market data.

That's why so many "Indeed API" tutorials fail: they call endpoints that stopped working years ago. This article covers what the Publisher API was, what we could and couldn't confirm about its shutdown, what Indeed offers now, and what developers use instead. Indeed's current docs were checked on November 1, 2026.

At a Glance

Indeed productWhat it doesWho can use itGives you Indeed's listings?
Publisher API (apisearch, apigetjobs)Searched and fetched Indeed jobsAnyone with a publisher ID, historicallyYes, but it's retired
Publisher JavaScript PluginRenders an Indeed job search widget on your siteIndeed partners, via an Indeed representativeNo, it's a widget with no raw data
Job Sync API (GraphQL) and Job Sync XMLCreate and manage job postings on IndeedATS partners, after a Developer Agreement and integration requestNo, it writes jobs into Indeed
Indeed Apply, Candidate Sync, Disposition SyncApplications and application statusIntegration partnersNo
Job Update APIList and update Indeed job postingsIntegration partnersNo
Sponsored Jobs APIManage paid campaignsAdvertisers who sponsored jobs in the last three monthsNo
Hiring Lab APIAggregate posting indices, wage growth, remote and AI sharesResearchers, by emailed requestNo, aggregates only
Indeed MCP server (beta)Lets Claude users search Indeed jobsPeople using the Claude connectorNot as a developer data API

What the Publisher API Was

The Publisher API was part of Indeed's publisher program. You registered as a publisher, received a numeric publisher ID, and passed it on every request. There were two main endpoints under api.indeed.com/ads: apisearch to search jobs and apigetjobs to fetch specific jobs by job key. Requests took the query (q), location (l), API version v=2, a format of XML or JSON, and the end user's IP address and user agent (userip and useragent), because results were meant to be shown to a real visitor.

The model was traffic. You displayed Indeed's jobs on your site, users clicked through to Indeed, and Indeed got the visit. It was never designed as a data feed you could store, enrich and resell, which matters for understanding why it wasn't replaced.

If your codebase has something like this, it's calling a dead API:

// Legacy Indeed Publisher API call. This endpoint no longer returns jobs.
const url = new URL("http://api.indeed.com/ads/apisearch");
url.search = new URLSearchParams({
  publisher: process.env.INDEED_PUBLISHER_ID,
  q: "data engineer",
  l: "Austin, TX",
  v: "2",
  format: "json",
  userip: req.ip,
  useragent: req.get("user-agent"),
});

When and How It Was Shut Down

We couldn't find an official Indeed announcement with a shutdown date. What's on the record:

  • Developers reported it as deprecated by mid-2022. An issue titled "Indeed job search api is deprecated" was opened on June 8, 2022 on the jobapis/jobs-indeed client library, followed by "Is indeed API still actively maintained" in December 2022.
  • Third-party write-ups put the final shutdown around 2023, with existing keys no longer working. We treat that year as reported, not confirmed.
  • The old documentation is gone. Indeed's legacy API docs at opensource.indeedeng.io/api-documentation now redirect to Indeed's engineering blog.
  • The current docs don't list it. The API index at docs.indeed.com/api-guides lists Candidate Sync, Disposition Sync, Hiring Lab, Job Sync, Job Update, Indeed Apply, Job Sync XML, a Real-time API and a SCIM API. None of them searches Indeed's listings.

In practice the shutdown was quiet: no migration guide, no successor endpoint, just requests that stopped returning jobs and a program that stopped issuing IDs.

What Indeed Offers Today

Job Sync API

Indeed describes the Job Sync API as "a GraphQL API for ATS partners to create, upsert, expire, and check the status of job postings on Indeed." It's the direction data flows that matters: jobs go from the ATS into Indeed, not out.

Getting access is a partnership process, not a signup. The integration roadmap asks you to sign a Developer Agreement, submit a formal integration request through "Become an Indeed partner", and then complete a questionnaire about volumes and go-live dates. Credentials come from Indeed's Partner Console once Indeed creates an app for you. Indeed says the integration "usually takes about six weeks", counting setup, testing, review and deployment.

Indeed Apply, Candidate Sync and Disposition Sync

These cover the application side: letting candidates apply on Indeed, sending those applications to the ATS, and sending hiring-stage updates back to Indeed. They're useful if you build an ATS. They don't expose listings.

Publisher JavaScript Plugin

The closest thing to the old publisher program is the Publisher JavaScript Plugin. You must already be an Indeed partner and request it through your Indeed representative. It renders a search widget with job cards that link to Indeed, and Indeed caps the monthly revenue each publisher can earn from clicks. Your code never sees the job data, so you can't filter it server-side, store it or merge it with other sources.

The Sponsored Jobs API is for advertisers managing paid campaigns. Its usage policy limits it to customers who have sponsored jobs within the last three calendar months and prices calls at 3 USD (3 EUR in EU markets and Switzerland), with the first $50 of monthly call costs waived and fees applying only when campaign spend is below the call cost. It manages campaigns; it doesn't return listings.

Hiring Lab API and data

The Hiring Lab API serves aggregate measures: job postings indices, the share of remote or hybrid postings, posted wage growth and the share of AI-related postings. You request a key by emailing Indeed with your use case. Much of the same data is free on GitHub: the job postings tracker publishes a seasonally adjusted index of postings relative to February 1, 2020, updated weekly, under CC BY 4.0. It's good for market trends, but it contains no individual jobs.

Indeed's MCP server

Indeed's MCP server is in beta and, per its docs, available only through the Claude connector. It lets people search jobs and read postings inside a chat assistant. It's a consumer integration, not a programmatic data API you can call from your backend.

Why There's No Public Replacement

Indeed hasn't published a reason, so this is our reading of its docs rather than a statement from Indeed. Every API it maintains moves jobs, applications or ad spend into Indeed. A public read API would do the opposite: send Indeed's index, and its users, to other sites. The publisher program made sense when that traffic flowed back to Indeed; without it, there's little in a listings API for Indeed.

The practical takeaway: don't plan around Indeed reopening it. If a vendor sells "Indeed API" access today, it's a third party collecting Indeed's pages, not Indeed, and you inherit whatever terms and blocking risk comes with that.

Alternatives

Choose by where the data comes from, then by price and terms:

You needOptionNotes
A searchable listings API with structured fieldsATS-sourced APIs such as CleanJobDataJobs come from employers' own ATS boards and career sites. No Indeed data.
What Google shows for a job queryGoogle Jobs scrapers such as SerpApiResults mirror Google's job search, with string locations. See CleanJobData vs SerpApi.
A free, low-volume aggregatorAdzuna, Jooble, CareerjetKeys, attribution and quotas vary. See the Jooble API guide.
Bulk history for analyticsDataset vendorsPriced by records or credits. See Best Job APIs in 2026.
Aggregate labor market trendsIndeed Hiring Lab dataFree under CC BY 4.0, no individual jobs

For a direct comparison with what Indeed offers developers, see CleanJobData vs Indeed API. For free options and their real limits, see Best Free Job APIs in 2026.

Migrating Old Publisher API Code

The old request mapped a keyword and a free-text location to a list of jobs. Here's the same idea against CleanJobData's Jobs API. Location takes country codes, or a city_id from the Geo Suggest API for city-level search:

// Node 18+
const params = new URLSearchParams({
  title: "data engineer",
  location: "US",
  max_age: "14d",
  limit: "20",
});
 
const res = await fetch(`https://api.cleanjobdata.com/jobs?${params}`, {
  headers: { Authorization: `Bearer ${process.env.CLEANJOBDATA_API_KEY}` },
});
if (!res.ok) throw new Error(`CleanJobData error: ${res.status}`);
 
const { data, pagination } = await res.json();
for (const job of data) {
  console.log(job.title, "|", job.company?.name, "|", job.location);
}
// pagination.next_page is a cursor for the next request

Differences to plan for:

  • No userip or useragent. Auth is a Bearer token on your server. Don't call it from the browser with your key.
  • Structured fields. You get salary_min, salary_max, salary_currency, experience_level and a structured locations array instead of a formatted string and a snippet.
  • Different jobs. CleanJobData covers employers that publish on ATS platforms and career sites. It won't return jobs that exist only on Indeed, so check coverage for your market with the free Trial before you migrate.

FAQ

Is the Indeed Publisher API still available?

No. The apisearch and apigetjobs endpoints no longer return jobs, and Indeed's current developer docs don't list any job search API. Developers were reporting it as deprecated by mid-2022, though we found no official shutdown announcement.

Does Indeed have a job search API in 2026?

Not one you can sign up for. Indeed's documented APIs are for ATS partners posting jobs and syncing applications, advertisers managing Sponsored Jobs, and researchers reading aggregate Hiring Lab data.

Can I still get an Indeed publisher ID?

The publisher program that issued IDs for the API is gone. The remaining Publisher JavaScript Plugin requires you to be an Indeed partner and to request access through an Indeed representative, and it renders a widget rather than returning data.

What is the best alternative to the Indeed API?

It depends on the data you need. For structured, queryable listings from employers' own career sites, use an ATS-sourced API such as CleanJobData; for mirroring Google's job results, use a SERP API. See CleanJobData vs Indeed API for the side-by-side.

Does CleanJobData include Indeed jobs?

No. CleanJobData sources jobs from employer ATS platforms and company career sites, not from Indeed, LinkedIn or Glassdoor. Many employers that advertise on Indeed also publish the same role on their own ATS, so the employer-direct version is often available.