Open data
Public exam data
Every published guide on this site is available as structured data — 477 exams across 19 fields, each row carrying its awarding body, fee, format, question count, pass mark, study time and published salary range. There is no key, no registration and no rate limit.
- Rows
- 477
- Fields per row
- 18
- Rows with a source URL
- 173
- Credential fields
- 19
Which endpoints can I fetch?
Three data URLs plus four discovery documents. All of them are static, cacheable and served with an open CORS policy, so a browser-based agent can read them directly.
| URL | Content type | What it returns |
|---|---|---|
| /data/exam-catalog.json | application/json | All 477 published guides as one object per exam. |
| /data/exam-catalog.csv | text/csv | The same rows as CSV, one line per exam. |
| /data/health.json | application/json | Descriptor: row count, field count and the confidence breakdown. |
| /.well-known/openapi.json | application/openapi+json | OpenAPI 3.1 description of the endpoints above. |
| /.well-known/ai-catalog.json | application/ai-catalog+json | ARD manifest listing every machine-readable resource on this site. |
| /.well-known/agent-skills/site-content/SKILL.md | text/markdown | How an agent should retrieve, verify and cite these guides. |
| /auth.md | text/markdown | Access policy: public, read-only, no key required. |
What is in each row?
18 fields per exam, from the awarding body and the exam fee through to the median salary
published for the occupation the credential unlocks. Two fields carry the evidence rather than the
fact: confidence and sourceUrl.
slugnameurlcategoryawardingBodyfeeformatquestionslengthpassMarkcostRangestudyTimesalaryRangetopicspublishedreviewedconfidencesourceUrl
Why does a row have a confidence level?
Because not every figure is equally well sourced, and flattening them would be dishonest. 163 rows are high — the figure is published by the
awarding body. 139 are medium — reconciled from
several sources and may vary by jurisdiction. 175 are low — a structural estimate that should not be presented as an exact number. Where the
research recorded the page it verified against, sourceUrl carries it; where it did not,
the field is null rather than guessed.
Frequently asked questions
Is there an API key or rate limit?
No key, no registration and no rate limit. The endpoints are static files with an open CORS policy, so any client can read them. TestPrepPilot asks crawlers to keep requests sequential and to identify themselves honestly.
What does the confidence field mean?
Each row carries a confidence level. 163 rows are "high" (the figure is published by the awarding body), 139 are "medium" (reconciled from several sources and may vary by jurisdiction) and 175 are "low" (a structural estimate that should not be presented as an exact figure).
How current is the data?
Every row carries a published date and the month its guide was last checked against the primary source. 173 of the 477 rows also carry the source URL the research was verified against; where that was not recorded the field is null rather than guessed.
Can I reuse this data?
Yes — quote or cite it freely, with a link to the specific guide you used rather than to the homepage. Fees and eligibility rules change, so a figure should travel with its guide link and, where present, its source URL.