Blog/Google Indexing API: Setup, Quota Limits, and What It Can't Do (2026)

Google Indexing API: Setup, Quota Limits, and What It Can't Do (2026)

Full Google Indexing API tutorial: Cloud project setup, service account keys, the 200-requests/day quota, and why it only covers job postings and livestreams.

IndexBolt Team·

The Google Indexing API is Google's push channel for content that expires: it accepts only JobPosting and BroadcastEvent pages, allows 200 publish requests per day by default, and rejects every URL on a domain your service account doesn't own. This guide walks through the full setup — Cloud project, service account, Search Console ownership, urlNotifications:publish — plus the real quota math, the risks of off-label use, and what to run instead for normal pages and backlinks.

TL;DR — Quick Summary

  • The Google Indexing API notifies Google that a URL was added, updated, or deleted, and Googlebot fetches it within minutes to hours — far faster than scheduled recrawling
  • Official eligibility covers two content types only: pages with JobPosting structured data and livestream pages with BroadcastEvent inside a VideoObject
  • Setup order: Google Cloud project → enable the Indexing API → service account + JSON key → add the service account as Owner of the Search Console property → POST to urlNotifications:publish
  • Quota: 200 publish requests per day per project by default, a 600-requests-per-minute burst limit, and batches of up to 100 notifications that each count against the daily 200
  • Off-label submissions work mechanically but violate the documented scope — Google has applied spam detection to submissions since 2023 and revokes quota from abusive projects
  • The API cannot submit backlinks: it only accepts URLs of properties your service account owns, so pages on other people's domains always fail the ownership check

What Is the Google Indexing API?

The Google Indexing API is an official Google API (indexing.googleapis.com) that lets a site notify Google the moment a URL is added, updated, or deleted, prompting a crawl by Googlebot — Google's crawler — within minutes to hours instead of waiting days or weeks for scheduled discovery.

Google built it for content that expires. A job listing that closed or a livestream that ended is worthless in search results, so publishers of JobPosting and BroadcastEvent structured data get a push channel that bypasses normal crawling and discovery. The API accepts two notification types:

  • URL_UPDATED — the page is new or its content changed; Google schedules a fresh crawl
  • URL_DELETED — the page no longer exists; Google removes the URL from its crawl queues and its index

A crawl is not an indexing guarantee. Search engine indexing stays selective: Google fetches the submitted URL fast, then applies the same quality thresholds it applies to every crawled page before writing anything to the index.


Which Pages Are Eligible for the Indexing API?

Google's documentation limits the Indexing API to exactly two content types: pages with JobPosting structured data and livestream pages with BroadcastEvent embedded in a VideoObject. Every other content type — blog posts, products, category pages, backlinks — is officially ineligible.

Eligible contentRequired structured dataTypical publishers
Job postingsJobPostingJob boards, career pages
Livestream videosBroadcastEvent inside a VideoObjectSports, gaming, and event livestream pages

The structured data is the eligibility ticket, so it has to be valid before you submit — generate correct JSON-LD with the free Schema Markup Generator if your pages lack it. For every other page type, Google's documented channels are XML sitemaps for discovery and the URL Inspection tool for single-URL crawl requests — both compared in the decision table below.


How Do You Set Up the Google Indexing API?

Setup runs through Google Cloud and Search Console in five ordered steps: create a project, enable the API, create a service account with a JSON key, grant that service account Owner access to your property, and send authenticated publish requests. Each step depends on the one before it.

Step 1: Create a Google Cloud Project

Sign in at console.cloud.google.com and create a new project named after the site it will submit for. The project is the quota holder — the 200-requests-per-day default attaches to the project, so an agency running one project for five sites forces all five to share a single quota pool.

Step 2: Enable the Indexing API

Open APIs & Services → Library, search for "Indexing API", and click Enable. This activates indexing.googleapis.com for the project and unlocks the quota dashboard where usage is tracked. Google's official Indexing API quickstart documents the same flow with screenshots.

Step 3: Create a Service Account and Download the JSON Key

Open IAM & Admin → Service Accounts, create a service account, then add a key under Keys → Add key → Create new key → JSON. The downloaded file contains the client_email (an address ending in .iam.gserviceaccount.com) and the private_key your code uses to sign OAuth 2.0 tokens. Store the file like a password — anyone holding it can spend your quota.

Step 4: Add the Service Account as Owner of the Search Console Property

In Search Console, open the property's Settings → Users and permissions, add the service account's client_email, and assign the Owner permission — the API rejects publish calls from accounts holding only Full or Restricted permission.

This ownership check is the API's hard boundary: the service account submits URLs only for properties it owns, which is why domains you don't control stay unreachable (the backlink section below covers the consequences).

Step 5: Send URL_UPDATED or URL_DELETED Notifications

Authenticate with the JSON key, request an OAuth 2.0 token for the https://www.googleapis.com/auth/indexing scope, and POST each notification to the publish endpoint:

curl -X POST "https://indexing.googleapis.com/v3/urlNotifications:publish" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/jobs/senior-editor", "type": "URL_UPDATED"}'

Send URL_UPDATED when a page is new or changed and URL_DELETED when it is gone. A 200 response confirms Google received the notification, and Googlebot typically fetches the URL within minutes to hours. For volume, the batch endpoint packs up to 100 notifications into one multipart HTTP request — with a quota catch covered next.


What Are the Indexing API Quota Limits?

The default quota is 200 publish requests per day per Google Cloud project, with a burst ceiling of 600 requests per minute. Both limits count notifications, not HTTP calls — a batch carrying 100 notifications spends 100 units of the daily 200.

QuotaDefault valueWhat counts
Publish requests per day200 per projectEvery URL_UPDATED / URL_DELETED notification
Requests per minute600Burst rate for API calls
Notifications per batch request100Batching saves HTTP round-trips, not quota

The batch endpoint is a network optimization, not a quota multiplier. Grouping 100 notifications into one HTTP request still consumes 100 of the day's 200 publish requests — teams that plan capacity as "200 batches of 100" overestimate their quota by a factor of 100.

Raising the limit requires a quota-increase request through the Cloud console plus a justification Google accepts — documented volume of job postings or livestreams. Google's Indexing API quota documentation describes the process; justifications built on ineligible content types fail.


What Happens When You Use the Indexing API for Normal Pages?

Off-label submissions work mechanically — the API accepts blog posts, product pages, and any other URL on a property you own, and a crawl often follows — but they violate the API's documented scope, and Google has enforced that scope since 2023. Three consequences follow:

  1. Spam detection. Since 2023 Google runs spam detection across Indexing API submissions and flags projects pushing content outside the JobPosting and BroadcastEvent scope.
  2. Quota revocation. Google revokes quota from abusive projects, closing the channel entirely — including for any legitimate job or livestream pages in the same project.
  3. No indexing payoff. A publish call buys a crawl, nothing more. Google's indexing systems still apply quality thresholds to the fetched page, so a thin page gets crawled fast and rejected just as fast.

Many SEO tools and indexing services have used the API for content far outside its official scope — that pattern is exactly what the 2023 enforcement targets. Serious operators treat the API as one channel among several, used inside its scope, rather than the whole method.


The Indexing API only accepts URLs belonging to Search Console properties your service account owns — and a backlink is, by definition, a page on somebody else's domain. You cannot verify ownership of a site you don't control, so every backlink submission fails the ownership check with a permission error.

This is the limit most SEOs discover last. The workflow that works for your own job pages — service account, Owner permission, publish call — has no equivalent for the guest post, directory listing, or niche edit that links to you, because the required Search Console ownership can never exist. No quota increase, header trick, or configuration change alters this; it is the API's authentication model.

Backlink indexing therefore runs through a different mechanism: getting Google to crawl third-party URLs you cannot submit yourself. The working playbook is in how to index backlinks fast, and the diagnostic path for links that stay invisible is in the guide to backlinks not indexed on Google.

Submit the URLs the Indexing API can't touch

IndexBolt pushes any URL — including backlinks on domains you don't own — directly into Google's crawl systems, with URLs crawled in hours. 100 free credits, no credit card required.


Indexing API vs Sitemaps, URL Inspection, and Indexing Services

Match the channel to the URL: the Indexing API for eligible expiring content, sitemaps for site-wide discovery, URL Inspection for single priority pages, and a URL indexing service for stuck pages and third-party backlinks.

ChannelEligible URLsSpeed to crawlCapacityBest for
Indexing APIJobPosting / BroadcastEvent pages on properties you ownMinutes to hours200 notifications/day (default)Expiring jobs and livestreams
XML sitemapEvery URL on your own siteDays to weeks — informs discovery; Google schedules the crawlFull site inventoryBaseline coverage for all pages
URL Inspection toolOne URL at a time in a verified propertyHours to daysAround 10–12 manual requests/dayPriority pages after a fix
IndexNowAny URL on a verified host — read by Bing, Yandex, Seznam.cz, and Naver, not GoogleEngine-dependent10,000 URLs per POSTBing and Yandex visibility
URL indexing serviceAny URL, including backlinks on domains you don't ownHoursPay per URLStuck pages and backlink indexing

IndexNow deserves its own decision: it is free and takes minutes to enable, but no IndexNow ping ever reaches Google. The full protocol breakdown is in IndexNow vs Google Indexing API: differences and when to use each.

The decision rule in one pass: publish job postings or livestreams → set up the Indexing API and stay inside quota. Publish anything else → keep your sitemap clean, request crawls for priority URLs in URL Inspection, and hand persistently unindexed URLs — your pages or your backlinks — to a submission service that feeds Google's crawl systems directly.


Frequently Asked Questions

Does the Google Indexing API guarantee indexing?

No. A publish call prompts a crawl — typically within minutes to hours — but indexing is a separate, selective decision. Google's indexing systems evaluate the fetched page against quality thresholds and index only what passes, exactly as they do for pages discovered any other way.

Is the Google Indexing API free?

Yes. Enabling the API, publish calls, and batch requests cost nothing. The binding constraint is the 200-requests-per-day default quota per Cloud project, not price — and quota increases are also free, they just require a justification Google accepts.

Can you use the Indexing API for pages on a domain you don't own?

No. Every submission is checked against Search Console ownership: the service account must be an Owner of the property containing the URL. Backlinks, partner pages, and all other third-party URLs fail this check with a permission error — no configuration changes that.

How do you increase the Indexing API quota above 200 per day?

Request an increase from the Indexing API's quota page in the Google Cloud console, with evidence of eligible volume — a job board publishing hundreds of JobPosting pages daily is the canonical case. Justifications based on ineligible content fail, and projects flagged for off-label submissions risk losing the default quota instead of gaining more.


Your fastest path depends on what you publish. For job and livestream pages, the Indexing API is the sanctioned, fastest channel — use it inside its scope. For everything else, including every backlink you build, submission has to run through a channel that accepts any URL.

Get any URL crawled by Google in hours

No eligibility rules, no daily quota. IndexBolt submits your pages and backlinks directly into Google's crawl systems — pay-per-URL credits that never expire, 100 free to start.

Ready to get your URLs indexed?

Start with 100 free credits. No credit card required.