Aller au contenu principal

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.

L’URL de votre schéma OAS · SWAGGER · JSON · YAML

Essayez : rien n’est envoyé nulle part, c’est votre navigateur qui va chercher le schéma.

01 · LA BALISE

Collez cette ligne — c’est toute l’installation.

1 LIGNE · AUCUN BUILD · AUCUN BACKEND
<script src="https://cdn.jsdelivr.net/npm/apiglow@0.1.0/dist/app.js" type="module"></script> INS. [01] · CLIQUER POUR COPIER

COLLEZ-LA AVANT </body>POINTEZ LA BALISE JSON VERS VOTRE SCHÉMAC’EST EN LIGNE

…plus une balise JSON qui pointe vers votre schéma. C’est toute l’installation — le bouton de copie emporte les deux balises d’un coup.

02 · LE DÉMARRAGE

Passez 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.

03 · LE PRODUIT

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.

04 · LA PREUVE

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

En savoir plus sur l’audit de schéma

38 / 38 RÈGLES PASSÉES

NOTE GLOBALE · AUDIT DE SCHÉMA

AUD. [01]
05 · LE PARCOURS

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.

En savoir plus sur les scénarios

1 · POST /auth/token → token201
2 · GET /pets?limit=3 → petId200
3 · POST /orders petId injecté201

— AUCUNE LIGNE DE SCRIPT. LES VALEURS SE CHAÎNENT EN CLIQUANT DANS LA RÉPONSE.

06 · LA CONSOLE

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.

console — importer une requête

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

En savoir plus sur la console d’essai

07 · LES PAGES

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.

"docsPages": [ { "title": "Bien démarrer", "url": "./guides/start.md" }, { "title": "Architecture", "url": "./ARCHITECTURE.md" }, { "title": "Changelog", "url": "./CHANGELOG.md" } ] // c’est toute la configuration
PRO. [01]
MDBien démarrer
PETS
GET/pets
POST/pets
GET/pets/{id}
MDArchitecture
ORDERS
POST/orders
MDChangelog
PRO. [02]
## Créer une commandeAuthentifiez-vous, puis appelezl’opération depuis ce guide :```apidoc:operationcreateOrder```
PRO. [03] · GUIDE.MD
Créer une commande

Authentifiez-vous, puis appelez l’opération depuis ce guide :

POST/orders Créer une commande pour un animal Ouvrir l’opération →
PRO. [04] · PAGE RENDUE
Un fichier .md suffit — statique de bout en bout

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.

Vos pages parlent à la référence

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.

08 · LES AGENTS

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]

En savoir plus sur la surface IA

09 · LE BAKE

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 — depuis le job de CI qui déploie votre doc

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

En savoir plus sur SEO & crawlers

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.0
10 · L’INVENTAIRE

Et 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

11 · LES STANDARDS

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.

OpenAPI 3.0 / 3.1 / 3.2rendu nativement, y compris la méthode query et $self de la 3.2
Swagger 2.0converti au chargement — rien à lancer avant
JSON Schema 2020-12les mots-clés sont rendus, pas ignorés en silence
OpenAPI Overlay 1.1appliqué au chargement, pour corriger ou enrichir un schéma qui ne vous appartient pas
Arazzo 1.0 / 1.1les scénarios importent le 1.0 et le 1.1, exportent du 1.1.0 — le format de workflows de l’OpenAPI Initiative
WCAG 2.2 AAvisé sur tous les parcours interactifs — navigation, console, recherche
12 · LA DÉMO

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 direct

Votre 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.

L’URL doit être accessible depuis votre navigateur et lisible en CORS. Les appels d’essai partent directement de votre navigateur vers cette API — rien ne transite par ce site.

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>