Guides · For publishers · Beginner
robots.txt, llms.txt & Sitemaps for AI Crawlers
robots.txt, llms.txt and sitemap.xml are free discovery files that tell AI agents where to look, and pricing.json maps which directories cost money. AgentFlare publishes all four, and only .data.json and .full.md files are metered.
You're reading the full report — free for humans. The machine-readable dataset for this section is open to all agents too — no payment required.
https://esa.aisa.one/api/v1/access/verify
This guide is for publishers who want AI crawlers to find their content and pay for the deep data. You will see how AgentFlare publishes robots.txt, llms.txt and a sitemap as free discovery files, how llms.txt and pricing.json point agents to the paid tier, and how directory prices are set. You will also learn how to check each file with curl and how an agent reads a 402 or 403 response when it requests a priced URL. The goal is an open discovery surface with priced deep payloads behind it.
How the flow works
Before you start
- A publisher site that can serve static text files at its root
- curl installed in a terminal
- A list of directories you want to price
Step by step
Allow AI crawlers in robots.txt
robots.txt is the first file a crawler reads. AgentFlare opens the site to everyone with User-agent: * and Allow: /, then repeats the rule for named bots: GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Bytespider, Googlebot and Bingbot. The file ends with a Sitemap line. Pricing is not set here. It is enforced at the edge on the paid file types.
text # AgentFlare - AI crawlers welcome User-agent: * Allow: / User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / # ...same pattern for the other bots Sitemap: https://agentflare.org/sitemap.xmlPublish llms.txt as a site map
llms.txt tells an agent how the site is organized and where the paid tier starts. AgentFlare's file opens with a title and a one-line summary. It explains that every article exists in three forms: HTML, a free Markdown teaser (.md), and a metered .data.json or .full.md. It then links the verify endpoint, pricing.json, registration and onboarding. Each section has its own llms.txt listing its pages.
text # AgentFlare > The agent-native web. Live data from the AISA paid-API network, with HTTP 402 pay-per-crawl access to structured deep data. Pricing map: https://agentflare.org/pricing.json Register: https://esa.aisa.one/agent/login.html Onboarding: https://esa.aisa.one/agent/guide.html Sections: Sections, Start here, Latest, API, OptionalDeclare tiers and prices in pricing.json
pricing.json is the price map an agent can fetch for free before buying anything. AgentFlare lists tier L1_free (index pages, .html articles, .md teasers, llms.txt, sitemap.xml, robots.txt) and tier L2_paid (*.data.json and *.full.md). Directory prices are news 0.005, research and scholar 0.02, and crypto, markets, social and predictions 0.01. Anything unmatched stays free under default allow. Import the rules into cdn-agent Content Controls.
bash curl -s https://agentflare.org/pricing.jsonCheck every discovery file is free
Fetch each discovery file the way an agent would, with no token. The free tier covers HTML pages, .md summaries and discovery files, and these cost $0. If any of these returns 402 or 403, a rule is catching it by mistake. Agents are advised to read these files first to learn the cost landscape, then read summaries to decide what is worth buying.
bash for f in robots.txt llms.txt sitemap.xml pricing.json; do curl -s -o /dev/null -w '%{http_code} '$f'\n' https://agentflare.org/$f doneFetch a paid file with X-Crawler-Token
An agent that wants deep data sends one extra header, X-Crawler-Token, which replaces the earlier name X-AISA-Crawler-Token still shown on older AISA pages. Send it with an honest User-Agent. Never put the token in Authorization: Bearer. A 200 means the token was charged the directory price. A 402 or 403 body explains what to do next.
bash curl -i 'https://PUBLISHER-SITE/research/report.data.json' \ -H 'X-Crawler-Token: YOUR_CRAWLER_TOKEN' \ -A 'MyBot/1.0 (+https://example.com/bot)'
AgentFlare directory rules in pricing.json
| Directory | Mode | Price (USD per request) |
|---|---|---|
/news/ | pay | 0.005 |
/social/, /markets/, /predictions/, /crypto/ | pay | 0.01 |
/research/, /scholar/ | pay | 0.02 |
/guides/ | allow | 0 |
/members/ | block | 0 |
Common pitfalls
- Do not send the crawler token in Authorization: Bearer. That header is reserved for the gateway layer; send X-Crawler-Token instead.
- A 403 access_blocked means the publisher withholds the resource, as with /members/. Payment does not unlock it, so agents should move to pay-mode directories instead.
- robots.txt only opens crawling and lists the sitemap. It carries no prices, so keep price rules in pricing.json and in the edge configuration.
- Fetching a priced file twice charges twice. Have agents read the free .md teaser first to decide whether the deep file is worth buying.
Key takeaways
- Free discovery files (robots.txt, llms.txt, sitemap.xml, pricing.json) stay open; only .data.json and .full.md are metered.
- llms.txt describes the three forms of each article and links pricing.json, so agents learn the cost before paying.
- Agents identify with X-Crawler-Token and an honest User-Agent; denials return JSON that says what to do next.
FAQ
Do AI crawlers pay to read robots.txt or llms.txt?
No. In AgentFlare's pricing.json, tier L1_free includes index pages, .html articles, .md teasers, llms.txt, sitemap.xml and robots.txt. Only *.data.json and *.full.md files fall under the paid L2 tier.
What is the relationship between llms.txt and pricing.json?
llms.txt is the human- and agent-readable map that explains the three article forms and links to pricing.json. pricing.json is the machine-readable price map listing tiers, directory prices and rules.
What does an agent see if it requests a paid file without a token?
It gets a 402 response with a JSON body. The error is invalid_token, and a guidance block lists onboarding, docs and numbered steps. Denials never charge.
Which header identifies the crawler?
X-Crawler-Token, from the Open Verify specification. It replaces the earlier X-AISA-Crawler-Token name. Never send the token in Authorization: Bearer, which is reserved for the gateway layer.
How this page is made. Written from 5 primary sources — the AISA agent and publisher documentation and AgentFlare's own files (pricing.json, robots.txt, llms.txt, live responses, .data.json field lists). Each step links the sources it relies on; steps naming a header, endpoint, error code or figure that the sources do not contain are removed. Refreshed weekly.
Sources & citations
- Header name: X-Crawler-Token esa.aisa.one
- AgentFlare robots.txt agentflare.org
- AgentFlare llms.txt (header and structure) agentflare.org
- AgentFlare pricing.json (directory price map) agentflare.org
- AISA Agent Integration Guide — API reference esa.aisa.one