IndexNow API request reference

You can use the API to send one or multiple site page URLs to Yandex via the IndexNow protocol.

Sending one page

GET https://yandex.com/indexnow
  ? url=<String>
& key=<String>
& [keyLocation=<String>]

Parameter

Type

Required

Description

url

String

Yes

URL of the page for which you want to send the data. Must comply with the RFC3986 standard.

key

String

Yes

The key verifying the site management rights. When you send a request, the search engine matches this value with the file contents.

keyLocation

String

No

Path to the file with the key if it isn't placed in the root directory of the site.

HTTP code 200 OK

content-type: application/json

Other response codes:

Code

Reason

Description

202

Accepted

A new key is awaiting verification. If you're sure the key is correct, wait a little while and then submit a few other addresses.

If the code changes to 200 OK, it means the key is verified and the addresses are submitted.

If you still see code 202, the key hasn't yet been added to the database after verification. In this case, you need to wait longer.

403

Invalid key

The key couldn't be loaded or it doesn't match the URLs specified in the request.

405

Method not allowed

The GET and POST methods are supported.

422

Invalid key location

The keyLocation parameter is specified incorrectly.

422

Invalid url

The request contains an invalid URL or the passed key isn't suitable for processing it.

422

The key must be at least 8 characters

The key includes less than 8 characters.

422

Key must be no longer than 128 characters

The key includes more than 128 characters.

422

Key must consist of a-Z0-9 or '-'

The key contains invalid characters.

422

No key provided

The key parameter is missing in the request.

422

No url provided

The url parameter is missing in the request.

429

Too Many Requests

The number of requests for one IP address is exceeded.

Sending multiple pages

POST https://yandex.com/indexnow

To send information about multiple pages, use JSON format:

POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Content-Length: 286
Host: yandex.com{
  "host": "www.example.com",
  "key": "EdD8dkmdNLlxREi2LkhJjYOH2kyQbJqM3cBKT5fX",
  "keyLocation": "https://www.example.com/myIndexNowKey63638.html",
  "urlList": [
    "https://www.example.com/url1",
    "https://www.example.com/folder/url2",
    "https://www.example.com/url3"
  ]
}

Parameter

Type

Required

Description

host

String

Yes

Your site URL.

key

String

Yes

The key verifying the site management rights.

keyLocation

String

No

Path to the key, if it isn't placed in the root directory of the site.

urlList

Array

Yes

Contains URLs of the pages (String) for which you want to send the data.

You can send up to 10,000 URLs in one request.

HTTP code 200 OK

content-type: application/json

Other response codes:

Code

Reason

Description

202

Accepted

A new key is awaiting verification. If you're sure the key is correct, wait a little while and then submit a few other addresses.

If the code changes to 200 OK, it means the key is verified and the addresses are submitted.

If you still see code 202, the key hasn't yet been added to the database after verification. In this case, you need to wait longer.

400

Invalid params

The parameters sent in the request body are invalid.

403

Invalid key

The key couldn't be loaded or it doesn't match the URLs specified in the request.

405

Method not allowed

The GET and POST methods are supported.

422

Invalid key location

The keyLocation parameter is specified incorrectly.

422

Invalid url

The request contains an invalid URL or the passed key isn't suitable for processing it.

422

The key must be at least 8 characters

The key includes less than 8 characters.

422

Key must be no longer than 128 characters

The key includes more than 128 characters.

422

Key must consist of a-Z0-9 or '-'

The key contains invalid characters.

422

No host provided

The host parameter is missing in the request.

422

No key provided

The key parameter is missing in the request.

422

No more than 10000 urls allowed

The urlList parameter contains more than 10,000 URLs.

422

No url provided

The url parameter is missing in the request.

422

Url list has to be an array

The urlList parameter is missing or it is not an array.

422

Url list cannot be empty

An empty urlList parameter was passed.

422

Url has to be an array of string

The urlList parameter must contain String data.

429

Too Many Requests

The number of requests for one IP address is exceeded.

Questions and answers

How often can I send requests?

There is no limit on the number of requests. You can adjust their frequency: Yandex uses algorithms that prevent sending too many requests.

Can I send the same URL multiple times a day?

We don't recommend sending the same URL too often. If needed, send it at 10-minute intervals.

If the page is updated frequently, use other ways to report this to Yandex.

Can I send pages with HTTP code 404 via the API?

Yes, you can use IndexNow to report pages with code 404 or 410.

Can I send pages with the HTTP code 301 or 302 (redirection)?

Yes, you can send URLs with information about redirects or other changes.

Contact support

If you have a question about how the tool works, choose the appropriate one:

See the recommendations in the Why is it taking so long for pages to appear in search results? section.

Pages are sent for reindexing, but do not appear in the search

Use the recommendations on how to remove site pages or sections from search results. Search results are updated within two weeks.

Pages were not excluded from the search after two weeks