Météo, films, livres, taux de change, Pokémon, photos de la NASA… Des dizaines de services mettent leurs données à disposition gratuitement. Voici notre sélection des meilleures API gratuites pour tes projets de développeur, classées par thème, avec pour chacune un exemple de code prêt à tester, les limites à connaître et les bonnes pratiques pour les utiliser proprement.

🔌 15 API testées🆓 Gratuites🔑 Avec ou sans clé🟨 Exemples JavaScript⏱️ 18 min de lecture

Tu cherches une idée de projet pour t’entraîner ou enrichir ton portfolio ? Les API gratuites sont une mine d’or. Elles te permettent de créer en quelques heures une application qui affiche de vraies données : la météo en temps réel, des informations sur les pays, les livres d’une bibliothèque ou les taux de change du jour.

API gratuites : Les meilleures API gratuites pour tes projets de développeur
Les meilleures API gratuites pour tes projets de développeur

Dans ce guide, on a sélectionné des API fiables, gratuites et bien documentées. Pour chacune, tu trouveras ce qu’elle propose, si une clé est nécessaire, ses limites, et un exemple de code JavaScript à copier.

API gratuites : les API gratuites par thème
Notre sélection d’API gratuites pour tes projets, par thème.
🎯
Dans ce guide
  • Ce qu’est une API et comment l’appeler en JavaScript.
  • 15 API gratuites classées par thème, avec un exemple pour chacune.
  • Comment protéger tes clés d’API (et pourquoi ne jamais les mettre dans le navigateur).
  • Les bonnes pratiques : limites d’appels, cache, gestion des erreurs.
  • Des idées de projets à réaliser avec ces API.

Qu’est-ce qu’une API ?

Une API (Application Programming Interface) est une porte d’entrée qu’un service ouvre aux développeurs pour qu’ils puissent utiliser ses données ou ses fonctionnalités depuis leur propre programme. Les API web fonctionnent presque toutes de la même façon : tu envoies une requête HTTP à une adresse (un endpoint), et le service te répond avec des données, généralement au format JSON.

Voici le modèle de code que tu réutiliseras pour toutes les API de ce guide :

async function appelerApi(url) {
  const reponse = await fetch(url);
  if (!reponse.ok) {
    throw new Error(`Erreur HTTP ${reponse.status}`);
  }
  return reponse.json();
}

try {
  const donnees = await appelerApi('https://api.exemple.com/donnees');
  console.log(donnees);
} catch (erreur) {
  console.error('Impossible de récupérer les données :', erreur.message);
}
JavaScript
💡
Tester une API sans écrire de code

Colle l’URL d’une API sans clé directement dans la barre d’adresse de ton navigateur : Firefox affiche le JSON de façon lisible. Pour les requêtes plus complexes (en-têtes, méthode POST), utilise un outil comme Postman, Insomnia ou l’extension REST Client de VS Code.

Les critères de notre sélection d’API gratuites

CritèreCe qu’on a vérifié
GratuitéUne offre gratuite suffisante pour un projet personnel ou d’apprentissage
FiabilitéUn service connu, maintenu depuis plusieurs années
DocumentationUne documentation claire, avec des exemples
AccèsAvec ou sans clé, inscription simple
⚠️
Les conditions évoluent

Les limites et conditions des offres gratuites changent régulièrement. Avant de construire un projet important sur une API, relis toujours sa documentation et ses conditions d’utilisation, en particulier pour un usage commercial.

Météo et environnement

1. Open-Meteo : la météo sans clé

Open-Meteo fournit des prévisions météo pour n’importe quel point du globe, à partir des modèles des grands services météorologiques nationaux. Aucune clé n’est nécessaire pour un usage non commercial, ce qui en fait l’API idéale pour débuter.

// Météo actuelle à Bruxelles
const url = 'https://api.open-meteo.com/v1/forecast'
  + '?latitude=50.85&longitude=4.35'
  + '¤t=temperature_2m,wind_speed_10m'
  + '&timezone=Europe%2FBrussels';

const meteo = await appelerApi(url);
console.log(`Il fait ${meteo.current.temperature_2m} °C à Bruxelles.`);
JavaScript
  • Clé : non (usage non commercial).
  • Idéal pour : une application météo, un tableau de bord, une station connectée.

2. OpenWeatherMap

OpenWeatherMap est l’une des API météo les plus utilisées dans les tutoriels. Elle nécessite une clé gratuite (inscription par e-mail) et propose la météo actuelle, des prévisions et des données de pollution de l’air. Attention : une nouvelle clé peut mettre quelques heures à s’activer.

Données géographiques

3. REST Countries : tout sur les pays du monde

REST Countries renvoie pour chaque pays son nom dans plusieurs langues, sa capitale, sa population, sa superficie, ses langues, sa monnaie, son drapeau et ses pays voisins.

const [belgique] = await appelerApi('https://restcountries.com/v3.1/name/belgium');
console.log(belgique.translations.fra.common);   // « Belgique »
console.log(belgique.capital[0]);                // « Brussels »
console.log(belgique.population);
console.log(belgique.flags.svg);                 // URL du drapeau
JavaScript
  • Clé : non.
  • Idéal pour : un quiz de géographie, un jeu de drapeaux, des listes déroulantes de pays.

4. Nominatim (OpenStreetMap) : géocodage

Nominatim transforme une adresse en coordonnées GPS (et inversement), à partir des données d’OpenStreetMap. Gratuit, mais avec une politique d’usage stricte : au maximum une requête par seconde, un en-tête d’identification de ton application, et pas d’usage intensif (pour cela, installe ta propre instance ou utilise un service commercial).

Divertissement : films, livres, jeux

5. TMDB (The Movie Database)

TMDB est une immense base de données collaborative de films et de séries : synopsis, affiches, acteurs, notes, bandes-annonces. Elle nécessite une clé gratuite pour un usage non commercial, et demande de citer TMDB dans ton application.

// Avec ta clé (jeton de lecture), idéalement appelé depuis ton serveur
const reponse = await fetch('https://api.themoviedb.org/3/search/movie?query=Inception&language=fr-FR', {
  headers: { Authorization: `Bearer ${process.env.TMDB_TOKEN}` },
});
const { results } = await reponse.json();
console.log(results[0].title, results[0].release_date);
JavaScript
  • Idéal pour : un catalogue de films, une liste « à voir », un clone de Netflix pour ton portfolio.

6. Open Library : des millions de livres

Open Library, un projet de l’Internet Archive, permet de rechercher des livres par titre, auteur ou ISBN, et de récupérer leurs couvertures.

const resultat = await appelerApi('https://openlibrary.org/search.json?q=le+petit+prince&limit=5');
for (const livre of resultat.docs) {
  console.log(livre.title, '-', livre.author_name?.[0], `(${livre.first_publish_year})`);
}
JavaScript
  • Clé : non.
  • Idéal pour : une bibliothèque personnelle, un suivi de lecture.

7. PokéAPI : le grand classique

PokéAPI contient toutes les données des jeux Pokémon : statistiques, types, capacités, évolutions, images. Parfaite pour apprendre, grâce à une structure riche et des données ludiques.

const pokemon = await appelerApi('https://pokeapi.co/api/v2/pokemon/pikachu');
console.log(pokemon.name, pokemon.types.map(t => t.type.name));
console.log(pokemon.sprites.front_default);   // image
JavaScript
  • Clé : non.
  • Idéal pour : un Pokédex, un jeu de cartes, apprendre la pagination et les données imbriquées.

8. Rick and Morty API

L’API Rick and Morty propose les personnages, lieux et épisodes de la série, avec une pagination simple et même une interface GraphQL. Un excellent terrain d’entraînement pour découvrir GraphQL.

Science et connaissances

9. NASA APIs

La NASA met à disposition de nombreuses API sur api.nasa.gov, dont la célèbre photo astronomique du jour (APOD). La clé DEMO_KEY permet de tester immédiatement ; une clé personnelle gratuite (inscription en une minute) offre des limites bien plus confortables.

const apod = await appelerApi('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY');
console.log(apod.title);
console.log(apod.url);           // image (ou vidéo) du jour
console.log(apod.explanation);
JavaScript

10. Wikipédia (API REST)

L’API REST de Wikipédia renvoie le résumé d’un article, son image principale et ses liens. Gratuite et sans clé, mais pense à identifier ton application dans l’en-tête User-Agent quand tu l’appelles depuis un serveur.

const page = await appelerApi('https://fr.wikipedia.org/api/rest_v1/page/summary/Bruxelles');
console.log(page.extract);         // le résumé de l'article
console.log(page.thumbnail?.source);
JavaScript

Finance et données pratiques

11. Frankfurter : les taux de change

Frankfurter fournit les taux de change de référence publiés par la Banque centrale européenne, avec l’historique depuis 1999. Sans clé et open source.

const taux = await appelerApi('https://api.frankfurter.dev/v1/latest?base=EUR&symbols=USD,GBP,CHF');
console.log(`1 € = ${taux.rates.USD} $ (au ${taux.date})`);
JavaScript
  • Idéal pour : un convertisseur de devises, un graphique d’évolution.

12. CoinGecko : les cryptomonnaies

CoinGecko propose les cours, volumes et historiques de milliers de cryptomonnaies. L’offre gratuite (Demo) demande une clé et limite le nombre d’appels par minute et par mois.

13. Open Food Facts : les produits alimentaires

Open Food Facts est une base de données collaborative de produits alimentaires du monde entier : ingrédients, Nutri-Score, allergènes, à partir du code-barres.

const produit = await appelerApi('https://world.openfoodfacts.org/api/v2/product/3017624010701.json');
console.log(produit.product.product_name, '- Nutri-Score :', produit.product.nutriscore_grade);
JavaScript
  • Clé : non. Identifie ton application avec un User-Agent depuis un serveur.
  • Idéal pour : un scanner de produits, une application nutrition.

Pour les développeurs

14. JSONPlaceholder : une fausse API pour tester

JSONPlaceholder simule une API REST complète (articles, commentaires, utilisateurs, tâches). Tu peux même envoyer des requêtes POST, PUT et DELETE : elles renvoient une réponse réaliste, sans rien modifier réellement.

// Simuler la création d'un article
const reponse = await fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ title: 'Mon article', body: 'Contenu', userId: 1 }),
});
console.log(await reponse.json());   // { title: 'Mon article', …, id: 101 }
JavaScript
  • Idéal pour : prototyper une interface avant que la vraie API n’existe, apprendre fetch.

15. GitHub REST API

L’API GitHub donne accès aux profils, dépôts, contributions et bien plus. Sans authentification, elle est limitée à 60 requêtes par heure ; avec un jeton personnel, la limite passe à 5 000.

const profil = await appelerApi('https://api.github.com/users/torvalds');
console.log(profil.name, '-', profil.public_repos, 'dépôts publics');
JavaScript
  • Idéal pour : afficher tes projets GitHub sur ton portfolio, automatiquement à jour.

Le tableau récapitulatif des API gratuites

APIThèmeCléPoint fort
Open-MeteoMétéoNonPrécise, sans inscription
OpenWeatherMapMétéoOui (gratuite)Très utilisée dans les tutoriels
REST CountriesPaysNonDonnées complètes, drapeaux
NominatimGéocodageNonDonnées OpenStreetMap
TMDBFilms et sériesOui (gratuite)Affiches et données très riches
Open LibraryLivresNonDes millions de livres et de couvertures
PokéAPIJeuxNonIdéale pour apprendre
Rick and MortySériesNonREST et GraphQL
NASAEspaceDEMO_KEY ou gratuiteLa photo du jour
WikipédiaConnaissancesNonRésumés d’articles en français
FrankfurterDevisesNonTaux officiels de la BCE
CoinGeckoCryptomonnaiesOui (gratuite)Des milliers de cryptomonnaies
Open Food FactsAlimentationNonNutri-Score par code-barres
JSONPlaceholderTestsNonSimule une API complète
GitHubDéveloppementFacultativeTon portfolio automatique

Comment lire la documentation d’une API

Toutes les API ne se ressemblent pas, mais leurs documentations suivent presque toujours la même structure. Savoir où chercher te fera gagner beaucoup de temps :

Section de la documentationCe que tu y trouves
Getting started / DémarrageComment obtenir une clé et faire ton premier appel
AuthenticationOù placer la clé : dans l’URL (?api_key=), dans un en-tête (Authorization: Bearer …)
Endpoints / ReferenceLa liste des adresses disponibles, leurs paramètres et un exemple de réponse
Rate limitsLe nombre d’appels autorisés par minute, jour ou mois
ErrorsLa signification des codes d’erreur renvoyés
Terms / ConditionsCe que tu as le droit de faire avec les données (usage commercial, mention obligatoire)

Beaucoup d’API proposent aussi une spécification OpenAPI (anciennement Swagger) : une description complète de l’API, souvent consultable dans une interface interactive où tu peux tester chaque appel directement depuis la documentation.

Bonnes pratiques pour utiliser des API gratuites

Ne jamais exposer une clé d’API dans le navigateur

Tout ce qui est dans ton code JavaScript côté navigateur est visible par n’importe quel visiteur (il suffit d’ouvrir les outils de développement). Une clé d’API placée là peut être copiée et utilisée à tes dépens : quota épuisé, compte bloqué, voire facturation.

La solution : faire passer les appels par ton propre serveur, qui garde la clé secrète.

// server.js (Node.js + Express) : ton serveur appelle l'API, la clé reste côté serveur
import express from 'express';

const app = express();

app.get('/api/films', async (req, res) => {
  const recherche = String(req.query.q ?? '').slice(0, 100);
  const url = `https://api.themoviedb.org/3/search/movie?language=fr-FR&query=${encodeURIComponent(recherche)}`;
  const reponse = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.TMDB_TOKEN}` },
  });
  if (!reponse.ok) return res.status(502).json({ erreur: 'Service indisponible' });
  res.json(await reponse.json());
});

app.listen(3000);
JavaScript

Ton front appelle simplement /api/films?q=Inception, sans jamais connaître la clé. Bonus : cette méthode évite aussi les problèmes de CORS, que nous expliquons dans notre guide sur l’erreur « CORS policy blocked ».

🛡️
Une clé commitée sur GitHub est une clé compromise

Stocke tes clés dans un fichier .env exclu de Git. Si une clé a été publiée par erreur, révoque-la immédiatement depuis le tableau de bord du service et génères-en une nouvelle.

Respecter les limites et mettre en cache

Les API gratuites limitent le nombre d’appels (par minute, par jour ou par mois). Pour rester dans les limites et accélérer ton application, mets les réponses en cache : la météo ne change pas toutes les secondes, les données d’un pays encore moins.

const cache = new Map();

async function appelerAvecCache(url, dureeMs = 10 * 60 * 1000) {
  const enCache = cache.get(url);
  if (enCache && Date.now() - enCache.date < dureeMs) {
    return enCache.donnees;              // réponse récente : pas d'appel réseau
  }
  const donnees = await appelerApi(url);
  cache.set(url, { donnees, date: Date.now() });
  return donnees;
}
JavaScript

Gérer les erreurs et les lenteurs

Une API externe peut être lente, indisponible ou renvoyer une erreur 429 Too Many Requests (trop d’appels). Ton application doit rester utilisable :

async function appelerAvecDelai(url, delaiMs = 5000) {
  const reponse = await fetch(url, { signal: AbortSignal.timeout(delaiMs) });
  if (reponse.status === 429) {
    throw new Error('Trop de requêtes : réessaie dans quelques instants.');
  }
  if (!reponse.ok) {
    throw new Error(`Erreur HTTP ${reponse.status}`);
  }
  return reponse.json();
}
JavaScript

Affiche toujours un message clair à l’utilisateur (« Météo indisponible pour le moment ») plutôt qu’une page blanche.

Citer tes sources

Beaucoup d’API gratuites demandent une mention dans ton application (TMDB, Open-Meteo, OpenStreetMap…). C’est souvent une condition d’utilisation, et c’est aussi une question de respect pour les projets qui partagent leurs données.

6 idées de projets avec ces API gratuites

ProjetAPINotions travaillées
Application météo avec géolocalisationOpen-Meteo + API de géolocalisation du navigateurfetch, asynchrone, affichage dynamique
Quiz des drapeaux du mondeREST CountriesAléatoire, score, interface de jeu
Pokédex avec recherche et filtresPokéAPIPagination, filtres, données imbriquées
Convertisseur de devises avec graphiqueFrankfurterFormulaires, graphiques (Chart.js)
Liste de films « à voir »TMDB + ton serveurBack-end, clés secrètes, base de données
Portfolio automatiqueGitHubAffichage de tes dépôts, mise à jour automatique
✅
Pour ton portfolio, va au bout

Un projet avec une API devient vraiment impressionnant quand il est en ligne, avec une gestion des erreurs, un état de chargement, un design responsive et un fichier README qui explique tes choix. Mieux vaut un seul projet abouti que cinq projets inachevés.

API gratuites : les points essentiels à retenir
Les points essentiels à retenir de ce guide.

FAQ

Une API gratuite peut-elle devenir payante ?

Oui, ça arrive. Une API peut changer ses conditions, réduire son offre gratuite ou fermer. Pour un projet important, prévois un plan B et isole les appels à l’API dans une partie précise de ton code, pour pouvoir changer de fournisseur facilement.

Peut-on utiliser ces API gratuites dans un projet commercial ?

Ça dépend de chaque API. Certaines l’autorisent (avec mention), d’autres réservent l’offre gratuite à un usage non commercial (Open-Meteo, TMDB). Lis toujours les conditions d’utilisation avant de lancer un produit payant.

Pourquoi mon appel fonctionne dans le navigateur mais pas depuis mon serveur (ou l’inverse) ?

Depuis le navigateur, tu peux être bloqué par CORS si l’API ne l’autorise pas. Depuis un serveur, certaines API refusent les requêtes sans en-tête User-Agent identifiable. Vérifie le message d’erreur et la documentation de l’API.

Où trouver d’autres API gratuites ?

Le dépôt GitHub public-apis recense des centaines d’API gratuites, classées par catégorie. Vérifie simplement qu’une API est encore maintenue avant de l’utiliser.

Conclusion

Les API gratuites sont le meilleur moyen de donner vie à tes projets : de vraies données, des fonctionnalités impressionnantes et des compétences recherchées (requêtes HTTP, JSON, asynchrone, gestion d’erreurs). Commence par une API sans clé comme Open-Meteo, REST Countries ou PokéAPI, puis passe à des API avec clé en apprenant à les protéger derrière ton propre serveur.

Choisis une idée dans la liste ci-dessus et lance-toi dès aujourd’hui. Pour héberger ton serveur et ton front dans un environnement propre, notre guide Docker pour développeur web te donne une base solide, et la sécurité de tes appels est abordée dans notre guide sur l’OWASP Top 10.

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *