Back

Blog details

What Makes an API Agent-Friendly? An llms.txt Docs Audit

AIOZ Network
7 min readAugust 13, 2026
aioz-streamexplainerdeveloper-apis
What makes an API agent friendly? An audit of AIOZ Stream's llms.txt docs

An API is agent-friendly when software agents can find, read and use its documentation without a human in the loop. In practice: self-contained sections, full type definitions, documented error codes, generated reference docs and Markdown on request. We check AIOZ Stream's llms.txt files against that list.

"Agent-friendly" often works as a vague stamp of approval. Fern and Mintlify, two companies that build API documentation platforms, have published specific, checkable criteria. So this audit treats the label as something to verify point by point, including where the files fall short.

TL;DR:

  • Fern's own numbers: a typical HTML docs page runs about 16,000 tokens for an AI agent to parse; the same content as Markdown runs about 1,600, a 90%+ reduction.
  • Real criteria worth checking: self-contained sections, complete type definitions, documented error responses, consistent heading structure, and content negotiation (serving Markdown automatically to an agent instead of a separate file it has to know to ask for).
  • AIOZ Stream's llms.txt files get the structural basics right: H1 plus summary, sections organized by resource, instructions written explicitly for an AI reader.
  • Where it falls short: no automatic content negotiation, and the files are maintained by hand rather than generated from the API definition, which is exactly how two small but real inconsistencies crept into AIOZ Stream's own docs elsewhere.

What makes an API agent-friendly?

Fern's own published guidance lays out what "LLM-friendly" documentation is supposed to do: keep each section under a clear heading complete enough to make sense on its own if an agent retrieves just that piece, use consistent heading hierarchy rather than an ad hoc structure, give complete type definitions instead of bare parameter names so an agent doesn't have to guess a shape, document every non-200 response code, and generate the reference directly from the API definition so it can't silently drift from what the API does. Mintlify's approach adds one more piece: content negotiation, detecting that a request is coming from an AI agent and serving Markdown automatically instead of the same HTML a browser gets, no separate file required.

Checklist on a screen representing an honest audit of API documentation against published standards

The token math behind why this matters

Fern's own comparison is specific: a standard HTML documentation page runs roughly 16,000 tokens once an agent parses the markup, navigation, and styling along with the content. The same page as plain Markdown runs about 1,600, over a 90% reduction. That's not a rounding difference, it's the gap between an agent being able to load ten relevant pages of context or one, which compounds further once an assistant is following links across a multi-page reference rather than reading a single isolated page. It's also the same reasoning already covered in this series for why AIOZ Stream favors plain Markdown section files over a heavier format like OpenAPI/Swagger: structural overhead costs context budget an agent doesn't get back.

Where AIOZ Stream's llms.txt gets it right

Checked directly against the file at aiozstream.network/docs/llms.txt: it opens with an H1 title and a summary, exactly the structure Fern recommends, followed by an explicit "Instructions for AI Assistants" section, ten numbered points covering credentials, the SDK auth pattern, base URLs, and sequencing. The API sections underneath are organized by resource, media-video, webhooks, players, and so on, each one a self-contained file rather than one long undifferentiated document. That matches the "complete thought that makes sense when retrieved independently" standard directly, an agent pulling in the webhooks section doesn't need the payments section loaded to make sense of it.

Where it falls short, honestly

Two real gaps, not hypothetical ones. First, there's no content negotiation. Fetching the regular docs site as a browser and fetching it as an AI agent returns the same HTML either way, you have to already know the separate /docs/llms.txt URL exists and fetch it deliberately. That's a meaningfully different experience from what Mintlify's own platform does automatically, detect the request source and serve the right format without anyone needing to know a second URL.

Second, the files are maintained by hand rather than generated straight from the API's own definition, which is exactly the setup Fern's guidance warns can drift. It already has, in a small but real way: this series' own developer guide article found the webhook event names documented in snake_case (encoding_started) on one page and dot notation (encoding.started) on another, and the API keys article found the key-creation endpoint documented on a different subdomain than the list/update/delete endpoints. Neither is llms.txt-specific, they're general documentation inconsistencies, but they're a concrete illustration of the exact risk that comes from docs a person maintains by hand instead of docs generated from one source of truth.

What fixing the content negotiation gap would take

Content negotiation isn't a documentation-writing problem, it's an infrastructure one, which is part of why fewer platforms have it than have a static llms.txt file. Mintlify's own implementation works by inspecting the request, checking the user agent or an explicit header against a list of known AI-assistant clients, and serving Markdown instead of the rendered HTML page when it matches, all without the requester needing to know a separate URL exists. Building that from scratch means owning the docs-serving layer directly rather than treating documentation as static files, which is a bigger lift than writing a well-structured llms.txt file once and pointing people at it, closer to a docs-platform migration than a documentation-writing task. That's not an excuse for not having it, it's just a more accurate description of why a static file is the more common starting point than full content negotiation, even among teams that clearly care about this.

What generated-from-source would fix

The two real gaps identified above, no content negotiation and hand-maintained files, aren't unrelated problems, the second one is partly what makes the first one riskier to skip. If AIOZ Stream's llms.txt files were generated directly from the same source that produces the human-facing API reference, a change to an endpoint or a field name would propagate to both automatically, closing the exact drift risk the webhook-naming and split-subdomain inconsistencies illustrate. Static, hand-maintained files aren't wrong on their own, most companies with an llms.txt file maintain them by hand, but they do mean every future API change carries a small, real chance of updating one doc surface and not the other, unless something in the process specifically checks for that.

What an honest scorecard looks like

Structure and self-containment: yes. Explicit instructions for an AI reader: yes, and more explicit than most competitors researched for this series. Content negotiation: no, it's a separate file you have to know about. Generated-from-source consistency: no, and the two documented inconsistencies above are the visible cost of that. That's not a failing grade, most API documentation, including much larger platforms, hasn't implemented content negotiation either, so AIOZ Stream's llms.txt implementation is closer to the current industry norm than behind it on that specific point. It's a specific, checkable list of what's done and what isn't, instead of a blanket claim either way.

Frequently Asked Questions

Who defines what "agent-friendly" documentation means?
There's no single official standard, but companies like Fern and Mintlify, which build documentation platforms for a living, have published specific, checkable criteria that this article uses instead of an informal definition.

Does AIOZ Stream's llms.txt use content negotiation?
No. The regular docs site serves the same HTML to a browser and an AI agent; the llms.txt files are separate, static files an agent has to know to fetch.

Why does hand-maintained documentation matter if the content is still accurate?
Because it isn't always. Two small, real inconsistencies already exist in AIOZ Stream's own docs, a webhook event naming mismatch and a split-subdomain API endpoint, both traceable to pages maintained independently rather than generated from one source.

Is the 90% token reduction figure specific to AIOZ Stream?
No, it's Fern's own published comparison for HTML versus Markdown documentation generally. It's cited here as the reasoning behind the format choice, not as a number measured against AIOZ Stream's specific pages.

Does failing one criterion mean the documentation isn't useful for AI assistants?
No. The structural basics, the parts that matter most for an agent generating correct code, are in place; content negotiation is a convenience improvement, not a blocker.

Why don't more companies implement content negotiation if it's the better experience?
Because it requires owning the docs-serving layer directly, detecting the requester and switching formats server-side, rather than just publishing a well-structured static file. That's a bigger infrastructure lift than writing an llms.txt file once, which is why a static file remains the more common starting point.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

Mobile Livestreaming with PRISM Live Studio on AIOZ Stream

Stream from your phone to AIOZ Stream with PRISM Live Studio: Custom RTMP setup, documented 1080p and 720p bitrates, Adaptive quality and mobile stability tips.

aioz-streamguide
6 min readOctober 20, 2026
blog thumbnail

Best OBS Encoder Settings for 1080p and 720p (AIOZ Stream)

Choose OBS encoder settings for AIOZ Stream: the documented 1080p30 values, the missing 720p figure, NVENC vs x264, keyframes, 60 fps and a test procedure.

aioz-streamguide
6 min readOctober 16, 2026
blog thumbnail

OBS Studio Setup for AIOZ Stream: RTMP URL and Stream Key

Set up OBS Studio for AIOZ Stream: choose a Custom service, paste the RTMP server URL and stream key, then stream CBR at 4500 to 6000 Kbps with 1 s keyframes.

aioz-streamguide
7 min readOctober 13, 2026
blog thumbnail

How to Start a Livestream on AIOZ Stream: OBS and Mobile Setup

Seven steps to go live on AIOZ Stream with OBS or PRISM: stream key, session form, RTMP credentials, bandwidth math, and the first two minutes after you start.

aioz-streamguide
6 min readOctober 09, 2026
blog thumbnail

Live Streaming on AIOZ Stream: The Complete Setup Guide

Live streaming on AIOZ Stream: a stream key, one session per broadcast, RTMP from OBS or PRISM, HLS playback, plus restreaming, stats and an opt-in archive.

aioz-streamguide
7 min readOctober 06, 2026
blog thumbnail

What Is a Web3 Streaming Platform? How Web3 Streaming Works

A web3 streaming platform delivers video through independent nodes and settles payments on a blockchain. How it differs from a CDN, and how AIOZ Stream does it.

aioz-streamguide
7 min readOctober 02, 2026