geondex
Documentation

ai_mentions

Real AI answers that mention your brand or cite your site.

POST https://geondex.com/api/v1/mentions

Real questions people asked Google AI Overviews or ChatGPT whose answers mention your brand (brand) or cite your site (domain), with the answer, its sources and how often the question is asked. An agent cannot see these answers any other way. 35 credits. Use the questions as prompts for check_visibility.

Not available on every deployment: returns 404 not_found when this server is not configured for it. GET /me lists what is configured.

Request

Request body (JSON)

  • brand · string · optional — Your brand name as people write it, e.g. TTSensei. Finds answers whose text names you. Give brand or domain, not both. 1–100 characters
  • domain · string · optional — Your site, e.g. ttsensei.com (no scheme). Finds answers that cite a page on it, subdomains included. Give brand or domain, not both. 3–253 characters
  • platform · "google" | "chatgpt" · optional — google = Google AI Overviews (any location). chatgpt = ChatGPT (United States / English only). Default "google"
  • location · string · optional — Country or city by name, e.g. United States, Germany, or London,England,United Kingdom. 2–100 characters. Default "United States"
  • language · string · optional — Language by name, e.g. English, German. 2–50 characters. Default "English"
  • limit · integer · optional — How many answers to return, 1-50. Same price at any limit. 1–50. Default 20

Example request

curl -s https://geondex.com/api/v1/mentions -H "Authorization: Bearer gx_YOUR_KEY" -H "content-type: application/json" -d '{"brand":"TTSensei","limit":2}'

Response

200 with the envelope every tool returns: a one-line summary, the full data, and credits: { charged, remaining }. On a free call charged is 0 and remaining is null.

Fields of data

  • platform · "google" | "chatgpt"
  • total · number — Every matching answer in the index; mentions holds the first limit of them
  • mentions · object[]
  • mentions[].question · string — The question a real person asked
  • mentions[].answer · string — The AI answer in markdown, cut to 1,500 characters
  • mentions[].aiSearchVolume · number | null — Estimated monthly times this question is asked in AI search; null if unknown
  • mentions[].sources · object[]
  • mentions[].sources[].domain · string
  • mentions[].sources[].url · string
  • mentions[].sources[].title · string | null
  • mentions[].lastSeenAt · string | null — When this answer was last recorded, e.g. 2026-09-21 06:25:30 +00:00

Example response

Real-shaped, checked against the output schema by a test. Long lists are shortened.

{
  "summary": "148 AI answers mention TTSensei (showing 2).",
  "data": {
    "platform": "google",
    "total": 148,
    "mentions": [
      {
        "question": "best table tennis blade for beginners",
        "answer": "For a first blade, pick an all-wood ALL or ALL+ blade. It is slower than a carbon blade, which gives you time to learn clean strokes.\n\n- **Stiga Allround Classic**: light, soft, very forgiving.\n- **Butterfly Primorac**: a little faster, still easy to control.\n\nTTSensei's beginner guide compares twelve blades on speed and control and suggests staying on an all-wood blade for the first year.",
        "aiSearchVolume": 390,
        "sources": [
          {
            "domain": "ttsensei.com",
            "url": "https://ttsensei.com/blades/beginner",
            "title": "Beginner blades compared"
          },
          {
            "domain": "www.tabletennisdaily.com",
            "url": "https://www.tabletennisdaily.com/best-beginner-blades",
            "title": "Best Table Tennis Blades for Beginners"
          }
        ],
        "lastSeenAt": "2026-09-21 06:25:30 +00:00"
      },
      {
        "question": "how to choose table tennis rubber",
        "answer": "Start with a medium-soft rubber (around 40 degrees) on both sides. Harder rubbers are faster but punish small mistakes. Sites like TTSensei list rubber hardness and speed side by side, which makes comparing easier.",
        "aiSearchVolume": 170,
        "sources": [
          {
            "domain": "ttsensei.com",
            "url": "https://ttsensei.com/rubbers/how-to-choose",
            "title": "How to choose a rubber"
          },
          {
            "domain": "www.megaspin.net",
            "url": "https://www.megaspin.net/rubbers/",
            "title": null
          }
        ],
        "lastSeenAt": "2026-09-18 14:02:11 +00:00"
      }
    ]
  },
  "credits": {
    "charged": 35,
    "remaining": 130
  }
}

Errors

Every error has the body {"error":{"code":"…","message":"…"}} and is not charged.

HTTPWhen
400Bad input
401Missing or invalid key
402Out of credits
404Tool not available on this server
429Rate limited
502Upstream failure

Every error.code and what to do about it: Errors & rate limits.

On this page