Start here
openapi.json— OpenAPI 3.1 description of every public endpointllms.txt— Every public page with a one-line description, plus when to use this sitesitemap.xml— URL inventory with real per-page modification datesrobots.txt— Crawl policy
Guides as markdown
Every study guide has a markdown source and will hand it over rather than making you parse the page. Two equivalent ways to ask:
- Content negotiation —
curl -H "Accept: text/markdown" https://aicertificates.study/ccar-p-exam-facts - Explicit path —
https://aicertificates.study/md/ccar-p-exam-facts
Both return text/markdown and carry Vary: Accept, so a shared cache will not hand you the HTML by accident. Guide slugs are listed in llms.txt.
Practice inside Claude or ChatGPT
There is an MCP server, so an assistant can quiz you directly. It speaks Streamable HTTP and offers four tools: list_exams, get_practice_question, check_answer and my_progress.
There are two endpoints, and which one you want depends on what you have.
https://aicertificates.study/api/mcp— open, no account. Serves the same free form published on this site. Without an account there is nothing to record against, so an anonymous caller is recorded nowhere.https://aicertificates.study/api/mcp/full— asks who you are. Serves every set you have bought, and remembers which questions you got right somy_progresscan tell you which exam domains to drill.
The second one exists because a client only offers to sign you in after a server has refused it once, and the open endpoint never refuses anybody. Point at the one that matches what you own.
There is a page for this with the steps laid out per client: Practice inside Claude or ChatGPT.
Connecting it
Paste into an assistant and it will walk you through your own client.
Claude Code. claude mcp add --transport http ai-certificates https://aicertificates.study/api/mcp/full, then authenticate it from /mcp.
claude.ai. Customize → Connectors → +→ Add custom connector, then paste the URL. Advanced settings can stay empty — the server describes its own sign-in. Free plans get one custom connector; on Team and Enterprise an Owner adds it once under Organization settings → Connectors and everyone else then clicks Connect.
ChatGPT.Turn on Developer mode under Settings → Security and login, then add a plugin, choose Public endpoint and paste the URL. OpenAI notes that developer mode depends on your account and workspace policy, so it is not available on every plan.
Sign-in is handled by Clerk over OAuth 2.1 with PKCE; the endpoint advertises itself at /.well-known/oauth-protected-resource so a client can discover the rest without being told.
Browser-based clients are welcome: the endpoint answers CORS preflight and allows any origin, and it deliberately does not send Access-Control-Allow-Credentials. A page you did not open therefore cannot borrow your session cookie to read your sets — identity has to arrive as a bearer token whoever is calling chose to hold.
Answers recorded through the authenticated endpoint are the outcome only — which question, which domain, right or wrong. No conversation is stored. The privacy page says what is kept and how to have it deleted.
Readiness statistics
GET /api/readiness-stats returns the current monthly cohort statistics for every exam in one body. It takes no parameters and is cached for five minutes.
Read show first. An exam with too few attempts to report honestly returns { "show": false } and no other fields — that is a real answer, not an error, and inventing a number to fill the gap is exactly what the flag exists to prevent. The readiness quiz is 12 questions and 8 answered is the minimum for a percentile.
Valid exam slugs: ccar-p ccdv-f ccao-f ccar-f
Errors
Every API error is JSON with the same shape: a machine-readable code, a human message, a hint naming the fix, and retryable telling you whether backing off can help. A 400 will never pass however long you wait; a 429 or 503 will.
Ground rules
- Read freely. The stats endpoint and the markdown routes are cached at the edge and cost nothing to serve.
- Do not automate the readiness submit endpoint. It is documented because hiding it would not make it safer, but synthetic attempts corrupt a cohort that real people are being compared against.
- Attribute quoted material to AI Certificates and link the page it came from. The questions are original work.
- Exam facts change. Treat the certification program’s own published guide as authoritative over anything cached from here.
Something missing?
If you need an endpoint that does not exist, say what you are building — the contact page has the address.