Google Indexing API: what it is for, the job posting and livestream limit, and how to set it up
The two page types Google approves it for, the quota and the authentication sequence, and the right tools for getting ordinary pages indexed.
Published by AI Knows Us · Updated 12 October 2026
The Google Indexing API is built for two kinds of page only. Google's documentation states that it can be used to crawl pages with either JobPosting markup, or BroadcastEvent embedded in a VideoObject, which means job listings and livestream video pages. It notifies Google when one of those pages is added, updated or removed, and it is free to use. For every other kind of page, blog posts, product pages, service pages, the right tools are a sitemap, good internal linking, and the URL Inspection tool in Search Console. Tools and plugins that promise "instant indexing" for ordinary pages are using this API outside what it is approved for, and Google applies spam detection to submissions.
This page covers what the Indexing API does, how to set it up, and what to use instead for ordinary pages. For general crawling and indexing problems, start with the Search Console page indexing report.
What the API actually does
Google's Indexing API quickstart describes four operations:
- Update a URL. Tell Google there is a new URL to crawl, or that a previously submitted URL has changed.
- Remove a URL. After you delete the page from your servers, or add a
noindexrobots meta tag, tell Google so it can drop the page and stop trying to crawl it. - Get the status of a request. Check the last time Google received each kind of notification for a URL.
- Send batch requests. Combine up to 100 calls into a single HTTP request.
Google recommends the Indexing API rather than sitemaps for sites with many short lived pages such as job postings and livestream videos, because it prompts a crawl sooner than a sitemap update would, while still recommending you submit a sitemap for coverage of the whole site.
The limitation, stated plainly
Both the usage guide and the quota page repeat the same sentence: the Indexing API can only be used to crawl pages with either JobPosting or BroadcastEvent embedded in a VideoObject. The approval form for quota is specifically for pages carrying that markup.
Google also states that all submissions go through spam detection, that attempts to abuse the API including using multiple accounts to exceed quota may result in access being revoked, and that its spam policies apply to content submitted this way. That is the reason to keep ordinary pages out of it.
Quota and cost
| Limit | Default |
|---|---|
Publish requests per day per project, covering both URL_UPDATED and URL_DELETED | 200, resetting at midnight Pacific Time |
Read only requests per minute per project to the getMetadata endpoint | 180 |
| Requests per minute per project across all endpoints | 380 |
| Price | Google states that all use of the Indexing API is available without payment |
Those defaults are for onboarding and testing. Higher quota needs approval through Google's form, and Google notes the quota may increase or decrease based on document quality.
How to set it up
There is no such thing as a simple "indexing API key". Authentication is a service account with a private key, exchanged for an OAuth token. Google's prerequisites page gives the full sequence:
- Create a project and enable the API in the Google API Console, using the setup tool Google links from that page.
- Create a service account and create a key for it. JSON is the recommended format, and the downloaded file is the only copy of that key, so store it as a secret.
- Verify the site in Search Console, as either a domain property or a URL prefix property, using any supported verification method.
- Add the service account as a delegated owner. In Search Console, open the property, and in the verified owner list add the service account email as an owner. The address is the
client_emailfield in your JSON key, and it looks likename@project.google.com.iam.gserviceaccount.com. - Get an access token using the scope
https://www.googleapis.com/auth/indexing. Google's API client libraries handle the exchange in most languages.
Then the call itself. Content type must be application/json.
POST https://indexing.googleapis.com/v3/urlNotifications:publish
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
{
"url": "https://example.com/jobs/senior-technical-writer",
"type": "URL_UPDATED"
}
A successful call returns HTTP 200 with a UrlNotificationMetadata object, which Google describes as meaning it may try to recrawl the URL soon. To remove a page, send the same request with "type": "URL_DELETED" after the page is gone from your servers or carries a noindex tag. To check history, send a GET to https://indexing.googleapis.com/v3/urlNotifications/metadata.
What to use for ordinary pages
| Situation | The right tool |
|---|---|
| New or changed pages, any number | An XML sitemap with accurate lastmod values, submitted in Search Console |
| A handful of urgent URLs | The URL Inspection tool in Search Console, which Google documents under asking Google to recrawl. You need to be an owner or full user of the property, and there is a submission quota |
| Pages Google is not picking up at all | The page indexing report, which names the reason per URL, then fix that reason |
| Pages buried in the site | Internal links from pages that already get crawled. This is still the strongest discovery signal you control |
| Other search engines | IndexNow, a simple ping protocol with support from Microsoft Bing, Naver, Seznam.cz, Yandex and Yep |
One expectation to set with whoever asked for faster indexing: Google's own recrawl documentation says requesting a crawl does not make inclusion instant, and that its systems prioritise fast inclusion of high quality, useful content. Re-submitting the same URL repeatedly does not speed it up. Content quality and internal linking do more for indexing speed than any submission endpoint.
Common errors
- 403 Permission denied. The service account is not a verified owner of the Search Console property, or you added the wrong email. Use the
client_emailfrom the JSON key exactly. - Quota exceeded. You have passed 200 publish requests for the day, or you are sending too fast. Batch up to 100 per HTTP request and spread the work.
- The API returns 200 but nothing is indexed. A 200 means the notification was received. Check the page is indexable, that the markup is present and valid, and that the page is a job posting or livestream page.
- Invalid content type. Every publish call must send
application/json.
Asked and answered: Google Indexing API
Can I use the Indexing API for blog posts or product pages?
Google scopes the API to pages with JobPosting markup or BroadcastEvent inside a VideoObject, and the quota approval process is for exactly those. For blog posts and product pages, use a sitemap with accurate lastmod dates, internal links and the URL Inspection tool.
Is there an indexing API key?
Not a simple key. Access uses a service account JSON key exchanged for an OAuth token with the https://www.googleapis.com/auth/indexing scope, and that service account has to be a delegated owner of your Search Console property.
Does the Indexing API cost anything?
Google states that all use of the Indexing API is available without payment. The default quota is 200 publish requests per project per day, and more needs approval.
What is the fastest legitimate way to get an ordinary page indexed?
Publish it, link to it from a page Google crawls often such as your blog index or a relevant hub page, make sure it is in the sitemap with a correct lastmod, then submit it once in the URL Inspection tool. That sequence covers discovery, importance and notification in one go.
Do plugins that offer instant indexing work?
They call this API, which is scoped to job postings and livestream video pages, and Google applies spam detection to submissions and can revoke access for abuse. If a plugin offers it for ordinary posts, check what it is sending before you connect your service account.
An indexing question the API does not cover
The Indexing API gets job posts and livestreams crawled quickly. Whether a crawled page is then used in an assistant's answer is a separate question, and no quota decides it.
For ordinary pages, indexed is the entry ticket, not the result. After you submit, ask an assistant the question the page answers a week later and see whether it is named or cited. If it is indexed but never used, the page may be too thin or too similar to others. AI Knows Us runs the same test across the assistants and lists the sources behind the answer.