IndexFlow
Developer Tutorial

IndexNow API Tutorial: Get Pages Indexed on Bing in Minutes

10 min read
Updated April 5, 2026

IndexNow is a protocol that lets you notify search engines about new or updated pages instantly. Supported by Bing, Yandex, Seznam, and Naver — but not Google. Here's exactly how to set it up, with code examples in Python and Node.js.

What is IndexNow?

IndexNow is an open protocol created by Microsoft (Bing) and Yandex. When you publish or update a page, you send a simple HTTP request to IndexNow, and all participating search engines get notified immediately. No waiting for crawlers to discover your changes.

IndexNow Supports:

  • Bing
  • Yandex
  • Seznam.cz
  • Naver

Does NOT Support:

  • Google (uses its own Indexing API)
  • DuckDuckGo (uses Bing's index)

For Google indexing, see our Google Indexing API guide.

Step 1: Generate Your API Key

IndexNow uses a simple key-based authentication. Generate any string of 8-128 hex characters:

# Generate a random key

python3 -c "import uuid; print(uuid.uuid4().hex)"

# Example output: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

Save this key — you'll need it for the API call and the verification file.

Step 2: Host the Key File

Create a text file named {your-key}.txt containing just the key, and host it at your domain root:

# File: https://example.com/a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.txt

a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

Bing will check this file to verify you own the domain. The file must be accessible via HTTPS.

Step 3: Submit URLs

Send a POST request to the IndexNow endpoint with your URLs:

Python

import requests

KEY = "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
HOST = "example.com"

response = requests.post(
    "https://api.indexnow.org/IndexNow",
    json={
        "host": HOST,
        "key": KEY,
        "keyLocation": f"https://{HOST}/{KEY}.txt",
        "urlList": [
            f"https://{HOST}/blog/new-post",
            f"https://{HOST}/blog/updated-post",
        ]
    },
    headers={"Content-Type": "application/json"}
)

print(f"Status: {response.status_code}")
# 200 = OK, 202 = Accepted

Node.js

const KEY = "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6";
const HOST = "example.com";

const res = await fetch("https://api.indexnow.org/IndexNow", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    host: HOST,
    key: KEY,
    keyLocation: `https://${HOST}/${KEY}.txt`,
    urlList: [
      `https://${HOST}/blog/new-post`,
      `https://${HOST}/blog/updated-post`,
    ]
  })
});

console.log("Status:", res.status);

cURL

curl -X POST "https://api.indexnow.org/IndexNow" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "example.com",
    "key": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "urlList": ["https://example.com/new-page"]
  }'

IndexNow vs Google Indexing API

FeatureIndexNowGoogle Indexing API
Supported enginesBing, Yandex, Seznam, NaverGoogle only
Setup time5 minutes30-60 minutes
AuthenticationSimple key fileService account + OAuth
Daily limit10,000 URLs/day200 URLs/day
Coding requiredMinimal (1 HTTP call)Yes (auth + batch logic)
Page typesAny pageJobPosting only (officially)
CostFreeFree

Best approach: Use both. IndexNow for Bing/Yandex, Google Indexing API for Google. Or use IndexFlow which handles both plus 3 more channels automatically.

Common Mistakes

  • Key file not accessible: Must be at exact URL https://domain.com/key.txt
  • Using HTTP instead of HTTPS: IndexNow requires HTTPS for both the API call and key file
  • Submitting unchanged pages: Only submit genuinely new or updated URLs
  • Expecting Google indexing: IndexNow does NOT notify Google — you need the Google Indexing API separately
  • Bulk spam: Submitting thousands of low-quality URLs will get your key blocked

Skip the Setup — Use IndexFlow

IndexFlow handles IndexNow + Google Indexing API + Bing API + Crawl Network + Ping Services automatically. No API keys, no code, no key files. Just paste URLs and click submit.

Related: Convert Website to App | Modbus Simulator

FAQ

Does IndexNow work with Google?

No. Google has not joined the IndexNow protocol. For Google, use the Google Indexing API or a multi-channel tool like IndexFlow that handles both.

How many URLs can I submit per day?

IndexNow allows up to 10,000 URLs per day per key. For higher volumes, you can use multiple keys on different subdomains.

Is IndexNow free?

Yes, completely free. There are no costs associated with using the IndexNow API.

How fast does Bing index after IndexNow submission?

Typically within minutes to hours. Bing processes IndexNow submissions very quickly compared to natural crawling which can take days or weeks.

Related Guides