GET /v1/index?target=<domain or URL>&samples=<0–10>. Pass a bare domain to ask whether the site has indexed pages, or a full URL to ask about one page. samples caps how many indexed results come back as evidence (default 3, at most 10).
Index status
One call reports whether a URL — or a whole domain — is present in Google's index. The answer carries its evidence: the sample results Google returned, the engine that answered, and a link to verify it yourself.
The call
GET /v1/index?target=<domain or URL>&samples=<0–10>. Pass a bare domain to ask whether the site has indexed pages, or a full URL to ask about one page. samples caps how many indexed results come back as evidence (default 3, at most 10).
$ curl -H "Authorization: Bearer $KEY" \
"https://seometricsapi.com/v1/index?target=https://example.com/pricing&samples=3"{
"data": {
"target": "https://example.com/pricing",
"is_url_check": true,
"indexed": true,
"indexed_sample_count": 1,
"samples": [{ "url": "https://example.com/pricing", "title": "Pricing — Example" }],
"verify_url": "https://www.google.com/search?q=site%3Aexample.com%2Fpricing",
"engine": "serper",
"truncated": false,
"sources": { "index": { "provider": "serper", "fetched_at": "2026-09-09T10:14:02Z", "status": "ok" } }
},
"meta": { "resource": "index", "cache": "miss", "cost_units": 1, "degraded": false },
"error": null
}| Field | Meaning |
|---|---|
indexed | A real answer. false means the engine looked and found nothing; an engine that cannot tell answers 503 provider_unavailable rather than guessing. |
samples · indexed_sample_count | The indexed results the engine returned as evidence, and how many. null when the engine that answered supplies a bare verdict. |
engine | Which engine answered: a Google results engine, or the verification service used when both results engines fail. |
verify_url | The site: search you can open in a browser to see the same thing. |
truncated | True when more indexed pages exist than samples asked for. |
How it works
The check runs a site: query against Google through a results engine. If that engine fails, a second one is tried; if both fail, a dedicated index-verification service answers with a bare verdict for URL checks. Every answer names the engine in engine and in sources.index, so you always know what produced it.
Answers are cached. Checking the same target again inside the cache window costs 0 credits and answers from the cache, marked meta.cache: "hit".
Cost
A fresh check costs the credits set for the Google index checker on the pricing page — 1 credit per call by default. Cache hits cost 0. The endpoint is included in every plan, the free tier's 100 monthly credits included.
FAQ
A URL check asks whether that exact page is in Google's index and answers with the page itself as the sample. A domain check asks whether the site has indexed pages at all and returns up to ten of them as samples. The response says which it was in is_url_check.
Google only. The engine field names which of our Google-backed engines answered; Bing is not covered.
Results are cached for a short window and identical checks inside it cost nothing. A new check after the window runs a fresh query. There is no way to force a paid refresh from the free tier.
One target per call. Loop over your list at your plan's request rate; a Growth key runs 300 requests a minute, so 1,000 URLs take under four minutes. Cache hits are not throttled like fresh calls.
indexed answers false only when an engine actually looked and found nothing — never as a guess. If you need the page crawled, the link indexing API submits it to an indexing queue.
A free key carries 100 credits a month and works on this endpoint immediately.
© SEO Metrics API