Indexing
Indexing
Indexing
Check if URLs are indexed in Google, and notify search engines the moment you publish.
POST
Indexing
Overview
The Indexing APIs let you:- Index Check: Check whether URLs are currently indexed in Google Search (via a dedicated Apify actor).
- Index Submit: Notify Bing, Yandex, Seznam and Naver about new or updated URLs using the IndexNow protocol.
Index Submit does not notify Google. Google has never participated in
IndexNow, and its own Indexing API officially covers only
JobPosting and
BroadcastEvent structured data — not general web pages. Use Index Check to
monitor Google coverage, and Index Submit for the four IndexNow engines.Setting up Index Submit
IndexNow has no accounts or OAuth. You prove you own a domain by hosting a key file at its root, and each submission quotes that key. This is a one-time setup per domain.1
Register the domain
key and the exact key_location to
upload it to.2
Upload the key file
Create a file named
<key>.txt containing exactly <key> and upload it to
your site root, so it is reachable at https://example.com/<key>.txt.3
Verify
GET /indexing/indexnow/keys lists your
domains and their verification state; DELETE /indexing/indexnow/keys/{id}
removes one.
All endpoints live under the main API base URL:
Create an indexing job
UsePOST /indexing/jobs to create a new job with up to 10,000 URLs per request.
Request
- api_key (string, required): Your GistMag API key.
- type (string, required):
"check"or"submit"."check"– checks whether each URL appears in Google Search results."submit"– notifies Bing, Yandex, Seznam and Naver via IndexNow.
- urls (string[], required): List of full URLs. 1–10,000 items per job. For
"submit", the 10,000 limit applies per domain, and every domain must be verified first. - source (string, optional): Source identifier (
"web","api","extension","wordpress","shopify","batch","tts"). Defaults to"web"when omitted.
Response — check
Index Check runs in the background. Use the job_id to poll for results.
Response — submit
IndexNow is fast and synchronous, so a submit job finishes inside the request
and returns its results immediately:
results. If some domains succeed and others fail the
job is still complete — check failed_count and the per-host message.
Submitting a URL on an unverified domain returns 400 with the offending hosts,
before any credits are charged:
List your indexing jobs
Response
Get a single job
IndexJob shape as in the list endpoint.
List URLs and results in a job
Response (Index Check jobs)
- status:
"pending"/"processing"– not finished yet."done"– we have a definitive answer."failed"– something went wrong (for checks this is often rate limiting).
- is_indexed:
true– Google SERP contained a clear match for the URL.false– SERP loaded but no match found.null– unknown (e.g. rate-limited).
- raw_result.reason:
"indexed"– clear match found."not_indexed"– no match found on SERP."rate_limited"– Google blocked the check (429 / CAPTCHA / “unusual traffic”)."error"– other error.
In the GistMag dashboard, URLs with
reason = “rate_limited” are shown as Rate limited so
you can distinguish them from true “not indexed” results. You can re-run those URLs in a smaller batch later.Export job as CSV
text/csv file with columns:
urlstatusis_indexedreasongoogle_statuscreated_atupdated_at