geondex
Docs

suggest_prompts

Buyer-intent questions to check your domain against.

POST https://geondex.com/api/v1/prompts/suggest

The questions real buyers put to AI engines in your domain's niche, grounded in your domain's own homepage — an agent guessing prompts from the domain name alone gets the niche wrong. Returns prompts ready to feed into check_visibility. 1 credit. If you already know the prompts, skip this and call check_visibility directly.

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)

  • domain · string · required — Your site, e.g. ttsensei.com (no scheme). 3–253 characters
  • count · integer · optional — How many prompts to return. Default 5. 1–10. Default 5

Example request

curl -s https://geondex.com/api/v1/prompts/suggest -H "Authorization: Bearer gx_YOUR_KEY" -H "content-type: application/json" -d '{"domain":"ttsensei.com","count":3}'

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

  • domain · string
  • prompts · object[]
  • prompts[].text · string — Feed this straight into check_visibility
  • prompts[].intent · "commercial" | "comparison" | "informational" — What the buyer is trying to do. suggestKeywords defaults to informational.

Example response

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

{
  "summary": "3 prompts for ttsensei.com: \"best table tennis blade for beginners\", \"Butterfly Viscaria vs Timo Boll ALC\", \"how to choose table tennis rubber\".",
  "data": {
    "domain": "ttsensei.com",
    "prompts": [
      {
        "text": "best table tennis blade for beginners",
        "intent": "commercial"
      },
      {
        "text": "Butterfly Viscaria vs Timo Boll ALC",
        "intent": "comparison"
      },
      {
        "text": "how to choose table tennis rubber",
        "intent": "informational"
      }
    ]
  },
  "credits": {
    "charged": 1,
    "remaining": 187
  }
}

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