Is Google's Indexing API real? Read the receipt.
There's a healthy instinct that kicks in the first time you use any "get indexed faster" tool: is this actually doing anything, or is it a progress bar and a prayer? Fair question. The honest answer is that you never have to trust us on it — Google sends back a receipt for every single URL, and you can read it.
First, untangle two things with almost the same name
Most of the confusion comes from a naming collision. There are two different Google features people call "request indexing," and only one of them has an API:
- The "Request Indexing" button inside the Search Console web UI — a manual click, one URL at a time. Google does not expose this as an API, so no tool can automate it. This is the thing that's "blocked."
- The Google Indexing API — a real, public, officially documented endpoint (indexing.googleapis.com). This is what IndexerNow calls. It is not blocked, deprecated, or unofficial.
So when you hit Submit, you're not poking at the locked manual button — you're calling a separate, fully supported API that Google built specifically for programmatic crawl requests.
What Google sends back — the receipt
Each submit is one real HTTPS call: POST to urlNotifications:publish, authenticated with your own Google token. When Google accepts it, you get HTTP 200 and a body like this:
{
"urlNotificationMetadata": {
"url": "https://example.com/new-page",
"latestUpdate": {
"url": "https://example.com/new-page",
"type": "URL_UPDATED",
"notifyTime": "2026-05-28T14:03:11.870934Z"
}
}
}That notifyTime is the receipt. It's Google confirming, to the millisecond, that it received your crawl request and logged it against the URL. There's no guessing involved — if you see a notifyTime, the request landed.
When it doesn't work, Google tells you that too
Failures aren't silent. If something is wrong, Google returns an error envelope with a status and a human-readable message — for example, the most common one on day one:
{
"error": {
"code": 403,
"message": "Permission denied. Failed to verify the URL ownership.",
"status": "PERMISSION_DENIED"
}
}- 403 PERMISSION_DENIED — you don't own a Search Console property that covers this URL (often you signed in with the wrong Google account).
- 429 RESOURCE_EXHAUSTED — you've hit Google's ~200 publishes/day project quota.
- 400 — the URL is malformed or not a valid http(s) address.
See it yourself: the raw response viewer
We surface exactly this. After you submit on the Index tab, every URL row has a "Raw response" toggle that expands to show the verbatim JSON Google returned — success metadata or error envelope, plus the HTTP status. The same view lives under History → any batch, so you can pull up the receipt for a submission you made last week.
If a client or teammate ever asks "did you actually submit this?", open the batch in History, expand the raw response, and show them the notifyTime straight from Google. It's a per-URL audit trail you didn't have to build.
"Accepted" is not "indexed" — and that's true of every method
Here's the one thing the receipt does not promise: that Google will ultimately index the page. Indexing is Google's editorial decision, made on quality and relevance signals. No tool — not the API, not the manual button, not a plugin — can force it. What the Indexing API guarantees is the fastest, strongest crawl request available programmatically. Whether the page earns a spot in the index is still about the page.
How to confirm a page actually got indexed
- Submit the URL on the Index tab and confirm the notifyTime in the raw response.
- Wait an hour or two for Googlebot to act on the hint.
- Run the same URL through the Status tab — it calls the URL Inspection API and reports the real coverage state ("Submitted and indexed," "Crawled — currently not indexed," etc.).
- If it's stuck, run the Audit tool to find the on-page reason and fix it before resubmitting.
Sign in with Google, paste your URLs, ship them through Google's Indexing API. Free daily quota, $9.99 for a 50-URL pack.
Try IndexerNow free