API di Fanta-Trade
Collega il tuo programma o il tuo bot al tuo portafoglio virtuale: compra e vendi, inserisci ordini e stop loss, leggi portafoglio e movimenti. Stesse regole del gioco, nessun denaro reale.
1. Crea una chiave
Accedi e vai in Profilo › API: dai un nome alla chiave e copiala subito, perché viene mostrata una sola volta. Puoi averne fino a 3 e revocarle in ogni momento.
2. Autenticazione
Invia la chiave in ogni richiesta con l'intestazione Authorization (oppure X-API-Key). Le risposte sono in JSON: i dati in «data», gli errori in «error» con un codice e un messaggio.
curl -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/account Indirizzo di base: https://www.fanta-trade.eu/api/v1 · importi e prezzi in euro, date in formato ISO 8601
3. Endpoint
GET /api/v1/account
Il tuo conto: liquidità, valore investito, valore totale, rendimento dall'inizio, numero di posizioni e di ordini in attesa.
Esempio di risposta
{"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
Le posizioni aperte con quantità, prezzo medio di carico, ultimo prezzo, valore, guadagno o perdita e peso sul portafoglio.
Esempio di risposta
{"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
I tuoi movimenti, dal più recente (al massimo 100 per richiesta).
Esempio di risposta
{"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
Compra o vendi al prezzo attuale. Campi: symbol (formato Yahoo, es. ENI.MI, AAPL), side (buy o 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 Esempio di risposta
{"data":{"message":"…","transaction":{"id":902,"symbol":"ENI.MI","side":"buy","quantity":100.0,"price":15.48,"amount":1548.0}}}GET /api/v1/orders
Gli ordini in attesa. type vale buy_limit (compra se scende), buy_stop (compra se sale), stop_loss (vendi se scende) o take_profit (vendi se sale).
Esempio di risposta
{"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
Inserisce un ordine «compra a / vendi a»: si esegue quando il prezzo raggiunge price (in euro). Una vendita sotto il prezzo attuale è uno stop loss, sopra è una presa di profitto. expiry: 1w, 1m (predefinito) o 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 Esempio di risposta
{"data":{"id":56,"symbol":"ENI.MI","side":"sell","type":"stop_loss","quantity":100.0,"price":14.5,"status":"open"}}DELETE /api/v1/orders/{id}
Annulla un ordine in attesa.
curl -X DELETE -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/orders/56 Esempio di risposta
{"data":{"id":56,"status":"cancelled"}}4. Errori
| HTTP | Codice | Quando |
|---|---|---|
| 400 | invalid_symbol · invalid_side · invalid_quantity · invalid_price | Campi mancanti o non validi. |
| 401 | unauthorized | Chiave mancante, sbagliata o revocata. |
| 404 | not_found | Endpoint inesistente, oppure ordine non trovato o già chiuso. |
| 422 | trade_rejected · order_rejected | L'operazione non rispetta le regole del gioco (liquidità, limiti, prezzo non disponibile): il messaggio spiega il motivo. |
| 429 | rate_limited · trade_limit · symbol_limit | Superato uno dei limiti qui sotto. L'intestazione Retry-After indica quanti secondi aspettare. |
5. Limiti e uso corretto
- 30 richieste al minuto e 1.000 al giorno per chiave (le intestazioni X-RateLimit-* mostrano quante ne restano).
- 50 operazioni e ordini al giorno, contando anche quelli rifiutati.
- Al massimo 10 titoli diversi al giorno che non hai già in portafoglio su cui comprare, vendere o inserire ordini; sui titoli che possiedi puoi operare liberamente.
- Valgono tutte le regole del gioco: liquidità disponibile, peso massimo di un titolo nel portafoglio, limite sul volume giornaliero e al massimo 50 ordini in attesa.
- Le API danno accesso solo al tuo conto. Non forniscono quotazioni, ricerche o storici: i prezzi compaiono solo per i titoli che possiedi e sono gli ultimi registrati da Fanta-Trade, che possono essere ritardati.
- È vietato usare le API per raccogliere o ridistribuire dati di mercato: in caso di abuso le chiavi vengono revocate e l'account può essere sospeso.