Audits
Start an AEO (AI readiness) audit of a page
POST
https://api.magistermarketing.com/v1/audits/aeoOne page's readiness for AI answers, such as llms.txt, structured data and crawler access: pass or fail per check.
- Cost
- Free
- Runs
- As a job: 202, then poll
- Key
- Any key
- Holds up to
- Nothing
Parameters
| Name | Type | About |
|---|---|---|
| webhook_url | string · body | Public https URL POSTed when the job finishes, signed in Magister-Signature with your organization's webhook secret (Settings -> Developers -> Webhooks); retried 5 times over a day.at most 2000 characters |
| max_credits | number · body | Refuse the job (402 limit_reached, reason max_credits_exceeded) when the most it may hold is above this. A refused job costs nothing.above 0, at most 100,000 |
| urlrequired | string · body | A public page, such as https://example.com/pricing. at most 2000 characters |
This one runs as a job: the call answers 202 with a job_id; poll GET /v1/jobs/{job_id} until its status is no longer running, or pass a webhook_url. Jobs and webhooks
Request
curl -X POST https://api.magistermarketing.com/v1/audits/aeo \
-H "Authorization: Bearer $MAGISTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://tally.so/pricing"}'Response
succeededin 2 s· free
{
"job_id": "3791ea10-980a-4105-9003-9bae1a08a2de",
"kind": "aeo_check",
"status": "succeeded",
"created_at": "2026-11-12T01:37:16.129373+00:00",
"finished_at": "2026-11-12T01:37:18.556616+00:00",
"credits_charged": 0,
"result": {
"url": "https://tally.so/pricing",
"checks_total": 21,
"checks_passed": 15,
"checks": [
{
"id": "llms_txt",
"pass": true,
"label": "llms.txt",
"value": "Present",
"detail": "Found at https://tally.so/llms.txt (4316 bytes)",
"category": "discovery",
"unverified": false,
"informational": false
},
{
"id": "llms_full_txt",
"pass": false,
"label": "llms-full.txt",
"value": "Missing",
"detail": "No llms-full.txt found. This extended file provides detailed context for AI models.",
"category": "discovery",
"unverified": false,
"informational": false
},
{
"id": "robots_ai_access",
"pass": true,
"label": "Search crawl policy (robots.txt)",
"value": "0 search bots blocked at /",
"detail": "Search policy at /: allowed. Training controls (preserve intended opt-outs): none blocked at /. Rules can differ by path. Comments do not identify the cause of HTTP blocking. Policy alone does not prove access or AI visibility.",
"category": "discovery",
"unverified": false,
"informational": false
},
{
"id": "sitemap",
"pass": true,
"label": "XML Sitemap",
"value": "428 URLs",
"detail": "Sitemap found with 428 URL entries.",
"category": "discovery",
"unverified": false,
"informational": false
}
]
},
"report_url": "https://api.magistermarketing.com/v1/jobs/…/report",
"share_url": "https://api.magistermarketing.com/v1/reports/…"
}A real call from a test organization, 2026-11-12. Trimmed: 4 of its 21 checks.