geondex
Docs

audit_page

Grade one URL's structured data for AI citation.

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

Graded against what AI engines actually need to quote a page — an agent can read the HTML but has no rubric for citation-readiness. Fetches one URL and returns the schema types present, the issues with fixes, and paste-ready JSON-LD. 1 credit. This is hygiene, not the lever: check_visibility tells you whether you are cited; this tells you whether the page is readable.

Request

Request body (JSON)

Example request

curl -s https://geondex.com/api/v1/audit -H "Authorization: Bearer gx_YOUR_KEY" -H "content-type: application/json" -d '{"url":"https://ttsensei.com/blades"}'

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

  • url · string
  • schemaTypes · string[]
  • issues · object[]
  • issues[].code · string
  • issues[].severity · "error" | "warn" | "tip"
  • issues[].title · string
  • issues[].fix · string · optional — Plain-text guidance
  • issues[].detail · string · optional
  • issues[].snippet · string · optional — Paste-ready JSON-LD
  • score · number — 0-100 citation-readiness

Example response

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

{
  "summary": "https://ttsensei.com/blades: score 68/100, 2 issues (top: Add Organization schema).",
  "data": {
    "url": "https://ttsensei.com/blades",
    "schemaTypes": [
      "Product"
    ],
    "issues": [
      {
        "code": "missing_organization",
        "severity": "warn",
        "title": "Add Organization schema",
        "fix": "Organization is the highest-impact schema type. It tells engines who you are, establishes brand identity, and links pages back to a canonical entity. Add once to the homepage or head.",
        "snippet": "{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Organization\",\n  \"@id\": \"https://ttsensei.com/#organization\",\n  \"name\": \"ttsensei.com\",\n  \"url\": \"https://ttsensei.com\",\n  \"logo\": \"https://ttsensei.com/logo.png\"\n}"
      },
      {
        "code": "tip_add_breadcrumb",
        "severity": "tip",
        "title": "Add BreadcrumbList schema",
        "fix": "Breadcrumbs help engines understand site hierarchy and improve link previews in answers. Add to every non-home page."
      }
    ],
    "score": 68
  },
  "credits": {
    "charged": 1,
    "remaining": 186
  }
}

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