Skip to main content

Protocol reference

IndexNow API: endpoints, requests and limits

IndexNow is a small HTTP protocol: prove you control a host with a key file, then tell participating engines which URLs changed. This page covers the protocol itself, not AutoIndexNow's own API.

Protocol facts last checked 2026-09-24.

Endpoints

Submitting to any participating endpoint is enough: engines share submissions with each other. Participating engines at the time of checking: Microsoft Bing, Yandex, Seznam.cz, Naver and Yep.

EndpointNote
https://api.indexnow.org/indexnowShared endpoint; forwards to every participating engine. AutoIndexNow uses this one.
https://www.bing.com/indexnowMicrosoft Bing.
https://yandex.com/indexnowYandex.
https://search.seznam.cz/indexnowSeznam.cz.
https://searchadvisor.naver.com/indexnowNaver.
https://indexnow.yep.com/indexnowYep.

Submit one URL (GET)

The simplest call passes the URL and the key as query parameters. The key file is expected at the root of the URL's host.

GET https://api.indexnow.org/indexnow?url=https://example.com/pricing&key=3f9a…

Submit a batch (POST JSON)

For more than one URL, POST a JSON body with Content-Type: application/json; charset=utf-8. All URLs must belong to host; keyLocation is optional and must be on the same host.

POST /indexnow HTTP/1.1
Host: api.indexnow.org
Content-Type: application/json; charset=utf-8

{
  "host": "example.com",
  "key": "3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9",
  "keyLocation": "https://example.com/3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9.txt",
  "urlList": [
    "https://example.com/pricing",
    "https://example.com/docs/api"
  ]
}
  • host: the hostname of the URLs, without scheme.
  • key: your key, 8 to 128 characters.
  • keyLocation: full URL of the key file when it is not /<key>.txt. Its directory limits the key to URLs under that path.
  • urlList: up to 10,000 absolute URLs per request.

How key verification works

There is no registration. When an endpoint receives a request it fetches the key file and compares its content with key. Engines may do this asynchronously, which is why 202 exists: the request was received and the key will be checked later. If the file is missing, on another host or contains something else, the request is rejected with 403.

Response codes

200 accepted and key validated; 202 received, key validation pending; 400 malformed request; 403 key not valid for this host; 422 URLs or keyLocation not on the host; 429 too many requests. Full explanations, causes and fixes are on the response codes page.

A 200 or 202 from an IndexNow endpoint means the request was accepted, not that the URL is indexed. Google does not participate in IndexNow.

Good practice

  • Submit URLs when their content changes, is added or removed, not on a timer. Repeatedly submitting unchanged URLs is treated as noise.
  • Submit canonical, indexable URLs only: no redirects, no noindex pages, no parameters that map to the same page.
  • Keep the key file reachable permanently; a broken key file silently turns every submission into a 403.
  • Batch changes and back off on 429.

AutoIndexNow implements exactly this: change detection on rendered content, eligibility checks, key health checks, bounded batches with retries, and a record of every response. The AutoIndexNow API lets you trigger it from deploys.