Data · guide

Branche ton app sur de vraies données avec Public APIs

Le prompt complet que j'utilise pour que Claude Code trouve une API gratuite dans Public APIs, la teste et la branche sur ton projet. Plus le tri qui évite les API mortes, et 10 API que j'ai testées une par une.

i am rankMon outil Sois la marque que recommande. Mesure et améliore ta visibilité IA dans ChatGPT, Gemini et les autres moteurs de recherche. Et transforme leurs réponses en clients. Analyser ma marque Sans carte. Ton premier score en 2 minutes.

Public APIs en une page

Public APIs est un dépôt GitHub (public-apis/public-apis), sous licence MIT. C'est un annuaire : une longue page qui recense des API publiques, rangées par thème. Le 16 octobre 2026, il avait 489 360 étoiles, et j'y ai compté 2 135 API dans 51 thèmes : météo, sport, finance, cryptos, actualité, transports, livres, administrations…

Une API, c'est une adresse que ton app appelle pour recevoir des données à jour : la température de Paris, le cours du bitcoin, les résultats de la dernière course. C'est ce qui permet à ton app d'afficher de vraies données au lieu de chiffres inventés.

Chaque ligne du tableau a trois colonnes à connaître :

Ce qui est en haut de la page

Avant la liste, le README affiche une section sponsorisée (APILayer, 26 entrées) et quelques entrées sponsorisées dans les thèmes. Elles demandent toutes une clé. Si tu veux du sans clé, Claude doit les ignorer : le prompt le précise.

Le tri qui évite les galères

Dans la vidéo, je dis que près de la moitié des API marchent sans clé. Le compte exact du 16 octobre :

La règle : Auth = No, HTTPS = Yes, et CORS = Yes si l'appel part du navigateur. Ça ne garantit pas que l'API répond encore (voir plus bas), mais ça élimine déjà la moitié des mauvaises surprises.

Le prompt complet

Dans la vidéo, tu ouvres Claude Code dans ton projet et tu lui dis :

Va dans Public APIs,
trouve-moi une API météo
gratuite, sans clé, teste-la
et branche-la directement
dans mon application.

Ça marche pour un premier essai. Voici le prompt complet que j'utilise, qui couvre les pièges de ce guide. Remplace les crochets :

Tu travailles sur mon projet.
J'ai besoin de vraies données
pour [ce que je veux afficher :
la météo de ma ville, les
résultats de F1, le cours du
bitcoin…].

1. Cherche dans Public APIs
(github.com/public-apis/
public-apis) les API qui
correspondent. Garde d'abord
Auth = No et HTTPS = Yes.
Ignore les entrées
sponsorisées.

2. Propose-moi les 3
meilleures avec, pour chacune :
ce qu'elle renvoie, si elle
demande une clé, ses limites
d'appels, et si l'usage
commercial est autorisé. Mon
projet est [perso /
commercial].

3. Quand j'ai choisi, fais un
vrai appel de test et
montre-moi la réponse avant
d'écrire le moindre code. Si
l'API ne répond pas, dis-le
et passe à la suivante.

4. Branche-la dans le projet.
Si l'API n'accepte pas les
appels depuis le navigateur
(CORS), passe par une route
côté serveur. Ajoute un cache
pour rester sous les limites.

5. Si une clé est nécessaire,
mets-la dans un fichier .env,
ajoute .env au .gitignore, et
ne l'écris jamais dans le
code envoyé au navigateur.

6. Si l'API ne répond pas,
affiche un message propre.
N'invente jamais de données
de remplacement.

Termine par un récapitulatif :
l'API choisie, ses conditions
d'usage, et ce que je dois
surveiller.

Pourquoi le point 6 compte : quand un appel échoue, Claude a tendance à mettre une valeur « en attendant » pour que la page ait l'air de marcher. C'est exactement le faux chiffre qu'on veut éviter. Mieux vaut un message « météo indisponible » qu'une température inventée.

Ce qui se passe ensuite

Dans la vidéo, je dis qu'il va choisir, tester l'appel et l'afficher. Le 16 octobre à 16 h 30, j'ai fait le vrai appel à Open-Meteo pour Paris : le voici (clique, la réponse s'affiche dans ton navigateur). Ce qu'il a répondu (extrait) :

"current": {
  "time": "2026-10-16T16:30",
  "temperature_2m": 21.0
}

21 °C à Paris, à cet instant. C'est ce chiffre que la page de démo de la vidéo affiche, en le redemandant à chaque visite. Si tu cliques sur le lien aujourd'hui, tu auras la température du moment : c'est tout l'intérêt.

Les clés : jamais dans ton code

Quand une API demande une clé, Claude la range dans un fichier à part. Concrètement :

  1. Un fichier .env

    À la racine du projet, une ligne par clé : WEATHER_API_KEY=ta-clé. Ton code la lit avec process.env.WEATHER_API_KEY.

  2. .env dans le .gitignore

    Sinon ta clé part sur GitHub au premier envoi, et des robots scannent GitHub en permanence pour les récupérer.

  3. Jamais côté navigateur

    Tout ce qui est envoyé au navigateur est lisible par n'importe qui (clic droit, « Inspecter »). Une clé secrète ne vit que côté serveur : la page appelle ton serveur, qui appelle l'API avec la clé.

  4. Sur ton hébergeur

    Le fichier .env reste sur ton ordinateur. Sur Vercel, Netlify ou autre, tu recopies la clé dans les « variables d'environnement » du projet.

Vérifie qu'aucune clé n'est
écrite en dur dans le projet,
que .env est dans le
.gitignore, et qu'aucune clé
secrète n'est envoyée au
navigateur.

La liste contient des API mortes

C'est ce que personne ne dit dans les vidéos sur ce dépôt : la liste n'est pas un label de qualité. N'importe qui peut y ajouter une API, et personne ne revérifie les anciennes. Le 16 octobre, j'ai testé une vingtaine d'API de la liste. Ce que j'ai trouvé :

D'où le point 3 du prompt : un vrai appel de test avant d'écrire la moindre ligne de code. Si l'API ne répond pas, Claude passe à la suivante au lieu de construire sur du vide.

Les limites d'appels et l'usage commercial

Les limites d'appels. Gratuit ne veut pas dire illimité. La plupart des API coupent au-delà d'un certain nombre d'appels par minute ou par jour. Le jour où ton site a du monde, chaque visiteur déclenche un appel, et tu te fais couper. La parade : un cache. Ton serveur garde la réponse quelques minutes (la météo ne change pas toutes les secondes) et la sert à tout le monde.

Ajoute un cache de 10 minutes
sur l'appel à l'API, côté
serveur, pour que tous les
visiteurs partagent la même
réponse.

L'usage commercial. Chaque API a ses conditions. Exemple : Open-Meteo, l'API météo de la vidéo, est gratuite et sans clé, mais la liste la décrit « for non-commercial use ». Pour un site qui vend quelque chose, il faut leur offre payante. Avant de mettre en ligne, lis la page « Terms » ou « Pricing » de l'API, ou demande à Claude :

Lis les conditions d'usage de
cette API et dis-moi si je
peux l'utiliser sur un site
commercial, et ce que je dois
afficher (mention, lien).

10 API testées le 16 octobre

Toutes dans la liste, toutes sans clé, toutes en HTTPS, et toutes ont répondu à un vrai appel le jour où j'ai écrit ce guide :

  1. Open-Meteo · météo

    Température, pluie, vent, prévisions, partout dans le monde. Usage non commercial gratuit. Appelable depuis le navigateur.

  2. OpenF1 · Formule 1

    Sessions, tours, positions, en direct et en historique. Appelable depuis le navigateur.

  3. CoinGecko · cryptos

    Cours du bitcoin et des autres cryptos (72 660 € le 16 octobre). Limites d'appels basses sans compte : mets un cache.

  4. Frankfurter · taux de change

    Taux officiels de la Banque centrale européenne (1 € = 1,1253 $ le 16 octobre). Adresse à jour : api.frankfurter.dev.

  5. Spaceflight News · actualité

    Les articles d'actualité spatiale de dizaines de sites, à jour. Appelable depuis le navigateur.

  6. Nager.Date · jours fériés

    Les jours fériés de plus de 90 pays. Pas de CORS : passe par ton serveur.

  7. Nominatim · adresses et cartes

    Transforme une adresse en coordonnées, et l'inverse (données OpenStreetMap). Règles strictes : un appel par seconde au maximum, et ton app doit s'identifier.

  8. Open Library · livres

    Titres, auteurs, couvertures, des millions de livres. Pas de CORS : passe par ton serveur.

  9. Launch Library 2 · lancements spatiaux

    Les prochains lancements de fusées, avec date et lieu. Appelable depuis le navigateur.

  10. PokéAPI · Pokémon

    Pour t'entraîner sans risque : tout sur les Pokémon, sans limite gênante. Idéale pour un premier test.