IndexNow Key Generator
Generate a spec-compliant IndexNow key, download the file you need to publish, and check it resolves — free, no account.
Now publish it
Create a plain text file containing only the key:
and serve it at your domain root:
The key is not a secret
This trips people up constantly. An IndexNow key looks like an API key, so the instinct is to hide it
in an environment variable. But the protocol only works if search engines can read it — you
publish it at https://yourdomain.com/{key}.txt
and anyone can fetch it.
It is a proof of ownership, not a credential. It grants no access to your site, your account or your data. The worst anyone can do holding your key is notify search engines about your own URLs.
What the spec actually requires
| Length | 8 to 128 characters. |
| Character set | a-z, A-Z, 0-9 and dashes. Nothing else — underscores and dots are rejected. |
| File name | {key}.txt — the file is named after the key. |
| File contents | The key, and nothing else. A trailing newline is fine; anything else fails validation. |
| Location | Your host root by default, or anywhere on the same host if you pass keyLocation. |
| Content type | text/plain. Most engines tolerate others, but serving it correctly removes a variable. |
Generating one yourself
There is nothing special about the value — it just has to be unguessable and match the character set. Any of these produce a valid key:
# macOS / Linux
openssl rand -hex 16
# PowerShell
-join ((48..57) + (97..102) | Get-Random -Count 32 | % {[char]$_})
# Node
node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"
# This site's API
curl https://instantindexnow.com/api/generate-key
After you publish it
Verify the file actually resolves before you rely on it. This matters more than it sounds: the global
IndexNow endpoint, Bing and Yandex all return
202 Accepted for a key that was never
published, then discard the submission later without telling you.