Desarrolladores

API de Fanta-Trade

Conecta tu programa o tu bot a tu cartera virtual: compra y vende, introduce órdenes y stop loss, consulta cartera y movimientos. Mismas reglas del juego, sin dinero real.

1. Crea una clave

Inicia sesión y ve a Perfil › API: ponle un nombre a la clave y cópiala enseguida, porque solo se muestra una vez. Puedes tener hasta 3 y revocarlas en cualquier momento.

2. Autenticación

Envía la clave en cada petición con la cabecera Authorization (o X-API-Key). Las respuestas son JSON: los datos en «data», los errores en «error» con un código y un mensaje.

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

Dirección base: https://www.fanta-trade.eu/api/v1 · importes y precios en euros, fechas en formato ISO 8601

3. Endpoints

GET /api/v1/account

Tu cuenta: liquidez, valor invertido, valor total, rentabilidad desde el inicio, número de posiciones y de órdenes pendientes.

Ejemplo de respuesta
{"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

Las posiciones abiertas con cantidad, precio medio de compra, último precio, valor, ganancia o pérdida y peso en la cartera.

Ejemplo de respuesta
{"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

Tus movimientos, del más reciente (como máximo 100 por petición).

Ejemplo de respuesta
{"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 vende al precio actual. Campos: symbol (formato Yahoo, p. ej. 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
Ejemplo de respuesta
{"data":{"message":"…","transaction":{"id":902,"symbol":"ENI.MI","side":"buy","quantity":100.0,"price":15.48,"amount":1548.0}}}

GET /api/v1/orders

Las órdenes pendientes. type vale buy_limit (compra si baja), buy_stop (compra si sube), stop_loss (vende si baja) o take_profit (vende si sube).

Ejemplo de respuesta
{"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

Introduce una orden «comprar a / vender a»: se ejecuta cuando el precio alcanza price (en euros). Una venta por debajo del precio actual es un stop loss, por encima una toma de beneficios. expiry: 1w, 1m (predeterminado) 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
Ejemplo de respuesta
{"data":{"id":56,"symbol":"ENI.MI","side":"sell","type":"stop_loss","quantity":100.0,"price":14.5,"status":"open"}}

DELETE /api/v1/orders/{id}

Cancela una orden pendiente.

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

4. Errores

HTTPCódigoCuándo
400invalid_symbol · invalid_side · invalid_quantity · invalid_priceCampos ausentes o no válidos.
401unauthorizedClave ausente, incorrecta o revocada.
404not_foundEndpoint inexistente, u orden no encontrada o ya cerrada.
422trade_rejected · order_rejectedLa operación no respeta las reglas del juego (liquidez, límites, precio no disponible): el mensaje explica el motivo.
429rate_limited · trade_limit · symbol_limitSe ha superado uno de los límites de abajo. La cabecera Retry-After indica cuántos segundos esperar.

5. Límites y uso correcto

  • 30 peticiones por minuto y 1.000 al día por clave (las cabeceras X-RateLimit-* muestran cuántas quedan).
  • 50 operaciones y órdenes al día, incluidas las rechazadas.
  • Como máximo 10 valores distintos al día que no tengas ya en cartera sobre los que comprar, vender o introducir órdenes; con los que ya tienes puedes operar libremente.
  • Se aplican todas las reglas del juego: liquidez disponible, peso máximo de un valor en la cartera, límite de volumen diario y como máximo 50 órdenes pendientes.
  • La API solo da acceso a tu cuenta. No ofrece cotizaciones, búsquedas ni históricos: los precios solo aparecen para los valores que tienes y son los últimos registrados por Fanta-Trade, que pueden tener retraso.
  • Está prohibido usar la API para recopilar o redistribuir datos de mercado: en caso de abuso las claves se revocan y la cuenta puede suspenderse.