Platform

AEO Website Research-grade Content Content Factory About Audits Rankings Pricing

Resources

Knowledge Base Research Docs FAQ

API Reference

API Reference

14 REST endpoints for submitting audits, polling status, retrieving results, and accessing visibility reports.

Base URL

All endpoints are prefixed with this base URL.

bash
https:"code-comment">//audit.aeocontent.ai/api/v1

Authentication

All requests require a Bearer token in the Authorization header.

bash
Authorization: Bearer aeo_live_...

See Authentication for details on creating keys, permissions, and rate limits.

Response Format

All successful responses return a data object and a meta object with a unique request ID and timestamp.

Success response

json
{
  class="code-string">"data": { ... },
  class="code-string">"meta": {
    class="code-string">"request_id": class="code-string">"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    class="code-string">"timestamp": class="code-string">"2026-02-22T12:00:00.000Z"
  }
}

Paginated responses include page, per_page, and total in the meta object.

Paginated response

json
{
  class="code-string">"data": [ ... ],
  class="code-string">"meta": {
    class="code-string">"request_id": class="code-string">"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    class="code-string">"timestamp": class="code-string">"2026-02-22T12:00:00.000Z",
    class="code-string">"page": 1,
    class="code-string">"per_page": 20,
    class="code-string">"total": 47
  }
}

Error responses return an error object with a machine-readable code and a human-readable message.

Error response

json
{
  class="code-string">"error": {
    class="code-string">"code": class="code-string">"error_code",
    class="code-string">"message": class="code-string">"Human-readable message"
  }
}

Error Codes

CodeStatusDescription
bad_request400Invalid parameters or malformed request body
unauthorized401Missing or invalid API key
forbidden403API key lacks the required permission for this endpoint
not_found404The requested resource does not exist
rate_limited429Per-key rate limit exceeded - retry after the reset window
internal_error500Unexpected server error - contact support if persistent

Endpoints

MethodPathDescriptionPermission
GET/audits/[slug]/discoveryFetch discovery findingsread
GET/audits/[slug]/opportunitiesGet prioritized opportunities and fixesread
POST/audits/[slug]/reauditRequest fresh re-auditread
GET/audits/[slug]Get full audit detailsread
GET/audits/[slug]/statusCheck audit job statusread
POST/auditsSubmit a domain for auditwrite
GET/auditsList your auditsread
GET/openapi.jsonOpenAPI 3.0.3 specification documentread
POST/plugin/heartbeatWordPress plugin heartbeatwrite
POST/plugin/onboardKick off first-run Discovery + Site Audit for a newly connected WordPress sitewrite
POST/plugin/registerRegister a WordPress site as a CMS connectionwrite
GET/score/[slug]Get cached AEO Site Rank for a domainread
POST/toolbar/checkQueue an instant audit from AEORank extensionwrite
POST/toolbar/syncSync a locally-run audit from AEORank extensionwrite