API de Fanta-Trade
Connecte ton programme ou ton bot à ton portefeuille virtuel : achète et vends, passe des ordres et des stop loss, consulte ton portefeuille et tes mouvements. Mêmes règles du jeu, aucun argent réel.
1. Crée une clé
Connecte-toi et va dans Profil › API : nomme la clé et copie-la tout de suite, car elle n'est affichée qu'une seule fois. Tu peux en avoir jusqu'à 3 et les révoquer à tout moment.
2. Authentification
Envoie la clé à chaque requête dans l'en-tête Authorization (ou X-API-Key). Les réponses sont en JSON : les données dans « data », les erreurs dans « error » avec un code et un message.
curl -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/account Adresse de base : https://www.fanta-trade.eu/api/v1 · montants et prix en euros, dates au format ISO 8601
3. Endpoints
GET /api/v1/account
Ton compte : liquidités, valeur investie, valeur totale, rendement depuis le début, nombre de positions et d'ordres en attente.
Exemple de réponse
{"data":{"id":42,"name":"Marco Rossi","currency":"EUR","cash":22226.49,"invested":77870.2,"total":100096.69,"performance_pct":0.1,"positions":8,"open_orders":2,"starting_capital":100000.0}}GET /api/v1/portfolio
Les positions ouvertes avec quantité, prix moyen d'achat, dernier prix, valeur, gain ou perte et poids dans le portefeuille.
Exemple de réponse
{"data":{"currency":"EUR","cash":22226.49,"total":100096.69,"positions":[{"symbol":"ENI.MI","name":"Eni","quantity":400.0,"avg_price":15.12,"price":15.48,"currency":"EUR","value":6192.0,"pl":144.0,"pl_pct":2.38,"weight_pct":6.19}]}}GET /api/v1/transactions?limit=50&offset=0
Tes mouvements, du plus récent (au maximum 100 par requête).
Exemple de réponse
{"data":{"total":37,"limit":50,"offset":0,"items":[{"id":901,"date":"2026-10-14T10:02:11+02:00","symbol":"ENI.MI","name":"Eni","side":"buy","quantity":100.0,"price":15.48,"currency":"EUR","amount":1548.0,"realized_pl":null,"cash_after":22226.49}]}}POST /api/v1/trades
Achète ou vends au prix actuel. Champs : symbol (format Yahoo, ex. ENI.MI, AAPL), side (buy ou sell), quantity.
curl -X POST -H "Authorization: Bearer ft_la_tua_chiave" -H "Content-Type: application/json" \
-d '{"symbol":"ENI.MI","side":"buy","quantity":100}' https://www.fanta-trade.eu/api/v1/trades Exemple de réponse
{"data":{"message":"…","transaction":{"id":902,"symbol":"ENI.MI","side":"buy","quantity":100.0,"price":15.48,"amount":1548.0}}}GET /api/v1/orders
Les ordres en attente. type vaut buy_limit (acheter s'il baisse), buy_stop (acheter s'il monte), stop_loss (vendre s'il baisse) ou take_profit (vendre s'il monte).
Exemple de réponse
{"data":[{"id":55,"symbol":"ENI.MI","side":"sell","type":"stop_loss","quantity":100.0,"price":14.5,"currency":"EUR","status":"open","created_at":"…","expires_at":"…"}]}POST /api/v1/orders
Passe un ordre « acheter à / vendre à » : il s'exécute quand le prix atteint price (en euros). Une vente sous le prix actuel est un stop loss, au-dessus une prise de bénéfice. expiry : 1w, 1m (par défaut) ou 3m.
curl -X POST -H "Authorization: Bearer ft_la_tua_chiave" -H "Content-Type: application/json" \
-d '{"symbol":"ENI.MI","side":"sell","quantity":100,"price":14.50,"expiry":"1m"}' https://www.fanta-trade.eu/api/v1/orders Exemple de réponse
{"data":{"id":56,"symbol":"ENI.MI","side":"sell","type":"stop_loss","quantity":100.0,"price":14.5,"status":"open"}}DELETE /api/v1/orders/{id}
Annule un ordre en attente.
curl -X DELETE -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/orders/56 Exemple de réponse
{"data":{"id":56,"status":"cancelled"}}4. Erreurs
| HTTP | Code | Quand |
|---|---|---|
| 400 | invalid_symbol · invalid_side · invalid_quantity · invalid_price | Champs manquants ou non valides. |
| 401 | unauthorized | Clé manquante, erronée ou révoquée. |
| 404 | not_found | Endpoint inexistant, ou ordre introuvable ou déjà clôturé. |
| 422 | trade_rejected · order_rejected | L'opération ne respecte pas les règles du jeu (liquidités, limites, prix indisponible) : le message explique pourquoi. |
| 429 | rate_limited · trade_limit · symbol_limit | Une des limites ci-dessous a été dépassée. L'en-tête Retry-After indique combien de secondes attendre. |
5. Limites et usage correct
- 30 requêtes par minute et 1 000 par jour par clé (les en-têtes X-RateLimit-* indiquent combien il en reste).
- 50 opérations et ordres par jour, y compris ceux refusés.
- Au maximum 10 titres différents par jour que tu ne détiens pas déjà sur lesquels acheter, vendre ou passer des ordres ; sur les titres que tu possèdes, tu peux opérer librement.
- Toutes les règles du jeu s'appliquent : liquidités disponibles, poids maximum d'un titre dans le portefeuille, limite de volume journalier et au maximum 50 ordres en attente.
- Les API donnent accès uniquement à ton compte. Elles ne fournissent ni cotations, ni recherches, ni historiques : les prix n'apparaissent que pour les titres que tu possèdes et sont les derniers enregistrés par Fanta-Trade, qui peuvent être différés.
- Il est interdit d'utiliser les API pour collecter ou redistribuer des données de marché : en cas d'abus, les clés sont révoquées et le compte peut être suspendu.