audit_page
Grade one URL's structured data for AI citation.
POST https://geondex.com/api/v1/audit- Cost: 1 credit
- MCP tool:
audit_page - Auth:
Authorization: Bearer gx_…(see Authentication) - Try it: Open audit_page in the playground
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)
url·string· required — One full page URL, e.g. https://ttsensei.com/blades. At most 2,048 characters. A full URL
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·stringschemaTypes·string[]issues·object[]issues[].code·stringissues[].severity·"error" | "warn" | "tip"issues[].title·stringissues[].fix·string· optional — Plain-text guidanceissues[].detail·string· optionalissues[].snippet·string· optional — Paste-ready JSON-LDscore·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.
| HTTP | When |
|---|---|
400 | Bad input |
401 | Missing or invalid key |
402 | Out of credits |
404 | Tool not available on this server |
429 | Rate limited |
502 | Upstream failure |
Every error.code and what to do about it: Errors & rate limits.