Leaderboard/OpenAI API Platform

OpenAI API Platform

platform.openai.com/docs
Score: 78 out of 100, grade C78
Grade C
Last checked: July 7, 2026 · afdocs v0.18.7 · Rerun
Share on
Simulation: Fern // bud
Day 0
CategoryAI/ML
Checks passed9/23Warnings4Failed9

OpenAI API Platform scores 78/100 (Grade C), passing 9 of 23 checks (39%). The documentation is broadly accessible to AI agents but has 13 areas that could be improved to better serve automated tooling.

# Agent Score Fix Report — OpenAI API Platform
URL: https://platform.openai.com/docs
Score: 78/100 (Grade C)

I need help improving the AI-readiness of the documentation at https://platform.openai.com/docs.
Agent Score found 9 failing checks and 4 warnings.

## Failing Checks (9)
- [content-discoverability] Llms Txt Directive Html: No llms.txt directive found in HTML of any of 9 sampled pages; 1 failed to fetch
- [content-discoverability] Llms Txt Directive Md: No llms.txt directive found in markdown of any of 8 sampled pages; 2 had no markdown version
- [markdown-availability] Content Negotiation: Server ignores Accept: text/markdown header (0/10 sampled pages return markdown)
- [page-size] Page Size Html: 1 of 10 sampled pages convert to over 100K chars (max 3265K HTML → 439K markdown (91% boilerplate))
- [page-size] Content Start Position: 1 of 10 sampled pages have content starting past 50% (worst 102%)
- [url-stability] Http Status Codes: 1 of 10 sampled pages return 200 for non-existent URLs (soft 404)
- [url-stability] Redirect Behavior: 1 JavaScript redirect(s) detected across 10 sampled pages
- [observability] Markdown Content Parity: 1 of 8 pages have substantive content differences between markdown and HTML (avg 9% missing)
- [observability] Cache Header Hygiene: 1 of 11 endpoints have aggressive caching or missing cache headers

## Warnings (4)
- [content-discoverability] Llms Txt Exists: llms.txt found but only reachable via cross-host redirect (agents may not follow it)
- [markdown-availability] Markdown Url Support: 8/10 sampled pages support .md URLs (80%); inconsistent support
- [page-size] Page Size Markdown: 1 of 8 pages between 50K–100K chars (max 97K)
- [authentication] Auth Gate Detection: 1 of 10 sampled pages require authentication (9 accessible)

## Fix Instructions

For each issue above, please:
1. Analyze the documentation site at https://platform.openai.com/docs
2. Implement the specific fix
3. Verify the fix would cause the check to pass

### Common fixes:
- **No llms.txt**: Create /llms.txt following https://llmstxt.org — list all doc pages in markdown format
- **No .md URL support**: Configure your docs platform to serve pages at equivalent .md URLs (e.g. /docs/quickstart.md)
- **No content negotiation**: Return markdown when request includes Accept: text/markdown header
- **Large page size**: Reduce nav boilerplate, inline scripts, and repetitive markup
- **No sitemap**: Generate /sitemap.xml listing all documentation URLs
- **Auth walls**: Ensure docs pages return 200 without requiring login cookies or tokens
- **No Last-Modified header**: Configure your server/CDN to include Last-Modified response headers
- **Tab content hidden**: Ensure tabbed content is rendered in the HTML (not JS-only) so agents can read all variants

## Run afdocs Locally for More Detail

To get deeper visibility into what's failing, run afdocs against your docs:

  npx afdocs check https://platform.openai.com/docs --fixes --verbose

- **--fixes**: Adds "Fix:" lines to the output for each warn/fail check with actionable remediation steps
- **-v, --verbose**: Shows per-page details (specific URLs, character counts, error codes) for checks with issues — useful for per-URL visibility into what's failing
CHECK RESULTS

How your docs scored

http-status-codes1 of 10 sampled pages return 200 for non-existent URLs (soft 404)Learn more
redirect-behavior1 JavaScript redirect(s) detected across 10 sampled pagesLearn more
markdown-content-parity1 of 8 pages have substantive content differences between markdown and HTML (avg 9% missing)Learn more
cache-header-hygiene1 of 11 endpoints have aggressive caching or missing cache headersLearn more
llms-txt-coverageNo sitemap found; cannot assess llms.txt coverage without a sitemap as ground truthLearn more
content-negotiationServer ignores Accept: text/markdown header (0/10 sampled pages return markdown)Learn more
markdown-url-support8/10 sampled pages support .md URLs (80%); inconsistent supportLearn more
page-size-html1 of 10 sampled pages convert to over 100K chars (max 3265K HTML → 439K markdown (91% boilerplate))Learn more
content-start-position1 of 10 sampled pages have content starting past 50% (worst 102%)Learn more
page-size-markdown1 of 8 pages between 50K–100K chars (max 97K)Learn more
rendering-strategyAll 10 sampled pages contain server-rendered contentLearn more
llms-txt-directive-htmlNo llms.txt directive found in HTML of any of 9 sampled pages; 1 failed to fetchLearn more
llms-txt-directive-mdNo llms.txt directive found in markdown of any of 8 sampled pages; 2 had no markdown versionLearn more
llms-txt-existsllms.txt found but only reachable via cross-host redirect (agents may not follow it)Learn more
llms-txt-validllms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)Learn more
llms-txt-sizellms.txt is 28,396 characters (under 50,000 threshold)Learn more
llms-txt-links-resolveAll 10 same-origin sampled links resolve (155 total links)Learn more
llms-txt-links-markdown10/10 same-origin sampled links point to markdown content (100%)Learn more
auth-gate-detection1 of 10 sampled pages require authentication (9 accessible)Learn more
auth-alternative-accessAlternative access detected (public-llms-txt, public-markdown, partial-public-access) for site with 1 auth-gated pagesLearn more
tabbed-content-serializationNo tabbed content detected across 10 sampled pagesLearn more
section-header-qualityNo tabbed content found; header quality check not applicableLearn more
markdown-code-fence-validityAll 64 code fences properly closed across 9 pagesLearn more

Built by Fern

Fern-powered docs are agent-ready by default.

Trusted by