open source · MIT · v0.1.0
Une doc d’API qui sait exécuter. s’auditer. rejouer. se souvenir.
Docs, console d’essai, environnements, scénarios exécutables et audit de schéma — générés dans le navigateur à partir de votre schéma OpenAPI. Sans backend, sans build, sans compte.
Essayez : rien n’est envoyé nulle part, c’est votre navigateur qui va chercher le schéma.
Collez cette ligne — c’est toute l’installation.
<script src="https://cdn.jsdelivr.net/npm/apiglow@0.1.0/dist/app.js" type="module"></script>
INS. [01] · CLIQUER POUR COPIERPassez en ligne avant votre café.
Aucun outillage : si vous savez éditer un fichier HTML, vous savez déployer ApiGlow.
0:00
Collez le snippet dans n’importe quelle page HTML — un serveur de fichiers statiques suffit.
DEM. [01]0:10
Votre documentation s’affiche : navigation, opérations, panneau d’essai.
DEM. [02]0:60
Première vraie requête envoyée depuis le navigateur.
DEM. [03]La troisième étape suppose que votre API autorise CORS depuis l’origine de la doc — cette partie se joue entre votre API et le navigateur, et ApiGlow vous le dit sans détour quand ce n’est pas le cas. Voir Console d’essai & CORS.
Livrez un produit, pas un visualiseur de schéma.
Ce que vous iriez chercher dans un SaaS payant — livré par la balise, rendu chez le lecteur.
Des séquences de requêtes déclaratives, livrées avec la doc et exécutées dans le navigateur du lecteur — sans une ligne de script.
FEA. [01] Audit de schémaPrès de 40 règles, une note de A à F et un lien direct vers chaque constat — dans le navigateur, rien ne quitte la page.
FEA. [02] Console d’essaiDe vraies requêtes fetch, des formulaires générés depuis le schéma, des extraits de code en 10 langages, un historique rejouable.
FEA. [03] Environnements & authDes environnements colorés, l’interpolation « {{var}} » qui bloque l’envoi quand une variable manque, OAuth2 PKCE entièrement dans le navigateur.
FEA. [04] Multi-spec & overlaysPlusieurs specs dans une même installation, totalement isolées — et OpenAPI Overlay 1.1 pour corriger au chargement un schéma qui ne vous appartient pas.
FEA. [05] Thèmes & brandingLes 35 thèmes daisyUI inclus, plus votre thème maison déclaré dans la config — sans étape de build.
FEA. [06]Notez le schéma que votre doc a déjà chargé.
L’audit tourne sur le document réellement chargé — pas sur une copie en CI qui date d’hier.
- 38 règles passées sur le document chargé (v0.1.0)
- Une note de A à F, catégorie par catégorie
- Chaque constat pointe vers l’endroit concerné
- Rapport exportable en Markdown — rien n’est envoyé nulle part
38 / 38 RÈGLES PASSÉES
NOTE GLOBALE · AUDIT DE SCHÉMA
AUD. [01]Transformez un scénario en tutoriel interactif.
Là où le marché répond « enchaînez vos requêtes » avec du JavaScript, ApiGlow répond « cliquez dans la réponse ». Échangé en Arazzo — et remis à votre CI en job GitHub Actions ou GitLab généré, des secrets en noms seulement.
Deux modes d’exécution. « Tout lancer » produit un rapport étape par étape ; le mode pas à pas rejoue chaque requête dans la vraie console d’essai — un scénario rédigé devient un tutoriel interactif.
Les scénarios s’exportent et s’importent au format Arazzo 1.1, le format de workflows de l’OpenAPI Initiative. En août 2026, tous les autres exécuteurs Arazzo vivent en CLI ou en CI — aucun autre produit de documentation n’exécute Arazzo dans le navigateur.
— AUCUNE LIGNE DE SCRIPT. LES VALEURS SE CHAÎNENT EN CLIQUANT DANS LA RÉPONSE.
Mettez le client séparé à la retraite.
Collez une commande cURL, une collection Postman v2.1 ou un HAR — vous retombez dans une console pré-remplie.
❯ curl -X POST https://api.example.com/pets -H "Authorization: Bearer …"
→ Console pré-remplie · méthode, en-têtes et corps reconnus
EXPORTS DISPONIBLES : cURL · Postman · Markdown · HAR HISTORIQUE : local, filtrable, rejouable (IndexedDB) SECRETS : caviardés par défaut
cURLPOSTMAN V2.1HARMARKDOWN
Installez votre prose avec la référence.
Guides, tutoriels, notes d’architecture — des fichiers Markdown déclarés en une ligne, tissés dans la navigation, rendus dans le navigateur comme tout le reste.
Authentifiez-vous, puis appelez l’opération depuis ce guide :
Pointez vers un Markdown existant, README ou CHANGELOG compris. Il est chargé comme le schéma, au moment où on le lit : rien à builder, rien à redéployer à part vos fichiers.
Liens apidoc: avec badge de méthode, cartes d’opération, callouts, onglets de code à langue synchronisée, sommaire, pages précédente/suivante — et la prose est indexée dans la recherche Cmd+K.
Accueillez vos nouveaux lecteurs.
Certains lecteurs sont des agents — ou des développeurs qui travaillent avec un. ApiGlow génère les fichiers qu’un assistant sait vraiment exploiter, intégralement côté client : l’application n’appelle aucun modèle et ne fait tourner aucun serveur.
TXTllms-full.txt
Toute la documentation en un seul fichier Markdown — informations, serveurs, pages de prose, chaque opération et chaque webhook.
AGT. [01]TXTllms.txt
L’index du même contenu, selon la convention llmstxt.org — un lien par opération et par webhook, vers les routes de la page elle-même.
AGT. [02]JSONConfig de serveur MCP
Un bloc JSON, une ligne claude mcp add ou un lien d’installation Cursor/VS Code — qui branche l’un des deux ponts OpenAPI vers MCP du commerce, au choix. Les identifiants en ressortent sous forme de marqueurs.
AGT. [03]LE PROMPT · FAITES-LE INSTALLER PAR UN AGENTCLIQUER POUR COPIER
Add interactive API documentation to my project with ApiGlow
(https://apiglow.dev).
1. Create a static page (e.g. docs/index.html) containing exactly:
- a <script id="api-doc-config" type="application/json"> block with:
{ "openapi": { "url": "<my OpenAPI schema URL or relative path>" } }
- <script src="https://cdn.jsdelivr.net/npm/apiglow@0.1.0/dist/app.js"
type="module"></script>
2. My OpenAPI schema is at: [FILL IN — URL or path]
3. Serve the page over HTTP(S) — file:// does not work (ES modules).
4. If my API is on another origin, tell me it must allow CORS from the
docs origin for the try-it console to work.
Config reference: https://apiglow.dev/docs/configuration/AGT. [04]Servez aux crawlers un miroir statique.
Les crawlers d’IA n’exécutent pas de JavaScript, et Google lit toutes les routes #/ comme une seule URL. Une commande côté auteur écrit ce qu’il leur faut — l’installation du lecteur reste une balise.
❯ apiglow bake --config apidoc.config.json --site-url https://docs.example.com/ --out public/
→ 26 fichiers bakés dans public/ · des pages statiques honnêtes, zéro script dedans
op/addPet.html + .md chaque opération — canonical, JSON-LD, un lien vers l’app scenario/order-a-pet.arazzo.json chaque scénario en recette qu’un runner CI exécute sitemap.xml · llms.txt · llms-full.txt des fichiers servis, aux liens qu’un agent peut récupérer
SITEMAPLLMS.TXT SERVIMIROIRS MDJSON-LD0 SCRIPT
La référence d’API qui est le client d’API — environnements, variables, historique, scénarios multi-étapes — en une balise script, sans backend et sans étape de build.
LE PRINCIPE APIGLOW · V0.1.0Et tout le reste, dans la même balise.
Chaque module est déjà là — rien à installer en plus, rien à activer.
Miroir doc/panneau — modifiez la requête depuis la colonne doc ou depuis le panneau, toujours synchronisés
Setup links d’environnement — accueillez un coéquipier avec une URL — fabriquée de zéro, sans créer l’environnement
Correctif local du schéma — l’Overlay 1.1 du lecteur, appliqué en dernier et téléchargeable pour être remonté à l’amont
Des guides qui se lisent personnellement — {{var}} résolue dans la prose depuis l’environnement du lecteur — les valeurs sensibles ne sortent jamais
Diagnostic des échecs — hors ligne, contenu mixte, CORS ou API injoignable — nommé, pas deviné
Lecture des en-têtes de réponse — quotas, Retry-After, Deprecation/Sunset, pagination Link, identifiants de corrélation
Import d’une requête — collez une commande cURL, déposez une collection Postman v2.1 ou un HAR
Onboarding « premier appel » — une première requête générée, guidée dans la vraie console — opt-in, features.onboarding
Historique des requêtes — filtrable et rejouable, gardé dans l’IndexedDB du lecteur
Sérialisation complète des paramètres — style, explode, deepObject, cookies — les parties ingrates, faites correctement
Swagger 2.0 — converti au chargement, rien à lancer avant
Webhooks & callbacks — rendus comme des opérations, avec un simulateur de webhook
JSON Schema 2020-12 — les mots-clés sont rendus, pas ignorés en silence
Références circulaires — gérées, dans la doc comme dans les exemples générés
Masquer les endpoints internes — depuis le schéma ou la config — masquage documentaire, pas contrôle d’accès
Vos pages de prose — vos guides markdown tissés dans la navigation, à côté de la référence
Recherche instantanée — Cmd+K, une réponse sous 200 ms sur un schéma de 12 Mo et 1220 opérations — budget tenu en CI
Interface entièrement localisée — une langue tient dans un fichier JSON, téléchargé seulement si elle est active
Environnements verrouillables — environmentsLocked pour les déploiements d’entreprise encadrés
Pont d’identifiants hôte — la session SSO de la page devient le jeton du lecteur — à l’exécution, en mémoire, jamais stocké
Remise CI — un job GitHub Actions ou GitLab CI généré exécute le document Arazzo d’un scénario — des secrets en noms, jamais en valeurs
Deux zones de nav — nav: bottom envoie les pages support et légales sous la référence — une annexe, pas une seconde doc
Accessibilité — WCAG 2.2 AA visé sur tous les parcours interactifs — navigation, console, recherche
Sans framework — composants web natifs, 5 dépendances d’exécution, un seul bundle
Tout reste en local — localStorage et IndexedDB uniquement, chaque jeu de données borné
Diff de schéma — ajouté, modifié, retiré — calculé dans le navigateur du lecteur depuis sa dernière visite
Bâtissez sur ce que vous utilisez déjà.
ApiGlow s’appuie sur les standards ouverts plutôt que de les contourner — voici exactement ce qu’il lit et ce qu’il écrit.
Voyez-le en direct.
Assez décrit — la voici, en fonctionnement. Parcourez la navigation, envoyez une vraie requête, jugez sur pièces.
La démo Petstore
API Petstore simulée dans votre navigateur par un service worker — rien à installer, aucun compte à créer.
Démo en directVotre propre schéma
Exactement la même démo, chargée avec vos opérations — le chemin le plus court pour voir ce qu’ApiGlow fait de votre API.
Questions fréquentes.
C'est gratuit ?
ApiGlow est sous licence MIT, entièrement open source. Pas d’offre payante, pas de version cloud, pas de compte — pas de business model du tout. C’est le principe.
Mon schéma ou mon trafic sortent-ils du navigateur ?
Non. Les requêtes partent directement du navigateur du lecteur vers votre API. Pas d’analytics, pas de télémétrie, pas de serveur chez nous — il n’y a nulle part où envoyer quoi que ce soit. Historique, environnements et scénarios restent dans le stockage du navigateur du lecteur.
Quelles versions d'OpenAPI sont prises en charge ?
OpenAPI 3.0.x, 3.1.x et 3.2.x nativement ; Swagger 2.0 est converti au chargement. OpenAPI Overlay 1.1 s’applique au chargement, et les workflows Arazzo s’importent (1.0 et 1.1) comme s’exportent (1.1.0).
Pourquoi la console d'essai n'atteint-elle pas mon API ?
CORS : votre API doit autoriser l’origine de la documentation. ApiGlow diagnostique l’échec dans l’interface et sait passer par un proxy que vous hébergez (tryIt.proxyUrl) — il n’en fournit aucun. Voir Console d’essai & CORS.
Puis-je le mettre à mes couleurs ?
Nom du produit, logo, thèmes, liens de pied de page — oui. La petite ligne « Powered by » et la boîte « À propos » restent : une installation CDN n’embarque aucun fichier LICENSE, et c’est dans cette boîte que vivent les mentions des composants open source embarqués. Voir le guide des thèmes.
Suis-je dépendant d'un CDN ?
Seulement si vous le voulez bien. npm install apiglow vous donne tout le dossier dist/ : copiez-le dans vos fichiers statiques, pointez la balise script sur votre propre origine, et plus rien n’en sort à l’exécution — aucun tiers dans votre CSP, et la version figée dans votre lockfile. Gardez app.js à côté de son app.css, de i18n/ et de fonts/ : il les résout relativement à lui-même, ce qui explique aussi qu’il ne passe pas par un bundler JavaScript. Voir l’installation.
C'est lourd ?
Un seul fichier : app.js pèse ~289 Ko gzippé en v0.1.0, plus ~39 Ko de CSS ; le pack d’interface français (~24 Ko gzippé) ne se télécharge que si le français est actif. Pas léger — mais c’est le produit entier : cinq dépendances runtime, zéro framework, et dans ce fichier un moteur d’audit, un runner Arazzo, un convertisseur Swagger 2.0, 35 thèmes et des extraits de code en dix langages.
Quels navigateurs sont pris en charge ?
Le plancher déclaré est Chrome/Edge 111, Firefox 128 et Safari/iOS 16.4 — des fonctionnalités de plateforme classées Baseline « widely available », sans polyfill : au-dessus du plancher, tout est détecté et dégradé plutôt que polyfillé. La suite de bout en bout tourne sur Chromium, Firefox et WebKit, desktop et mobile émulé ; Chromium verrouille chaque changement, les autres moteurs tournent à la demande.
C'est rapide sur un gros schéma ?
Les budgets de performance sont imposés en CI contre un schéma de 12 Mo et 1220 opérations — l’API REST GitHub, gelée : utilisable en moins d’une seconde, aucune tâche ne bloque la page plus de 500 ms, une réponse Cmd+K en moins de 200 ms, corps de schéma profonds et pages de prose en moins de 400 ms. Les plafonds ne peuvent que baisser — l’outillage refuse une hausse. La démo accompagne le Petstore d’une seconde spec de 1,15 Mo et 143 opérations — assez grande pour s’y promener, sans infliger 12 Mo de téléchargement à un visiteur.
C'est accessible ?
ApiGlow vise WCAG 2.2 AA sur les parcours interactifs — navigation, console d’essai, recherche — avec un passage axe qui verrouille la CI, contraste des couleurs compris, plus un parcours clavier page entière et une suite de reflow à 320 px : le balayage tourne sur les deux thèmes de l’app et impose le plancher AA comme n’importe quelle autre règle. Pour y arriver, il a fallu faire du texte secondaire une couleur et non une opacité : l’opacité se multiplie le long d’un sous-arbre, et aucun ratio calculé sur un token ne prédit ce qui s’affiche vraiment. Deux limites que le projet énonce lui-même : la promesse de contraste couvre les thèmes qu’il écrit — un ratio corrigé sur sa propre palette ne dit rien des 35 thèmes daisyUI standard qu’il embarque aussi, ni d’un des vôtres — et aucune passe complète au lecteur d’écran n’a encore été faite.
Les moteurs de recherche et les crawlers d'IA lisent-ils la doc ?
D’office, chaque route s’annonce — titres par route, meta description, JSON-LD. Pour les crawlers qui n’exécutent pas de JavaScript, apiglow bake écrit un miroir statique HTML et Markdown de chaque opération, guide et scénario, plus un sitemap et un llms.txt servi — une commande côté auteur, l’installation du lecteur inchangée. Et seo: { index: false } garde une doc interne hors de l’index. Voir SEO & CLI bake.
Puis-je ouvrir la doc depuis une URL file:// ?
Non. L’app est un module ES et télécharge ses ressources, deux choses que le navigateur bloque en file://. N’importe quel serveur statique HTTP(S) convient, y compris en une ligne (python3 -m http.server). Voir l’installation.
Puis-je cacher des endpoints internes ?
Oui — "x-apiglow-hide": true dans le schéma, ou des motifs openapi.hide dans la config ; les opérations cachées disparaissent de la nav, de la recherche et des exports. C’est du masquage documentaire, pas de la sécurité : le navigateur télécharge toujours le schéma complet. Voir Contrôle du schéma.
Une balise. Vos docs.
La démo tourne sur un schéma complet de 1,15 Mo et 143 opérations — ou sur le vôtre, collé plus haut.
<script id="api-doc-config" type="application/json">
{ "openapi": { "url": "https://example.com/openapi.json" } }
</script>
<script src="https://cdn.jsdelivr.net/npm/apiglow@0.1.0/dist/app.js" type="module"></script>