Ontwikkelaars

Fanta-Trade API

Koppel je programma of bot aan je virtuele portefeuille: kopen en verkopen, orders en stop-loss plaatsen, portefeuille en transacties opvragen. Dezelfde spelregels, geen echt geld.

1. Maak een sleutel

Log in en ga naar Profiel › API: geef de sleutel een naam en kopieer hem meteen, want hij wordt maar één keer getoond. Je kunt er maximaal 3 hebben en ze op elk moment intrekken.

2. Authenticatie

Stuur de sleutel bij elk verzoek mee in de Authorization-header (of X-API-Key). Antwoorden zijn JSON: gegevens in «data», fouten in «error» met een code en een bericht.

curl -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/account

Basis-URL: https://www.fanta-trade.eu/api/v1 · bedragen en koersen in euro, datums in ISO 8601-formaat

3. Endpoints

GET /api/v1/account

Je account: cash, belegde waarde, totale waarde, rendement sinds de start, aantal posities en openstaande orders.

Voorbeeldantwoord
{"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

Open posities met aantal, gemiddelde aankoopprijs, laatste koers, waarde, winst of verlies en gewicht in de portefeuille.

Voorbeeldantwoord
{"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

Je transacties, de nieuwste eerst (maximaal 100 per verzoek).

Voorbeeldantwoord
{"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

Kopen of verkopen tegen de huidige koers. Velden: symbol (Yahoo-formaat, bv. ENI.MI, AAPL), side (buy of 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
Voorbeeldantwoord
{"data":{"message":"…","transaction":{"id":902,"symbol":"ENI.MI","side":"buy","quantity":100.0,"price":15.48,"amount":1548.0}}}

GET /api/v1/orders

Openstaande orders. type is buy_limit (kopen als hij daalt), buy_stop (kopen als hij stijgt), stop_loss (verkopen als hij daalt) of take_profit (verkopen als hij stijgt).

Voorbeeldantwoord
{"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

Plaatst een «kopen tegen / verkopen tegen»-order: wordt uitgevoerd als de koers price (in euro) bereikt. Een verkoop onder de huidige koers is een stop-loss, erboven een winstneming. expiry: 1w, 1m (standaard) of 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
Voorbeeldantwoord
{"data":{"id":56,"symbol":"ENI.MI","side":"sell","type":"stop_loss","quantity":100.0,"price":14.5,"status":"open"}}

DELETE /api/v1/orders/{id}

Annuleert een openstaande order.

curl -X DELETE -H "Authorization: Bearer ft_la_tua_chiave" https://www.fanta-trade.eu/api/v1/orders/56
Voorbeeldantwoord
{"data":{"id":56,"status":"cancelled"}}

4. Fouten

HTTPCodeWanneer
400invalid_symbol · invalid_side · invalid_quantity · invalid_priceOntbrekende of ongeldige velden.
401unauthorizedOntbrekende, verkeerde of ingetrokken sleutel.
404not_foundOnbekend endpoint, of order niet gevonden of al gesloten.
422trade_rejected · order_rejectedDe transactie voldoet niet aan de spelregels (cash, limieten, koers niet beschikbaar): het bericht legt uit waarom.
429rate_limited · trade_limit · symbol_limitEen van de limieten hieronder is overschreden. De Retry-After-header geeft aan hoeveel seconden je moet wachten.

5. Limieten en correct gebruik

  • 30 verzoeken per minuut en 1.000 per dag per sleutel (de X-RateLimit-*-headers tonen hoeveel er over zijn).
  • 50 transacties en orders per dag, inclusief geweigerde.
  • Maximaal 10 verschillende effecten per dag die je nog niet bezit om te kopen, verkopen of orders op te plaatsen; met effecten die je bezit kun je vrij handelen.
  • Alle spelregels gelden: beschikbare cash, maximaal gewicht van een effect in de portefeuille, dagelijkse volumelimiet en maximaal 50 openstaande orders.
  • De API geeft alleen toegang tot je eigen account. Hij levert geen koersen, zoekopdrachten of historiek: koersen verschijnen alleen voor effecten die je bezit en zijn de laatst door Fanta-Trade opgeslagen, die vertraagd kunnen zijn.
  • Het is verboden de API te gebruiken om marktgegevens te verzamelen of te herverdelen: bij misbruik worden sleutels ingetrokken en kan het account worden geschorst.