Skip to content

Submit URLs to IndexNow

POST
/cron/indexnow
curl --request POST \
--url https://example.com/api/cron/indexnow \
--header 'Content-Type: application/json' \
--data '{ "urls": [ "https://example.com" ] }'

Protected by X-Cron-Secret (CRON_SECRET). Body urls must share one host; max 200 per request. Requires INDEXNOW_KEY. Optional INDEXNOW_KEY_LOCATION.

Media type application/json
object
urls
required
Array<string>
<= 200 items

Submitted to IndexNow

Media type application/json
object
submitted
required
boolean
host
required
string
count
required
integer

Invalid request

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

Forbidden

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

IndexNow upstream or network error

Media type application/json
object

INDEXNOW_KEY not configured

Media type application/json
object