v1
Free tools

Test whether ChatGPT, Perplexity and Google AI Overview cite a website for one question (free tool)

Asks one question to three AI answer engines (ChatGPT with web search, Perplexity, Google AI Overview) in the chosen market, and reports for each engine whether your domain is cited as a source (cited, a citation on your registrable domain or one of its subdomains), whether your brand is named in the answer (mentioned, which is NOT a citation), which of your pages are cited, an excerpt of the answer, its sources, and the domains cited instead of yours.

One answer, on one day. This is a snapshot, not a lasting measure: AI answers change from one week to the next, and between two calls. Run the test again to compare.

Asynchronous, poll the result. This call only starts the test and answers HTTP 202 with a checkId and a pollUrl. Call GET /api/v1/tools/citation-check?checkId=... every 3 seconds until status is done or failed; a test usually takes less than 2 minutes. MCP clients must call the get_citation_check tool again until the status is terminal.

Identical questions are reused for 24 hours. The same question (case and spaces ignored) in the same market, asked less than 24 hours ago, returns the engine answers already collected, recomputed for your domain: HTTP 200 with reused true and status already done. Nothing is paid for again, and your daily quota is given back.

Domain. Send a domain name or any URL of the site: it is reduced to its registrable domain (https://www.example.co.uk/blog/ becomes example.co.uk). IP addresses, local names and unknown suffixes return 400 INVALID_DOMAIN.

Tiers, per UTC day.

  • Without an API key, free anonymous tier: 1 test per day per IP address.
  • Signed-in account, or API key of an account whose plan includes API access: 10 tests per day.

The API key of an account whose plan does NOT include API access does not authenticate, and the call returns 401. Remove the Authorization header to use the free anonymous tier instead.

Quota headers: X-RateLimit-Limit, X-RateLimit-Used, X-RateLimit-Remaining, X-RateLimit-Reset (Unix time of the next UTC midnight). Retry-After is set on 429 and 503. A 502 or 503 answer gives the consumed quota back, and so does a 429 FREE_CAPACITY_REACHED and a 200 reused answer; SERVICE_UNAVAILABLE consumes none.

Request format. Send the body as JSON with Content-Type: application/json: any other content type returns 415. Without an Authorization header, a request sent by a web page of another site (an Origin other than the SERPmantics app, or Sec-Fetch-Site: cross-site) returns 403. Server-to-server calls send no Origin header and are not affected.

post/api/v1/tools/citation-check

Request

  • Base URL: https://app.serpmantics.com (the document declares no server; this is the origin it was published from)
  • URL: https://app.serpmantics.com/api/v1/tools/citation-check
  • Auth: one of:
    • none
    • HTTP bearer

Request body

domainstring required

Domain to look for in the answers, or any URL of the site. Reduced to the registrable domain.

questionstring required

The question a prospect would ask an AI assistant, 10 to 200 characters once spaces are collapsed.

market'fr-FR' | 'en-US' | 'es-ES' | 'de-DE' | 'it-IT' required

Language and country in which the engines are asked.

Example request

{
  "domain": "serpmantics.com",
  "question": "Quel est le meilleur outil d'optimisation sémantique pour le SEO ?",
  "market": "fr-FR"
}

Response

The same question in the same market was answered less than 24 hours ago: the answers are reused and recomputed for your domain. Nothing was paid for again, the daily quota is given back, and the test is already done: read it at pollUrl, no polling loop needed.

successboolean

Example response

{
  "success": true,
  "data": {
    "checkId": "Q3v9Zk2LmN8pR5tW1xY7aB",
    "reused": true,
    "pollUrl": "https://app.serpmantics.com/api/v1/tools/citation-check?checkId=Q3v9Zk2LmN8pR5tW1xY7aB"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.