Aller au contenu
Tutorial

Ajoutez llms.txt à votre API pour la découverte de l'IA

| 8 min read

llms.txt indique aux LLM ce que fait votre API avec 6 fois moins de jetons que HTML. Didacticiel pas à pas avec format de spécification, approche à deux niveaux et exemple concret.

Digital matrix code representing machine-readable text
Photo by Markus Spiske on Unsplash

Vous publiez des documents API au format HTML. Un développeur les lit, copie une commande curl et intègre votre API. Ce flux de travail fonctionne toujours. Mais une part croissante de vos « lecteurs » sont des LLM, et ils traitent votre Les documents HTML ont un coût : une page de documentation typique brûle 12 000 jetons avant que le modèle n'en extrait un URL de point de terminaison unique. Les balises HTML, le chrome de navigation et le JavaScript livrés par votre site n'ajoutent aucune valeur pour un LLM.

llms.txt résout cela. Il s'agit d'un simple fichier Markdown à la racine de votre domaine qui décrit ce que fait votre API, répertorie vos points de terminaison et des liens vers des documents détaillés. Les LLM l'analysent en 6 fois moins jetons que le HTML équivalent. Plus de 849 sites l'ont adopté, dont Anthropic, Cloudflare, Stripe et Mintlify.

Qu'est-ce que llms.txt (et ce qu'il n'est pas)

La llms.txt spécification, proposée par Jeremy Howard, définit un fichier standard à /llms.txt sur n'importe quel site Web. Il utilise des titres Markdown, des citations et des listes de liens pour décrire un produit à des modèles de langage.

Pensez-y de cette façon : robots.txt indique aux robots de recherche quelles pages indexer. llms.txt indique aux modèles de langage ce que fait votre produit et où trouver les détails.

# robots.txt - tells crawlers what to index
User-agent: *
Allow: /

# llms.txt - tells LLMs what your product does
# Served at /llms.txt as structured Markdown

llms.txt ne remplace pas votre site de documentation. C'est un index concis, formaté pour la consommation de la machine. Les humains peuvent le lire aussi, mais le public principal est n'importe quel LLM qui doit comprendre votre API avant de générer du code ou de répondre à des questions à ce sujet.

Le format des spécifications

Le format est intentionnel pour chaque ligne. Voici la structure :

# Product Name

> One-line product description with key capabilities.

## Section Name

- [Link Title](https://example.com/page): Brief description
- [Another Link](https://example.com/other): Brief description

## Optional: Additional sections

More structured content as needed.
  • Rubrique H1 : Le nom de votre produit ou projet. Un par fichier.
  • Citation : Une description sur une seule ligne de ce que fait le produit.
  • Sections H2 : Regroupez vos liens par catégorie (Documentation, Endpoints, Outils).
  • Listes de liens : Chaque ligne comporte un lien Markdown suivi de deux points et d'une description.

Pas de HTML. Pas de front. Aucune syntaxe personnalisée. N'importe quel analyseur Markdown peut le lire, et n'importe quel LLM peut en extraire des informations structurées sans outils spéciaux.

Pourquoi les jetons sont importants : Markdown vs HTML

Chaque LLM a une fenêtre contextuelle. Jetons dépensés en analyse <div class="nav-wrapper"> et <script src="analytics.js"> sont des jetons que le modèle ne peut pas dépenser pour comprendre votre schéma API. Voici le calcul :

HTML documentation page:     ~12,000 tokens
Same content as Markdown:     ~2,000 tokens
Savings:                      ~83% fewer tokens

Une page de documentation HTML contient des barres de navigation, des pieds de page, des barres latérales, des balises méta et des éléments intégrés. scripts. Supprimez tout cela et convertissez-le en Markdown, et vous obtenez les mêmes informations dans environ un sixième des jetons. Pour les LLM fonctionnant près de leur limite de contexte, cette différence détermine si votre référence API complète tient dans une seule invite.

L'approche à deux niveaux : llms.txt + llms-full.txt

La spécification définit deux fichiers avec des rôles distincts :

  • llms.txt est le résumé. Nom du produit, description sur une ligne, et une liste de liens avec de brèves descriptions. Taille cible : moins de 10 Ko. Un LLM lit ceci à comprenez ce que propose votre API et décidez quels liens suivre pour plus de détails.
  • llms-full.txt est la référence complète. Il intègre le contenu ces liens pointent vers un seul fichier. Schémas de requête, exemples de réponses, authentification flux, codes d’erreur. Taille cible : moins de 100 Ko. Un LLM lit ceci lorsqu'il a besoin de générer code fonctionnel par rapport à votre API.

Commencez par llms.txt. Ajouter llms-full.txt une fois que vous voulez que les LLM génèrent code d'intégration sans suivre de liens externes.

Pas à pas : écrivez votre propre llms.txt

1. Commencez par l'identité du produit

Ouvrez avec un H1 contenant le nom de votre produit, suivi d'une citation qui décrit votre produit en une phrase. Soyez précis. Incluez le nombre de points de terminaison, les fonctionnalités clés et tout différenciateur.

# Acme API

&gt; REST API for payment processing. 12 endpoints covering charges, refunds, subscriptions, and webhooks.

## Documentation

- [API Reference](https://docs.acme.com/api): Full endpoint reference with request/response schemas
- [Authentication](https://docs.acme.com/auth): API key setup, OAuth 2.0 flows, and webhook signing
- [Quickstart](https://docs.acme.com/quickstart): Send your first charge in 5 minutes

## Endpoints

- Create charge: POST https://api.acme.com/v1/charges
- Get charge: GET https://api.acme.com/v1/charges/:id
- Create refund: POST https://api.acme.com/v1/refunds
- List subscriptions: GET https://api.acme.com/v1/subscriptions
- Create webhook: POST https://api.acme.com/v1/webhooks

Ce fichier prend moins de 800 jetons à analyser. Un LLM sait désormais que l'API Acme gère les paiements et en possède 12 points de terminaison et pouvez suivre trois liens pour obtenir des informations plus détaillées.

2. Répertoriez vos points de terminaison avec des méthodes et des URL

Pour les produits API, répertoriez chaque point de terminaison avec sa méthode HTTP et son URL complète. C'est le plus précieux section pour la génération de code. Un LLM qui sait POST https://api.acme.com/v1/charges peut générer une commande curl ou un appel SDK fonctionnel sans lire votre documentation complète.

3. Lien vers des spécifications lisibles par machine

Si vous publiez une spécification OpenAPI, associez-la dans votre llms.txt. Les LLM peuvent analyser OpenAPI JSON et extrayez les schémas de paramètres, les champs obligatoires et les types de réponse. Idem pour les manifestes de l'outil MCP ou Points de terminaison de l’introspection GraphQL.

4. Créez llms-full.txt pour un contexte approfondi

Prenez chaque point de terminaison de votre résumé et développez-le avec des exemples de requêtes/réponses :

# Botoi API - Full Documentation

&gt; Complete endpoint reference for all 150+ developer utility endpoints.

## IP Geolocation

POST https://api.botoi.com/v1/ip/lookup

Returns city, region, country, ISP, coordinates, and timezone for any IP address.

**Request:**
\`\`\`json
{ "ip": "8.8.8.8" }
\`\`\`

**Response:**
\`\`\`json
{
  "success": true,
  "data": {
    "ip": "8.8.8.8",
    "city": "Mountain View",
    "region": "California",
    "country": "US",
    "isp": "Google LLC",
    "lat": 37.386,
    "lon": -122.0838
  }
}
\`\`\`

## Email Validation

POST https://api.botoi.com/v1/email/validate
...full documentation for every endpoint

Incluez des charges utiles réalistes, et non des données d'espace réservé. Un LLM générant du code d'intégration doit voir les noms de champs exacts, les types et l’imbrication renvoyés par votre API.

5. Servir avec les bons en-têtes

Servez les deux fichiers avec text/markdown ou text/plain Type de contenu. Si vous utilisez Nginx :

# Serve llms.txt with correct Content-Type
location = /llms.txt {
    default_type text/markdown;
    add_header X-Robots-Tag "noindex";
}

location = /llms-full.txt {
    default_type text/markdown;
    add_header X-Robots-Tag "noindex";
}

Sur Cloudflare Pages, Vercel ou Netlify, déposez les fichiers dans votre public/ annuaire. La plate-forme d'hébergement leur sert le type MIME correct à partir de l'extension de fichier.

Exemple réel : llms.txt de Botoi

Botoi serves llms.txt à botoi.com/llms.txt et llms-full.txt à botoi.com/llms-full.txt. Voici une vue condensée du fichier récapitulatif :

# Botoi - Developer Utility API &amp; MCP Server

&gt; One API key, 150+ developer utility endpoints, and a 49-tool
&gt; MCP server for AI agents. IP geolocation, email validation,
&gt; DNS, hashing, JWT, QR codes, PDF generation, and more.
&gt; Sub-50ms from Cloudflare's edge. Free tier included.

## Free Online Tools

- [JSON Formatter](https://botoi.com/tools/json-formatter): Format, beautify, minify, and validate JSON data
- [Base64 Encoder/Decoder](https://botoi.com/tools/base64-encoder-decoder): Encode and decode Base64 strings
- [Hash Generator](https://botoi.com/tools/hash-generator): Generate SHA-1, SHA-256, SHA-384, SHA-512 hashes

## Botoi API

- [API Documentation](https://api.botoi.com/docs): Full API reference with interactive playground
- [OpenAPI Spec](https://api.botoi.com/openapi.json): Machine-readable OpenAPI 3.1 specification
- [MCP Tool Manifest](https://api.botoi.com/v1/mcp/tools.json): MCP tool definitions for AI agents

## API Endpoints

- IP geolocation: POST https://api.botoi.com/v1/ip/lookup
- Email validation: POST https://api.botoi.com/v1/email/validate
- DNS lookup: POST https://api.botoi.com/v1/dns/lookup
- Hash generation: POST https://api.botoi.com/v1/hash
...150+ more endpoints listed with method and URL

Le fichier complet répertorie tous les outils, plus de 150 points de terminaison d'API avec méthodes et URL, le serveur MCP configuration pour cinq éditeurs AI et la commande d'installation du SDK TypeScript. Un LLM lisant ceci file peut répondre "Comment valider un email avec botoi ?" sans visiter une seule page Web.

Récupérez-le vous-même :

curl -s https://botoi.com/llms.txt | head -20

Optimisation générative des moteurs : au-delà du référencement traditionnel

Le référencement traditionnel optimise le robot d'exploration de Google. L'optimisation générative du moteur (GEO) optimise pour Modèles d'IA qui synthétisent les réponses provenant de plusieurs sources. Lorsqu'un développeur demande à ChatGPT "Quelle API puis-je utiliser pour la validation des e-mails ?", le modèle s'appuie sur des sources qu'il a analysées ou qu'il peut récupérer.

llms.txt fait partie d’une stratégie GEO. L’image complète comprend :

  • llms.txt et llms-full.txt pour la consommation directe LLM.
  • Spécification OpenAPI sur une URL publique afin que les LLM puissent analyser vos schémas de point de terminaison.
  • Découverte du serveur MCP via /.well-known/mcp/server-card.json donc l'IA les assistants peuvent trouver et se connecter à vos outils.
  • Données structurées (JSON-LD) sur vos pages pour une extraction plus riche.
  • robots.txt configuré pour autoriser les robots d'exploration IA (GPTBot, ClaudeBot, PerplexitéBot).

Chaque couche cible une manière différente pour les LLM de découvrir et d'utiliser votre API. llms.txt est le point de départ nécessitant le moins d’effort et l’impact le plus élevé.

Liste de contrôle de déploiement

1. Create /llms.txt with product name, description, and key links
2. Create /llms-full.txt with full endpoint documentation
3. Add both files to your robots.txt sitemap (optional)
4. Set Content-Type to text/markdown or text/plain
5. Keep llms.txt under 10KB and llms-full.txt under 100KB
6. Update both files whenever you ship new endpoints
7. Test: curl -s https://yourdomain.com/llms.txt | wc -c

Gardez votre llms.txt dans le contrôle de version aux côtés du code source de votre API. Mettez-le à jour dans la même demande d'extraction où vous ajoutez un nouveau point de terminaison. Documentation obsolète, que ce soit pour les humains ou des machines, érode la confiance.

Points clés

  • Les LLM lisent vos documents avant les humains. Agents IA, assistants de codage et chat les interfaces analysent la documentation de l'API pour générer du code et répondre aux questions. Donnez-leur un format propre.
  • Markdown coûte 6 fois moins de jetons que HTML. Supprimez la navigation, les scripts et le style. Proposez le contenu dont les LLM ont besoin dans le format qu'ils traitent le plus efficacement.
  • Deux fichiers couvrent les deux cas d'utilisation. llms.txt est l’index récapitulatif. llms-full.txt est la référence complète. Commencez par le résumé ; ajouter la version complète lorsque vous souhaitez que les LLM génèrent un code d'intégration fonctionnel.
  • Plus de 849 sites ont adopté le format. Anthropique, Cloudflare, Stripe et Mintlify tous servent llms.txt. Le format gagne du terrain en tant que standard GEO.
  • Voyez-le en action. Aller chercher botoi.com/llms.txt pour voir plus de 150 API de point de terminaison décrites dans un seul fichier Markdown.

FAQ

Qu'est-ce que llms.txt et comment ça marche ?
llms.txt est un fichier Markdown servi dans /llms.txt sur votre domaine. Il décrit votre produit, les points de terminaison de l'API et les liens de documentation dans un format structuré que les LLM peuvent analyser avec un minimum de jetons. Considérez-le comme robots.txt pour l'IA : robots.txt indique aux robots d'exploration ce qu'il faut indexer, llms.txt indique aux modèles de langage ce que propose votre site.
Combien de jetons llms.txt enregistre-t-il par rapport aux documents HTML ?
Markdown utilise environ 6 fois moins de jetons que le contenu HTML équivalent. Une page de documentation qui coûte 12 000 jetons en HTML peut être compressée à moins de 2 000 jetons en Markdown. Cela est important car les LLM ont des fenêtres de contexte finies et chaque jeton dépensé pour le formatage est un jeton non dépensé pour comprendre votre API.
Ai-je besoin à la fois de llms.txt et de llms-full.txt ?
llms.txt est le résumé : nom du produit, description et liste de liens. llms-full.txt contient le contenu complet de la documentation vers laquelle pointent les liens, intégré dans un seul fichier. Commencez par llms.txt. Ajoutez llms-full.txt lorsque vous souhaitez que les LLM aient un contexte approfondi sans suivre plusieurs liens.
Quels outils d'IA lisent le fichier llms.txt aujourd'hui ?
Claude, ChatGPT, Perplexity et Cursor lisent tous llms.txt lors de la navigation ou du référencement de la documentation. Les agents basés sur MCP et les assistants de codage le récupèrent également pour la découverte d'outils. Plus de 849 sites ont adopté le format début 2026, dont Anthropic, Cloudflare, Mintlify et Stripe.
Où dois-je héberger le fichier llms.txt ?
Servez-le à la racine de votre domaine : https://votredomaine.com/llms.txt. Utilisez text/markdown ou text/plain comme Content-Type. Si vous disposez d'un sous-domaine API, envisagez de le diffuser à la fois sur le domaine principal et sur le sous-domaine API. Conservez le fichier sous 10 Ko pour la version résumée.

Commencez a construire avec botoi

150+ endpoints API pour la recherche, le traitement de texte, la generation d'images et les utilitaires pour developpeurs. Offre gratuite, sans carte bancaire.