Tu veux automatiser tes trades sur Coinbase ? Créer un bot qui achète le dip pendant que tu dors ? Ou simplement récupérer des données de marché pour ton projet ? L’API Coinbase est ta porte d’entrée vers le trading algorithmique.
En bref : L’API Coinbase te permet d’interagir programmatiquement avec la plateforme. Tu peux passer des ordres, consulter tes soldes, récupérer l’historique des prix et bien plus. Gratuite, bien documentée et compatible avec tous les langages de programmation.
Spoiler : ce n’est pas réservé aux développeurs seniors. Avec les bons outils et ce guide, tu peux lancer ta première requête API en moins de 10 minutes.
👉 Crée ton compte Coinbase et récupère 10$ en BTC offerts pour commencer à expérimenter avec l’API.
Qu’est-ce que l’API Coinbase et pourquoi l’utiliser ?
L’API (Application Programming Interface) de Coinbase, c’est un ensemble de “portes d’entrée” qui te permettent de communiquer avec les serveurs de la plateforme via du code. Au lieu de cliquer sur des boutons dans l’interface web, tu envoies des requêtes HTTP.
Les cas d’usage concrets
Pourquoi s’embêter avec du code quand l’app mobile existe ? Bonne question.
- Trading automatisé : ton bot achète quand le RSI passe sous 30, vend quand il dépasse 70
- Alertes personnalisées : notification Telegram dès que Bitcoin touche un certain prix
- Portfolio tracking : agrège tes positions Coinbase avec d’autres exchanges
- Arbitrage : détecte les écarts de prix entre plateformes
- DCA automatique : investis 50€ chaque lundi à 9h sans y penser
J’utilise personnellement l’API Coinbase depuis 2 ans pour un petit bot de DCA. Résultat : je n’ai plus à me soucier du timing, le code s’en charge.
Les différentes APIs disponibles
Coinbase propose plusieurs APIs selon tes besoins :
| API | Usage | Authentification |
|---|---|---|
| REST API | Ordres, comptes, historique | Oui (clé API) |
| WebSocket | Données temps réel (prix, orderbook) | Non pour les données publiques |
| FIX API | Trading haute fréquence institutionnel | Oui |
| Data API | Données onchain (balances, transactions) | Non |
Pour 90% des projets perso, la REST API + WebSocket suffisent largement.
💡 Astuce pro : La FIX API offre une latence plus faible mais nécessite une infrastructure spécifique. Reste sur REST/WebSocket sauf si tu trades des millions.
Comment créer et configurer tes clés API Coinbase
Avant de coder quoi que ce soit, tu as besoin de tes credentials. Voici la marche à suivre.
Étape 1 : accéder au portail développeur
Rends-toi sur le Coinbase Developer Platform. Tu devras te connecter avec ton compte Coinbase classique.
Pas encore de compte ? Inscris-toi via ce lien pour obtenir ton bonus de bienvenue de 10$ en BTC.
Étape 2 : créer un nouveau projet API
Une fois connecté :
- Clique sur “Create new API key”
- Donne un nom explicite (ex: “Bot-DCA-BTC”)
- Sélectionne les permissions nécessaires
Étape 3 : choisir les bonnes permissions
C’est ici que beaucoup font une erreur. Ne donne jamais plus de droits que nécessaire.
- View : lecture seule (prix, soldes)
- Trade : passer des ordres
- Transfer : envoyer des cryptos (⚠️ dangereux)
Pour un bot de trading basique, “View” + “Trade” suffisent. Évite “Transfer” sauf besoin absolu.
Étape 4 : sécuriser tes clés
Tu vas recevoir trois éléments :
- API Key : ton identifiant
- API Secret : ton mot de passe (ne le partage JAMAIS)
- Passphrase : couche de sécurité supplémentaire
⚠️ Attention : Ces informations ne s’affichent qu’une seule fois. Copie-les immédiatement dans un gestionnaire de mots de passe comme Bitwarden ou 1Password.
Stocke-les dans des variables d’environnement, jamais en dur dans ton code :
export COINBASE_API_KEY="ta-clé"
export COINBASE_API_SECRET="ton-secret"
export COINBASE_PASSPHRASE="ta-passphrase"
Ta première requête API en Python
Passons aux choses sérieuses. On va récupérer le prix actuel du Bitcoin.
Installation des dépendances
pip install requests python-dotenv
Code pour récupérer le prix BTC
import requests
# Endpoint public (pas besoin d'auth)
url = "https://api.coinbase.com/v2/prices/BTC-EUR/spot"
response = requests.get(url)
data = response.json()
prix_btc = data["data"]["amount"]
print(f"Prix actuel du Bitcoin : {prix_btc} EUR")
Exécute ce script. En 3 lignes, tu as interrogé l’API Coinbase. Pas mal, non ?
Requête authentifiée : consulter ton solde
Pour accéder à tes données privées, il faut signer tes requêtes. C’est un peu plus complexe.
import hmac
import hashlib
import time
import requests
import os
api_key = os.environ.get("COINBASE_API_KEY")
api_secret = os.environ.get("COINBASE_API_SECRET")
timestamp = str(int(time.time()))
method = "GET"
request_path = "/v2/accounts"
message = timestamp + method + request_path
signature = hmac.new(
api_secret.encode(),
message.encode(),
hashlib.sha256
).hexdigest()
headers = {
"CB-ACCESS-KEY": api_key,
"CB-ACCESS-SIGN": signature,
"CB-ACCESS-TIMESTAMP": timestamp,
"CB-VERSION": "2024-01-01"
}
response = requests.get(
f"https://api.coinbase.com{request_path}",
headers=headers
)
print(response.json())
Ce code affiche tous tes wallets Coinbase avec leurs soldes.
💡 Astuce pro : Utilise la librairie
coinbase-advanced-py(SDK officiel) pour éviter de gérer l’authentification manuellement.
Créer un bot de trading simple avec l’API Coinbase
Tu veux passer à l’action ? Voici un mini-bot de DCA (Dollar Cost Averaging) qui achète automatiquement du Bitcoin chaque semaine.
Architecture du bot
Le bot va :
- Vérifier ton solde EUR disponible
- Passer un ordre d’achat de 50€ de BTC
- Logger l’opération
- S’exécuter via un cron job chaque lundi
Le code complet
import hmac
import hashlib
import time
import requests
import os
import json
from datetime import datetime
class CoinbaseDCABot:
def __init__(self):
self.api_key = os.environ.get("COINBASE_API_KEY")
self.api_secret = os.environ.get("COINBASE_API_SECRET")
self.base_url = "https://api.coinbase.com"
def _sign_request(self, method, path, body=""):
timestamp = str(int(time.time()))
message = timestamp + method + path + body
signature = hmac.new(
self.api_secret.encode(),
message.encode(),
hashlib.sha256
).hexdigest()
return {
"CB-ACCESS-KEY": self.api_key,
"CB-ACCESS-SIGN": signature,
"CB-ACCESS-TIMESTAMP": timestamp,
"CB-VERSION": "2024-01-01",
"Content-Type": "application/json"
}
def get_eur_balance(self):
path = "/v2/accounts/EUR"
headers = self._sign_request("GET", path)
response = requests.get(f"{self.base_url}{path}", headers=headers)
return float(response.json()["data"]["balance"]["amount"])
def buy_btc(self, amount_eur):
path = "/v2/accounts/BTC/buys"
body = json.dumps({
"amount": str(amount_eur),
"currency": "EUR"
})
headers = self._sign_request("POST", path, body)
response = requests.post(
f"{self.base_url}{path}",
headers=headers,
data=body
)
return response.json()
def run_dca(self, amount=50):
balance = self.get_eur_balance()
if balance < amount:
print(f"Solde insuffisant : {balance}€")
return
result = self.buy_btc(amount)
print(f"[{datetime.now()}] Achat de {amount}€ de BTC effectué")
print(result)
if __name__ == "__main__":
bot = CoinbaseDCABot()
bot.run_dca(50)
Automatiser avec cron
Sur Linux/Mac, ajoute cette ligne à ton crontab (crontab -e) :
0 9 * * 1 /usr/bin/python3 /chemin/vers/ton/bot.py
Ton bot achètera 50€ de BTC chaque lundi à 9h. Simple et efficace.
Tu préfères une solution clé en main sans coder ? Binance propose aussi des fonctionnalités de DCA automatique directement dans l’app.
Utiliser le WebSocket pour les données temps réel
L’API REST, c’est bien pour les actions ponctuelles. Mais si tu veux suivre les prix en temps réel, le WebSocket est indispensable.
Pourquoi le WebSocket ?
Avec REST, tu dois interroger l’API régulièrement (polling). Problèmes :
- Latence : tu rates les mouvements rapides
- Limite de requêtes : tu te fais bloquer si tu spammes
- Inefficace : 90% de tes requêtes retournent les mêmes données
Avec WebSocket, le serveur t’envoie les mises à jour instantanément. Zéro gaspillage.
Code WebSocket basique
import websocket
import json
def on_message(ws, message):
data = json.loads(message)
if data["type"] == "ticker":
prix = data["price"]
print(f"BTC-EUR : {prix}")
def on_open(ws):
subscribe_message = {
"type": "subscribe",
"product_ids": ["BTC-EUR"],
"channels": ["ticker"]
}
ws.send(json.dumps(subscribe_message))
ws = websocket.WebSocketApp(
"wss://ws-feed.exchange.coinbase.com",
on_message=on_message,
on_open=on_open
)
ws.run_forever()
Ce script affiche le prix du BTC en temps réel, mis à jour à chaque trade sur la plateforme.
Les channels disponibles
| Channel | Données |
|---|---|
| ticker | Dernier prix, volume 24h |
| level2 | Orderbook (bid/ask) |
| matches | Chaque trade exécuté |
| full | Orderbook complet + tous les ordres |
💡 Astuce pro : Le channel “level2” est parfait pour détecter les murs d’achat/vente et ajuster ta stratégie.
L’environnement Sandbox pour tester sans risque
Avant de lâcher ton bot sur tes vrais fonds, teste-le en Sandbox.
Qu’est-ce que le Sandbox ?
C’est une copie de l’environnement de production avec :
- De faux fonds (BTC, ETH, EUR fictifs)
- Les mêmes endpoints API
- Un orderbook simulé
Configurer le Sandbox
- Crée un compte sur public.sandbox.exchange.coinbase.com
- Génère des clés API dédiées au Sandbox
- Change l’URL de base dans ton code :
# Production
base_url = "https://api.exchange.coinbase.com"
# Sandbox
base_url = "https://api-public.sandbox.exchange.coinbase.com"
Teste ton bot pendant quelques jours en Sandbox. Vérifie qu’il gère bien les erreurs, les timeouts et les cas limites.
⚠️ Attention : Le Sandbox n’a pas la même liquidité que la production. Les ordres se remplissent différemment. C’est pour tester la logique, pas les performances exactes.
Erreurs courantes et comment les éviter
Après avoir aidé plusieurs développeurs sur Discord, voici les problèmes les plus fréquents.
Erreur 401 : Invalid signature
Ta signature HMAC est incorrecte. Vérifie :
- L’ordre des éléments dans le message (timestamp + method + path + body)
- Que le body est vide pour les requêtes GET
- Que ton horloge système est synchronisée (NTP)
Erreur 429 : Rate limit exceeded
Tu envoies trop de requêtes. Solutions :
- Ajoute des délais entre tes appels (
time.sleep(0.1)) - Cache les données qui ne changent pas souvent
- Passe au WebSocket pour les données temps réel
Erreur 400 : Invalid product
Le format du produit est incorrect. Utilise :
BTC-EUR(pasBTCEURniBTC/EUR)- Vérifie que la paire existe sur Coinbase
Ordres non exécutés
Ton ordre limit est trop loin du prix actuel. Options :
- Utilise un ordre market pour une exécution immédiate
- Rapproche ton prix limite du marché
- Vérifie que tu as assez de solde (frais inclus)
Alternatives et compléments à l’API Coinbase
L’API Coinbase ne fait pas tout. Voici des outils complémentaires.
CCXT : la librairie multi-exchanges
CCXT unifie les APIs de 100+ exchanges. Un seul code pour trader sur Coinbase, Binance, Kraken, etc.
import ccxt
exchange = ccxt.coinbase({
'apiKey': 'ta-clé',
'secret': 'ton-secret'
})
ticker = exchange.fetch_ticker('BTC/EUR')
print(ticker['last'])
Idéal si tu veux diversifier tes plateformes sans réécrire ton code.
TradingView + Webhooks
Configure des alertes TradingView qui déclenchent ton bot via webhook. Tu combines l’analyse technique visuelle avec l’exécution automatique.
Comparer avec Binance API
Si tu hésites entre Coinbase et Binance pour ton projet :
| Critère | Coinbase API | Binance API |
|---|---|---|
| Documentation | Excellente | Très bonne |
| Latence | Moyenne | Faible |
| Paires disponibles | ~200 | ~1500 |
| Limites de requêtes | 10/s | 20/s |
| Sandbox | Oui | Oui (Testnet) |
| Frais | 0.5% maker/taker | 0.1% maker/taker |
Pour le marché français et la simplicité, Coinbase reste un excellent choix. Pour plus de paires et des frais réduits, découvre l’offre Binance.
Notre verdict sur l’API Coinbase
✅ Notre verdict : L’API Coinbase est parfaite pour débuter dans le trading automatisé. Documentation claire, environnement de test gratuit et communauté active. Les développeurs intermédiaires y trouveront tout ce qu’il faut pour créer des bots robustes.
Les points forts
- Documentation parmi les meilleures du secteur
- SDK officiels en plusieurs langages
- Sandbox gratuit pour tester
- Support Discord réactif
- Sécurité solide (PSAN en France)
Les limites
- Frais de trading plus élevés que certains concurrents
- Moins de paires que Binance ou Kraken
- WebSocket parfois instable en période de forte volatilité
Pour qui ?
L’API Coinbase convient si tu :
- Débutes en trading algorithmique
- Veux une plateforme régulée en France
- Privilégies la simplicité à la performance brute
- Trades sur les cryptos majeures (BTC, ETH, etc.)
Pour du trading haute fréquence ou des altcoins exotiques, regarde plutôt du côté de Binance.
Tu es prêt à te lancer ? Crée ton compte Coinbase maintenant et récupère tes 10$ en BTC offerts après 100$ de transactions. C’est le moment parfait pour commencer à expérimenter avec l’API.
Besoin d’autres offres de parrainage dans la finance ? Découvre notre sélection complète avec Binance, Fortuneo, Lydia et bien d’autres.
