Skip to content

Tout pour WordPress, le développement web — et plus encore

💰 API PHP pour obtenir le prix actuel du Bitcoin en 2026 : d'un simple script à une solution de production

💰 API PHP pour obtenir le prix actuel du Bitcoin en 2026 : d'un simple script à une solution de production

Le site accepte les cryptomonnaies, et le taux de change peut varier de quelques pourcents en une demi-heure. Le client souhaite voir le cours actuel du Bitcoin en monnaie fiduciaire directement dans l’interface, pas une capture d’écran d’une plateforme, mais un chiffre en direct provenant de l’API.

Surveiller manuellement le taux via un onglet CoinMarketCap prend du temps et fournit des données différées. Par ailleurs, les plugins crypto prêts à l’emploi sont souvent lourds: publicités, requêtes inutiles, verrouillés sur une source unique.

Voici deux méthodes pour obtenir le cours actuel du Bitcoin en PHP: d’un script basique de 10 lignes à une solution prête pour la production avec mise en cache et sélection de la source. Pas d’abonnement payant, pas de SDK de 40 mégaoctets.

💡 Aperçu rapide:

  • Choisir une source d’API: Bitpay (gratuit, sans clé) ou CoinGecko (plus de données, également gratuit)
  • Écrire un script PHP avec file_get_contents ou cURL, les deux approches sont expliquées
  • Ajouter la gestion des erreurs et une mise en cache fichier de 5 minutes pour éviter d’interroger l’API à chaque chargement de page

Qu’est-ce qu’une API de cotation crypto et pourquoi un développeur PHP en a-t-il besoin

Les API des plateformes de crypto et des agrégateurs renvoient le taux actuel via HTTP: vous faites une requête GET et recevez du JSON avec une paire «BTC/USD» et un chiffre. Pas besoin de WebSocket ni d’abonnement: un script PHP standard sur un hébergement économique s’en sort très bien.

Scénarios types où cela s’avère utile:

  • Passerelle de paiement. Afficher à l’utilisateur: «Montant dû: 0,00031 BTC», avec un taux tiré de l’API plutôt qu’inventé.
  • Tableau de bord. Un panneau d’administration de boutique en ligne avec un bloc «Cours des cryptomonnaies».
  • Suivi de portefeuille. Vous détenez 5 cryptos, et un script met à jour leur valeur totale une fois par minute.

Pour cet article, deux sources en accès libre et sans inscription ont été retenues: Bitpay et CoinGecko. Les deux fonctionnent en HTTPS, renvoient du JSON et ne nécessitent aucune clé d’API au niveau de base.

Graphique montrant le nombre de transactions Bitcoin sur un mois

Étape 1: obtenir le taux via l’API Bitpay

Bitpay est un processeur de paiement pour Bitcoin. Il dispose d’un point de terminaison public /api/rates qui renvoie les taux du BTC pour plus de 150 monnaies fiduciaires dans un seul tableau JSON. Pas de jeton, pas de limites de requêtes pour un usage basique.

Approche simple: file_get_contents

Le code fonctionnel le plus court. Ajoutez-le à un fichier bitcoin-rates.php à la racine de votre site et ouvrez-le dans un navigateur:

1<?php
2$url = "https://bitpay.com/api/rates";
3$json = json_decode(file_get_contents($url), true);
4
5foreach ($json as $item) {
6 if ($item['code'] === 'USD') {
7 echo '1 BTC = $' . $item['rate'] . "\n";
8 }
9 if ($item['code'] === 'EUR') {
10 echo '1 BTC = €' . $item['rate'] . "\n";
11 }
12}

Le script demande l’intégralité du tableau des taux, le parcourt et n’affiche que l’USD et l’EUR. file_get_contents() avec une URL HTTPS fonctionne si la directive allow_url_fopen = On est activée dans php.ini; chez la plupart des hébergeurs, elle est active par défaut.

Approche plus fiable: cURL

file_get_contents ne définit pas de délais d’attente et échoue silencieusement en cas d’erreur réseau. Pour un vrai site web, cURL est le meilleur choix:

1<?php
2$ch = curl_init();
3curl_setopt_array($ch, [
4 CURLOPT_URL => 'https://bitpay.com/api/rates',
5 CURLOPT_RETURNTRANSFER => true,
6 CURLOPT_TIMEOUT => 10,
7 CURLOPT_SSL_VERIFYPEER => true,
8]);
9$response = curl_exec($ch);
10$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
11curl_close($ch);
12
13if ($httpCode !== 200 || !$response) {
14 echo 'API temporarily unavailable.';
15 exit;
16}
17
18$data = json_decode($response, true);
19
20foreach ($data as $item) {
21 if ($item['code'] === 'USD') {
22 echo '1 BTC = $' . number_format($item['rate'], 2) . "\n";
23 }
24}

Un délai de 10 secondes, une vérification du code HTTP et number_format pour un affichage lisible. En pratique, un script de ce type suffit pour intégrer le taux dans le pied de page ou la barre latérale d’un site.

Étape 2: source alternative, l’API CoinGecko

Bitpay ne fournit que les taux du BTC et du BCH. Si vous avez également besoin d’Ethereum, de Solana ou de tout autre actif du top 500, connectez-vous à l’API CoinGecko. L’offre gratuite permet 10 à 30 requêtes par minute sans clé.

Requête simple pour les prix du Bitcoin et de l’Ethereum

Le point de terminaison /api/v3/simple/price accepte une liste de cryptos et de devises séparées par des virgules via le paramètre vs_currencies:

1<?php
2$url = 'https://api.coingecko.com/api/v3/simple/price'
3 . '?ids=bitcoin,ethereum'
4 . '&vs_currencies=usd,eur,rub';
5
6$ch = curl_init();
7curl_setopt_array($ch, [
8 CURLOPT_URL => $url,
9 CURLOPT_RETURNTRANSFER => true,
10 CURLOPT_TIMEOUT => 10,
11]);
12$response = curl_exec($ch);
13curl_close($ch);
14
15$prices = json_decode($response, true);
16
17echo 'BTC: $' . $prices['bitcoin']['usd'] . ' / €' . $prices['bitcoin']['eur'] . "\n";
18echo 'ETH: $' . $prices['ethereum']['usd'] . ' / ₽' . $prices['ethereum']['rub'] . "\n";

La réponse est compacte, elle contient uniquement les cryptos et devises que vous avez demandées. Pas besoin de parcourir 150 entrées.

Ce que CoinGecko peut faire d’autre

  • Données historiques: /api/v3/coins/bitcoin/history?date=01-01-2026, le taux à une date précise.
  • Données de marché: /api/v3/coins/bitcoin, capitalisation, volume, variation sur 24 heures, offre en circulation.
  • Cryptos tendance: /api/v3/search/trending, les principales recherches du jour précédent.

Pour un simple taux «BTC/USD», le premier exemple suffit. Si vous construisez un tableau de bord, connectez-vous au point de terminaison étendu.

Étape 3: mise en cache et protection contre les défaillances de l’API

Interroger une API externe à chaque chargement de page est une mauvaise pratique. Le réseau peut avoir un hoquet, le serveur CoinGecko peut être indisponible une minute, et le visiteur voit une erreur au lieu du taux.

Une solution robuste est la mise en cache fichier. Le script sauvegarde la réponse de l’API dans un fichier JSON local et le met à jour toutes les 5 minutes. Toutes les requêtes intermédiaires lisent depuis le cache, instantanément et sans appel externe.

1<?php
2$cacheFile = __DIR__ . '/btc-cache.json';
3$cacheTime = 300; // 5 minutes
4
5// If cache is fresh — read it
6if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) {
7 $data = json_decode(file_get_contents($cacheFile), true);
8 echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
9 echo ' (cached, updated ' . date('H:i:s', filemtime($cacheFile)) . ')';
10 exit;
11}
12
13// Cache is stale or missing — request API
14$ch = curl_init();
15curl_setopt_array($ch, [
16 CURLOPT_URL => 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd',
17 CURLOPT_RETURNTRANSFER => true,
18 CURLOPT_TIMEOUT => 10,
19]);
20$response = curl_exec($ch);
21$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
22curl_close($ch);
23
24if ($httpCode !== 200 || !$response) {
25 // API is down — serve stale cache if available
26 if (file_exists($cacheFile)) {
27 $data = json_decode(file_get_contents($cacheFile), true);
28 echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
29 echo ' (stale cache — API did not respond)';
30 exit;
31 }
32 echo 'No data available. Please try again later.';
33 exit;
34}
35
36// Save fresh response and output
37file_put_contents($cacheFile, $response);
38$data = json_decode($response, true);
39echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
40echo ' (fresh data)';

Notez que le script vérifie d’abord le cache et n’appelle l’API que si nécessaire. Si l’API ne répond pas, le dernier taux sauvegardé est servi avec une mention «cache périmé». Le visiteur voit un chiffre, pas une page blanche avec une erreur.

Avant de déployer sur un site en production, assurez-vous que PHP dispose des droits d’écriture sur le répertoire du script. Faites également une sauvegarde complète, car le script écrit un fichier sur le disque.

La vidéo ci-dessus propose une décomposition visuelle de l’API CoinGecko avec des exemples de requêtes et de réponses en temps réel. Elle est adaptée si vous travaillez avec une API crypto pour la première fois et souhaitez voir le cycle complet: de la requête GET à l’analyse du JSON.

⁉️🤔 Foire aux questions

Quelle API choisir, Bitpay ou CoinGecko?

Si vous avez uniquement besoin du taux Bitcoin contre dollar, optez pour Bitpay. C’est plus simple, la réponse est renvoyée sous forme d’un tableau unique sans paramètres, et il n’y a pas de limites. Si vous prévoyez de travailler avec une dizaine de cryptos ou d’afficher des graphiques, choisissez CoinGecko: plus de données, des points de terminaison flexibles et une offre gratuite qui couvre les besoins d’un petit projet.

L’API Bitpay nécessite-t-elle une clé d’API?

Le point de terminaison public /api/rates ne nécessite pas de clé. C’est un point de terminaison ouvert utilisé par les portefeuilles et les plateformes pour afficher les taux. Les points de terminaison commerciaux de Bitpay (création de factures, acceptation de paiements) nécessitent un jeton, mais ils ne sont pas utiles pour simplement récupérer les taux.

Pourquoi ne pas utiliser l’API CoinMarketCap?

L’offre gratuite de CoinMarketCap nécessite une inscription et une clé. La limite est de 10 000 requêtes par mois, ce qui est suffisant pour un petit projet. Cependant, pour une approche «partir de zéro sans inscription», Bitpay et CoinGecko sont plus pratiques: copiez l’URL, collez-la dans votre code, et cela fonctionne.

Que faire si mon hébergement bloque file_get_contents pour les URL externes?

Passez à cURL, qui est disponible sur pratiquement tous les hébergements. Si cURL est également désactivé (rare en 2026), demandez à votre hébergeur d’activer curl.so dans les extensions PHP. Une alternative consiste à utiliser wp_remote_get() dans WordPress; cette fonction passe par l’API HTTP centrale et sélectionne automatiquement un transport disponible.

À quelle fréquence les taux sont-ils mis à jour dans l’API?

Bitpay met à jour le taux à chaque requête; les chiffres reflètent l’écart actuel du marché. CoinGecko met à jour les données toutes les 30 à 60 secondes pour le point de terminaison de prix simple. Pour un affichage sur un site web, une fréquence de mise à jour «toutes les 5 minutes» est largement suffisante; le marché crypto est volatil, mais pas au point que des fluctuations à la seconde près aient de l’importance pour un bloc informatif.

Quelle API choisir pour votre projet

Bitpay et CoinGecko répondent à des besoins différents sans être directement concurrents:

  • Si vous construisez un formulaire de paiement avec conversion «BTC → USD», utilisez Bitpay: une seule ligne d’URL, un code minimal, des taux toujours frais.
  • Si vous construisez un tableau de bord avec des graphiques et un portefeuille de 10 cryptos, utilisez CoinGecko: requêtes de prix par lot, données historiques, capitalisation et volume en un seul appel.
  • Si vous avez besoin du démarrage le plus rapide possible sans dépendance externe, utilisez Bitpay sans cURL via file_get_contents: 10 lignes de code et le taux est sur votre page.

Commencez simplement: copiez le premier exemple de cet article, remplacez la devise par la vôtre et ouvrez-le dans un navigateur. Si cela fonctionne, encapsulez-le avec la mise en cache en utilisant le modèle de l’étape 3 et déployez-le sur votre site de production. Dites-nous en commentaires quelle API vous avez finalement choisie.