{"components":{"schemas":{"CheckResult":{"properties":{"cached":{"description":"True when this result comes from the shared 24h per-domain cache (the same cache the free web checker uses).","type":"boolean"},"checked_at":{"example":"Nov 1, 2026, 2:44 PM","type":"string"},"checks":{"description":"All 24 checks with their verdict (Pass / Partial / Missing), points, and the evidence found on the site.","items":{"additionalProperties":true,"type":"object"},"type":"array"},"domain":{"example":"yoursite.com","type":"string"},"final_url":{"description":"The URL after any redirects the crawl followed.","example":"https://yoursite.com/","type":"string"},"fixes":{"description":"The fix list, ranked by points recoverable.","items":{"additionalProperties":true,"type":"object"},"type":"array"},"label":{"example":"Readiness score from on-site signals — not a measurement of live ChatGPT / Perplexity / Google AI answers.","type":"string"},"max_score":{"example":100,"type":"integer"},"ok":{"example":true,"type":"boolean"},"report_url":{"description":"Public, shareable URL of this exact report.","type":["string","null"]},"rubric":{"example":"AEO Score v2","type":"string"},"scope":{"properties":{"crawl":{"description":"Crawl facts, including pages that were attempted but could not be read.","type":"object"},"pages":{"description":"The pages that were read.","items":{"type":"string"},"type":"array"},"pages_checked":{"description":"How many pages the crawl actually read (maximum 10).","type":"integer"}},"type":"object"},"score":{"example":80,"maximum":100,"minimum":0,"type":"integer"},"sections":{"additionalProperties":{"properties":{"label":{"example":"Schema & structured data","type":"string"},"max":{"type":"integer"},"points":{"type":"integer"}},"type":"object"},"description":"The four rubric sections, keyed by section id.","type":"object"},"served_at":{"format":"date-time","type":"string"},"url_checked":{"example":"https://yoursite.com","type":"string"},"usage":{"$ref":"#/components/schemas/UsageBlock"}},"required":["ok","domain","score","rubric","cached","sections","checks","fixes","usage"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"enum":["aeocheck_missing_key","aeocheck_invalid_key","aeocheck_key_inactive","aeocheck_invalid_url","aeocheck_site_blocked","aeocheck_site_unreachable","aeocheck_rate_limited","aeocheck_quota_exceeded"],"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"ok":{"example":false,"type":"boolean"}},"required":["ok","error"],"type":"object"},"UsageBlock":{"properties":{"monthly_quota":{"description":"Free tier is 100/month. A request counts once when it passes authentication and URL validation and is served — including cached results and sites that cannot be scored. Auth failures and over-limit rejections never count.","type":"integer"},"remaining":{"type":"integer"},"requests_this_month":{"type":"integer"}},"type":"object"},"UsageResult":{"properties":{"key":{"properties":{"created_at":{"type":"string"},"label":{"type":"string"},"last_used_at":{"type":["string","null"]},"prefix":{"description":"The key's public prefix — the full key is never returned.","type":"string"},"status":{"example":"active","type":"string"}},"type":"object"},"ok":{"example":true,"type":"boolean"},"usage":{"properties":{"burst_per_min":{"description":"Per-key burst limit, requests per minute (default 10).","type":"integer"},"cache_hits_total":{"type":"integer"},"monthly_quota":{"type":"integer"},"remaining":{"type":"integer"},"requests_this_month":{"type":"integer"},"requests_total":{"type":"integer"}},"type":"object"}},"type":"object"}},"securitySchemes":{"ApiKeyHeader":{"description":"Your AEO Check API key (starts with aeo_live_). Keys are issued by AltaPoint on request — see https://altapointdevelopment.com/apis/aeo-check-api/#request-key","in":"header","name":"X-API-Key","type":"apiKey"},"BearerKey":{"description":"The same key sent as Authorization: Bearer <key> is also accepted.","scheme":"bearer","type":"http"}}},"info":{"contact":{"name":"AltaPoint Development","url":"https://altapointdevelopment.com/apis/aeo-check-api/"},"description":"Key-authenticated access to the AEO Score v2 engine — the same audit that powers the free AEO Readiness Check at altapointdevelopment.com/aeo-check/. Send a domain, get back a 0–100 readiness score with all 24 checks, the evidence behind each one, and a fix list ranked by points recoverable. Readiness is scored from on-site signals (schema, machine files, content, local proof) — it is not a measurement of live ChatGPT / Perplexity / Google AI answers. Sites behind bot protection return 422 and no score, because an incomplete crawl scored as fact would be worse than no number at all.","title":"AltaPoint AEO Check API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/check":{"get":{"operationId":"runCheckGet","parameters":[{"description":"Domain or homepage URL to audit, e.g. yoursite.com. The parameter `domain` is also accepted.","in":"query","name":"url","required":true,"schema":{"example":"yoursite.com","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}}},"description":"The audit result."},"400":{"content":{"application/json":{"examples":{"invalidUrl":{"value":{"error":{"code":"aeocheck_invalid_url","message":"That does not look like a website address. Send a domain or homepage URL, e.g. \"url\": \"yoursite.com\"."},"ok":false}}},"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid URL."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing, unrecognized, or revoked API key."},"422":{"content":{"application/json":{"examples":{"blocked":{"value":{"error":{"code":"aeocheck_site_blocked","message":"That site is blocking automated checks (bot protection), so a score would be incomplete and unfair. No score was issued — this is not a verdict on the business."},"ok":false}}},"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The site blocks automated checks (bot protection). No score is issued."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Per-minute burst limit or monthly quota reached."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The site could not be reached."}},"summary":"Run (or fetch the 24h-cached) AEO check for a domain","tags":["checks"]},"post":{"operationId":"runCheckPost","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"example":"yoursite.com","type":"string"},"url":{"description":"Domain or homepage URL to audit. `domain` is also accepted.","example":"yoursite.com","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}}},"description":"The audit result."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid URL."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing, unrecognized, or revoked API key."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The site blocks automated checks (bot protection). No score is issued."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Per-minute burst limit or monthly quota reached."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The site could not be reached."}},"summary":"Run (or fetch the 24h-cached) AEO check for a domain — POST form","tags":["checks"]}},"/usage":{"get":{"operationId":"getUsage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResult"}}},"description":"Usage for the authenticated key."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing, unrecognized, or revoked API key."}},"summary":"This key's usage, quota, and status","tags":["account"]}}},"security":[{"ApiKeyHeader":[]},{"BearerKey":[]}],"servers":[{"description":"Production","url":"https://altapointdevelopment.com/wp-json/aeocheck/v1"}],"tags":[{"description":"Run AEO readiness checks","name":"checks"},{"description":"Key usage and quota","name":"account"}]}