·5 min read

Can ChatGPT Request Markdown Instead of HTML?

Cloudflare built the infrastructure. Most AI agents haven't shown up to use it.

Cloudflare built the infrastructure. Most AI agents haven't shown up to use it. In February 2026, Cloudflare introduced Markdown for Agents — a feature that sits at the network edge and converts HTML to Markdown before delivering it to AI systems. The token savings are real: Cloudflare's own demo showed a page shrinking from roughly 16,000 tokens as HTML down to 3,150 as Markdown, an 80% reduction. For any AI application making frequent web requests, that's a material cost difference.

The mechanism is HTTP content negotiation. An AI agent includes Accept: text/markdown in its request headers, the server sees the preference, and Cloudflare converts the response on the fly. No changes required at the origin. It's a clean implementation of a standard that has existed since RFC 7763 registered text/markdown as a MIME type back in 2016.

The catch: you need AI agents to actually send the header. Most don't, including ChatGPT.


The Two Modes ChatGPT Uses to Access the Web

ChatGPT interacts with web content in two distinct ways, and understanding both explains why neither currently triggers the Markdown for Agents feature.

GPTBot is OpenAI's indexing crawler — the system that continuously crawls the public web to build and refresh the knowledge that ChatGPT draws on. It announces itself honestly via its user-agent string, which means publishers can block it via robots.txt. GPTBot sends standard HTTP requests. Research tracking over 500 million GPTBot requests found no evidence of JavaScript execution, and there is no documented evidence it sends Accept: text/markdown.

ChatGPT's live agent mode is more technically interesting. When ChatGPT browses the web on a user's behalf in real time, it doesn't send requests from a simple HTTP client. It launches a full browser instance. As Simon Willison documented in August 2025, the agent presents as a standard Chrome browser at the HTTP level. Its Accept header looks exactly like a browser's: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,<em class="italic text-[var(--text-dim)]">/</em>;q=0.8. Not text/markdown.

Rather than a bot-style user-agent, OpenAI's agent authenticates itself using RFC 9421 HTTP Message Signatures, adding a Signature-Agent: "https://chatgpt.com" header that cryptographically proves the request's origin. This is actually a more robust identity mechanism than a user-agent string — but it says nothing about format preference, and the browser-inherited Accept header it sends won't trigger Markdown delivery.


Who Is Actually Sending the Header

Cloudflare is explicit about which agents currently use the Accept: text/markdown mechanism. The two named examples in their announcement are Claude Code — Anthropic's agentic coding tool — and OpenCode, an open-source coding agent. Both make programmatic HTTP requests where format preference is an active engineering decision rather than a browser default. There is active development work in the open-source agent space to add this header support more broadly.

The pattern here is meaningful. Coding agents are purpose-built for programmatic web access, so their developers choose HTTP behavior deliberately. GPTBot, ClaudeBot (Anthropic's indexing crawler), and PerplexityBot are mass-crawling systems optimized for coverage and compatibility — not for token-efficient delivery. Sending Accept: text/markdown would require a deliberate decision from OpenAI, Anthropic, and Perplexity to update their crawlers, and none have announced plans to do so.

For agents that don't send the header, Cloudflare offers a user-agent fallback — it can identify known crawlers by name and serve them Markdown anyway. But this only works for crawlers that honestly identify themselves. ChatGPT's agent mode, which presents as Chrome, falls entirely outside that fallback.


The Standard Exists. Adoption Doesn't.

The text/markdown MIME type has been formally registered since 2016. HTTP content negotiation is a thirty-year-old mechanism. The infrastructure to serve AI-optimized content based on format preference is now live at network scale through Cloudflare. None of that translates into adoption if the clients don't send the signal.

This is a familiar pattern in web standards development. The machinery exists long before the ecosystem converges on using it. robots.txt took years to become a genuine norm; HTTPS took over a decade to reach majority adoption despite being available much earlier. The difference here is that the commercial incentive is clear and present — token costs are real operating costs for AI companies, and an 80% reduction in page size is not a marginal improvement.

The open question is whether that incentive is enough to prompt the major AI platforms to update their crawlers. For GPTBot and similar indexing systems, the case is straightforward: cheaper crawling, cleaner data, less bandwidth. The blocker is engineering prioritization, not technical feasibility. For ChatGPT's agent mode — which deliberately inherits browser behavior to navigate the real-world web — the calculus is more complex. A browser-like agent that sends Accept: text/markdown might get Markdown back from Cloudflare's edge, but might also trigger unexpected behavior on sites that aren't behind Cloudflare, or that serve text/markdown in a format the agent wasn't designed to handle.

One developer testing this in early 2026 found that when a server responded with text/markdown content, ChatGPT's agent failed to load the content correctly — evidence that even if the header were sent, the agent's rendering pipeline isn't built to handle the response. Solving the header is only half of the problem.


What This Means for Publishers

If you're a publisher considering enabling Markdown for Agents on your Cloudflare setup: today, the feature will benefit developer tooling — coding agents, AI-powered IDEs, programmatic research tools. For ChatGPT, Perplexity, and the major AI product crawlers, it currently has no effect.

The more durable insight is about format and structure rather than this specific feature. Whether AI agents request text/markdown, receive stripped HTML, or reconstruct content from fragments, the same underlying problem applies: pipelines discard structural information that gives content its meaning. An agent receiving Markdown still loses the semantic metadata, custom attributes, and relational structure that HTML encodes. Content negotiation at the HTTP layer is a useful optimization. It isn't a solution to the deeper problem of what information survives delivery.

The web has a door labeled "Markdown available here." Most of the AI systems knocking on it aren't reading the sign yet — and a few that do read it don't know what to do once they walk through.


Published on MachineContext.ai. Sources: Cloudflare Markdown for Agents, Simon Willison on ChatGPT agent headers, RFC 9421 HTTP Message Signatures, RFC 7763 text/markdown MIME type, The SEO Pub crawler study, OpenCode Accept header issue.

Built for this problem

Control exactly what AI reads on your site

MachineContext serves clean, structured content to AI bots — JavaScript rendered, properly formatted, always accurate — while keeping your site unchanged for humans.

Get started →