API gratis de paper trading cripto - Prueba tu bot de trading | MarginPad
MARGINPAD
Precios en vivo · ejecuciones en el servidor · sin depósito

El exchange que tu bot se puede permitir romper.

Una API de futuros en paper trading con precios reales en vivo. Tu bot abre posiciones apalancadas, deja órdenes límite y stop pendientes, mueve sus trailing stops y se liquida - todo se resuelve en nuestros servidores, en dólares simulados. El mismo código que vas a usar en real, sin ninguna de las consecuencias.

Sin tarjeta, sin KYC y sin depósito. Gratis para siempre a 120 peticiones por minuto: Pro cuesta $29 cuando un bot se convierte en cuatro. Los datos de mercado siguen sin clave en todos los planes.

marginpad.io/api/bot/v1en vivo ahora
# no key needed - run this right now
curl "https://marginpad.io/api/bot/v1/price?symbol=BTC"

{ "symbol": "BTC", "price": , "ts":  }
POST /openejemplo
curl -X POST ".../v1/open" -H "X-API-Key: mpb_…" \
  -d '{"symbol":"BTC","side":"long","margin_usd":100,
       "leverage":10,"trail_pct":1.5}'

{ "ok": true, "position": {
    "id": "bot_9f21…",   "entry": ,
    "liq_price": ,  "trail_pct": 1.5,
    "fee_round_trip_usd": 1.10 } }
24
endpoints, además de un WebSocket, webhooks y un servidor MCP
9
tablas reales de comisiones de exchanges con las que se pueden cobrar tus ejecuciones
1,000×
de apalancamiento máximo, en cualquier par USDT con precio en vivo
1.1M
peticiones atendidas para los bots que ya se ejecutan en ella
ESTADO motor de trading colector de liquidaciones tareas programadas leyendo /api/status… Estado completo e historial →
Inicio rápido

Tres llamadas para pasar de nada a una posición en vivo

La primera no necesita ninguna clave - pégala en una terminal antes de decidir nada. Cada ruta de abajo existe en una v1 congelada y una v2 con envoltorio; elige una y no se va a mover bajo tus pies.

PASO 01

Lee el mercado

GET /v1/price y /v1/klines no requieren clave y tienen CORS habilitado. Hasta 1,000 velas por llamada, siete temporalidades, paginadas hacia atrás con &end= para tanto historial como necesite un backtest.

PASO 02

Abre una posición

POST /v1/open ejecuta al precio en vivo con margen aislado y te devuelve el nivel de liquidación. Añade type:"limit" o "stop" para dejar una orden pendiente en el servidor, o dry_run para cotizar una operación sin escribir nada.

PASO 03

Deja que te lo envíen, no preguntes

Los stops, los objetivos, los trailing stops y las liquidaciones se liquidan de nuestro lado, sobre velas de 1 minuto, esté tu bot corriendo o no. Abre el WebSocket y el resultado te llega en unos dos segundos: es gratis en todos los planes, y es la diferencia entre un bot que reacciona y uno que espera a su siguiente vuelta.

# price (no key)
curl "https://marginpad.io/api/bot/v1/price?symbol=SOL"

# open a 20x long with $100 margin
curl -X POST "https://marginpad.io/api/bot/v1/open" \
  -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"symbol":"SOL","side":"long","margin_usd":100,"leverage":20}'

# check live P&L
curl "https://marginpad.io/api/bot/v1/positions" -H "X-API-Key: YOUR_KEY"

# close half, let the rest run
curl -X POST "https://marginpad.io/api/bot/v1/close" \
  -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"id":"POSITION_ID","pct":50}'

Autentícate con X-API-Key en cada llamada excepto /price, /klines y /time. Clientes oficiales, cero dependencias - npm install marginpad o pip install marginpad, o un solo archivo cada uno: marginpad.py · marginpad.js - REST, WebSocket, sondeo con ETag, reintento tras 429 y verificación de firma de webhook ya incluidos.

Obtén tu clave

Inicia sesión con un correo - sin contraseña, sin KYC. Las posiciones de tu bot persisten en tu cuenta, y una cuenta puede tener varias claves para que un bot de backtest y un bot en vivo nunca compartan el mismo límite de peticiones.

Tus claves, su uso y el book que opera cada una aparecen aquí en cuanto inicias sesión. Las claves son secretas - cualquiera que tenga una puede operar tu cuenta de paper trading.

Por qué no una testnet de un exchange

Una testnet te da precios falsos. Esto te da precios reales y dinero falso.

Los libros de órdenes de las testnets son poco profundos, sus precios se alejan del mercado real, y se reinician sin aviso. Aquí todo se cotiza con el feed multi-exchange en vivo sobre el que corren nuestros propios gráficos - solo los dólares son simulados.

Ejecución

El servidor mantiene tus órdenes

Las entradas límite, las entradas stop, los stop-loss, los objetivos y los trailing stops se evalúan todos de nuestro lado contra velas de 1 minuto. Tu bot puede estar offline, reiniciándose o siendo redesplegado y la ejecución igual cae en tu nivel, marcada con el minuto en que el mercado realmente lo alcanzó.

Costos

Comisiones que coinciden con tu factura real

Ambas patas pagan una comisión taker, cobrada como ida y vuelta al cerrar, con el funding acumulado entre marcas. Indica un exchange y la cuenta de paper trading se cobra según la tabla publicada de ese exchange menos nuestro descuento por referido - así que una estrategia de scalping falla aquí por la misma razón que fallaría allá.

Fallo

Una liquidación que se comporta

Margen aislado, 0.5% de mantenimiento, pérdidas limitadas a tu margen. Un trailing stop se mueve con el extremo de cada vela después de que esa vela se comprobó contra el stop vigente - así una barra nunca puede sacarte en un nivel que ella misma creó.

Idempotencia

Un timeout no es un misterio

Envía client_order_id y un reintento de apertura devuelve la posición que creó la primera llamada, marcada como idempotent: true. Cerrar también acepta uno. Este único campo es la diferencia entre un bot en el que confías sin vigilarlo y uno que tienes que vigilar de cerca.

Observabilidad

Push, no polling

Un WebSocket gratis empuja eventos de posiciones y marcas cada ~2 s; los webhooks envían la misma forma por POST a tu propia URL, firmados con HMAC y con reintentos, incluso cuando nada tuyo está conectado. Los ETag hacen que las peticiones que sigas haciendo salgan casi gratis.

Medición

Califica tu estrategia

Cada book tiene su propio diario, curva de equity y drawdown. /v1/report devuelve la tasa de acierto y el retorno por moneda, franja de apalancamiento, lado y hora, con un skill score - y no dice nada por debajo de ocho operaciones en lugar de inventar un patrón.

Planes

Free es el motor completo. Pagas para ejecutar más de una cosa a la vez.

Toda cuenta empieza en Free y tiene el producto completo: el motor de trading, comisiones reales de exchanges, entradas límite y stop, trailing stops, replay, books, el stream de WebSocket y todos los datos de mercado sin clave. Los planes de pago suben los límites y añaden dos cosas - webhooks y lecturas de mercado con IA. No se retiene nada más.

Free

$0

Construye y haz correr un bot de verdad sin pagar nada.

Una estrategiaun libro, un diario, un saldo
  • 3 claves · 50 posiciones abiertas · 120 peticiones/min
  • Motor completo: órdenes market, limit y stop, trailing stops, dry run y replay
  • Tarifas de 9 exchanges reales
  • Stream por WebSocket · MCP · datos de mercado sin clave
  • Trading report: totales + skill score

Pro

MÁS ELEGIDO
$29/mes

Para un bot que corre sin supervisión, y para comparar estrategias en vez de adivinar entre ellas.

5 estrategias, y el servidor te llamacinco libros separados · webhooks · 90 días de historial
  • 10 claves · 200 posiciones abiertas · 600 peticiones/min
  • Webhooks - 3 endpoints firmados, con reintentos, entregados aunque estés desconectado
  • Lecturas de mercado con IA - 50 al día a través de /v1/ai
  • Trading report con desgloses y hallazgos escritos
  • 90 días de historial de operaciones, report y curva de equity - Free guarda 30

Max

$79/mes

Para una flota - una familia de estrategias, cada una con su propio libro, ejecutándose al mismo tiempo.

20 estrategiasveinte libros · 15 webhooks
  • 30 claves · 500 posiciones abiertas · 2000 peticiones/min
  • 15 webhooks
  • 200 lecturas de mercado con IA al día
  • Todo lo de Pro

Business

$159/mes

Para una app o una mesa que opera en nombre de sus propios usuarios - una clave cada uno, un libro cada uno.

100 claves, 50 librosuna clave por usuario final, cada una separada
  • 1000 posiciones abiertas · 5000 peticiones/min
  • 50 webhooks
  • 500 lecturas de mercado con IA al día
  • Todo lo de Max
Los límites de peticiones raramente son el motivo para mejorar de plan, y preferimos decírtelo a venderte.

Medido en todas las claves de esta API durante las últimas dos semanas: el bot más activo en producción está en 46 peticiones por minuto - el 38% de lo que ya permite el plan Free - y ninguna clave ha sido limitada jamás, en ningún plan. Si estás elegiendo entre estos, elige según los libros, los webhooks y el historial, que es lo que realmente se agota. La capacidad está ahí cuando la necesitas. La mayoría de los bots nunca la tocan.

Lo que cambia con el planFreePro · $29Max · $79Business · $159
API de datos de mercado (/api/v1/*) con tu clave
60 / min por IP sin clave, en todos los planes
120 / min600 / min2000 / min5000 / min
Claves de API por cuenta31030100
Posiciones abiertas a la vez502005001000
Libros - un diario, saldo e informe separados por estrategia
el límite que la mayoría realmente alcanza
152050
Webhooks - firmados, con reintentos, entregados aunque estés desconectadoninguno31550
Lectura de mercado con IA /v1/aininguno50 al día200 al día500 al día
Historial de operaciones guardado
lo que /v1/trades, el report y la curva de equity todavía pueden ver
30 días90 días90 días90 días
Peticiones por minuto, por clave
medido: el bot en producción más activo usa 46, y nunca se ha limitado nada
12060020005000
Trading report /v1/reporttotales + skill score
hasta 30 días atrás
+ desgloses y hallazgos
hasta 90 días atrás
+ desgloses y hallazgos+ desgloses y hallazgos

En todos los planes, Free incluido: el motor de trading completo - órdenes market, limit y stop, trailing stops, cierres parciales, dry run y replay -, el stream por WebSocket, el servidor MCP, las tarifas de 9 exchanges reales, de $1 a $100,000 de margen por operación con hasta 1000× de apalancamiento, y todos los endpoints de datos de mercado sin clave a máxima velocidad. Los planes de pago mueven los topes. No desbloquean el producto.

Premium es otro producto. Una suscripción a MarginPad Premium desbloquea funciones del sitio web - los indicadores de gráfico exclusivos, el mapa de calor de liquidaciones, Ask-AI en los gráficos - y desde el 15 de septiembre de 2026 no cambia ni un solo límite de la API. Estos planes tampoco desbloquean aquellas funciones del sitio. Compra el que de verdad vayas a usar.

Los planes son mes a mes, pagados en cripto o directamente desde tu saldo de recompensas de MarginPad, y un mes comprado antes de tiempo se suma al que ya tienes en vez de reemplazarlo. Tus límites en vivo siempre están en GET /api/bot/v1/usage - limits, features, plan_until - para que un bot los pueda leer en vez de adivinar.

Lo que estás comprando, por escrito. La sección 9 de los términos cubre la API por su cuenta: qué incluye un plan y qué pasa el día en que termina, que nada se renueva automáticamente y que no hay nada que cancelar, a qué nos comprometemos y a qué no en materia de disponibilidad (no hay SLA - lo decimos así, y decimos a qué nos comprometemos en su lugar), treinta días de aviso antes de cualquier cambio incompatible, y que puedes construir y vender productos comerciales sobre esta API sin pedirnos permiso.

A tu bot se le avisa antes de que caduque el plan, no después. Cada respuesta con clave lleva X-MP-Plan, y en los últimos catorce días lleva además X-MP-Plan-Expires y X-MP-Plan-Days-Left. Regístralos y un bot desatendido puede avisarte él mismo; la misma cuenta atrás está en esta página y en /v1/usage. Un plan que se agota baja la clave a Free: nunca deja de responder.

Endpoints

Veinticuatro en total. Todo es JSON sobre HTTPS, con CORS activado y una sola cabecera. Cambia v1 por v2 en cualquier ruta para obtener el sobre {ok,data,ts}.

Datos de mercado - sin clave necesaria
GET/v1/price?symbol=BTCPrecio en vivo de cualquier par USDT. No necesita clave - pruébalo ahora mismo en tu navegador.
GET/v1/klines?symbol=BTC&interval=60Velas OHLC para tu estrategia (temporalidades: 1, 5, 15, 30, 60, 240, 1440 minutos). No necesita clave. Hasta 1000 velas por llamada, la más reciente al final - unas 16 horas en 1m, 3 días en 5m, 10 días en 15m, 41 días en 1h, 166 días en 4h y aproximadamente 3 años en 1d. Pasa &end=<unix ms> para paginar más atrás.
GET/v1/marketsTodo lo operable, con asset_class, max_leverage y taker_fee_pct por símbolo. Filtra con ?class=crypto|stock|forex|metal|index. Llama esto una vez al iniciar en lugar de descubrir los límites a prueba y error.
GET/v1/time?client_ts=…Reloj del servidor. No necesita clave. Pasa tu propio unix ms y recibes drift_ms de vuelta. Un bot que agrupa velas contra un reloj local desincronizado construye barras que nadie más ve, y eso es un infierno de depurar desde afuera.
bars = get(f"/api/bot/v1/klines?symbol=BTC&interval=1")
while len(all_bars) < wanted:
    end_ms = bars[0]["time"] * 1000          # oldest candle in hand
    bars = get(f"/api/bot/v1/klines?symbol=BTC&interval=1&end={end_ms}")
    if not bars: break
    all_bars = bars + all_bars
Trading
POST/v1/openAbre una posición simulada al precio en vivo. Body: {"symbol":"BTC","side":"long","margin_usd":100,"leverage":20,"sl":58000,"tp":66000} (sl/tp opcionales). Devuelve la posición, incl. su liq_price. Añade "dry_run":true para recibir la operación cotizada - entrada, cantidad, precio de liquidación y distancia, la comisión de apertura y la ida y vuelta completa - sin escribir nada. Usa el dry run para dimensionar una posición o para probar tu bot contra el motor real.
POST/v1/open trail_pcttrail_pct fija un stop que sigue el mejor precio visto desde la entrada a esa distancia porcentual, ajustado en el servidor: desde los extremos de la vela de 1 minuto en el barrido de cada minuto y desde el precio en vivo en cada lectura de /positions, así que sigue moviéndose mientras tu bot está offline y nunca se afloja. Un long abierto en 60,000 con trail_pct: 1 empieza con su stop en 59,400; cuando el precio marca 63,000, el stop queda en 62,370. Las posiciones llevan trail_pct y trail_hwm.
POST/v1/open type:"limit"La orden queda pendiente en el servidor en vez de ejecutarse ahora: {"symbol":"BTC","side":"long","type":"limit","limit_price":58000,"margin_usd":100,"leverage":20}. Se ejecuta a tu precio, no al precio en que el motor notó el cruce - la ejecución se busca en el máximo/mínimo de 1m, así que una mecha que retrocedió entre dos revisiones igual cuenta. Tu bot no tiene que estar corriendo. Un limit long debe estar por debajo del mercado y un limit short por encima; si no, obtienes limit_marketable en vez de una ejecución silenciosa a mercado.
POST/v1/open type:"stop"Una entrada de ruptura: un long por encima del mercado o un short por debajo, p. ej. {"symbol":"BTC","side":"long","type":"stop","limit_price":66000,"margin_usd":100,"leverage":10}. Mismo motor que una orden límite - se ejecuta en el nivel a partir de velas de 1m, con el navegador cerrado - pero el lado incorrecto se rechaza (stop_wrong_side) para que un stop y un límite nunca se confundan. sl, tp, trail_pct, client_order_id y dry_run aplican todos.
POST/v1/closeCierra una posición al precio en vivo. Body: {"id":"bp...","pct":50} - pct es opcional (100 por defecto); los cierres parciales dividen la posición exactamente igual que en el sitio.
POST/v1/close_allBotón de pánico - cierra todas las posiciones abiertas al precio en vivo en una sola llamada.
POST/v1/sltpMueve el stop-loss, el take-profit o el trailing stop de una posición abierta sin cerrarla. Body: {"id":"bot...","sl":63500,"tp":66000,"trail_pct":1.5} - envía null para borrar uno, omite un campo para mantenerlo. Los niveles se comprueban según el lado de la entrada. Antes de que existiera esto tenías que cerrar y reabrir para mover un stop, lo que cambiaba tu entrada y pagaba una ida y vuelta completa.
Órdenes pendientes
GET/v1/ordersTus órdenes pendientes, cada una con type: "limit" | "stop", más las últimas 20 que se ejecutaron, expiraron o se cancelaron - una ejecutada lleva el position_id que creó. Las órdenes son válidas hasta que se cancelan, expiran a los 30 días, y pueden quedar 20 pendientes por cuenta.
POST/v1/modify_orderCambia una orden pendiente en el mismo lugar: {"order_id":"lo...","limit_price":58500,"sl":57000,"tp":62000,"margin_usd":150,"leverage":10,"trail_pct":1} - envía solo lo que cambia. Antes de esto la única forma era cancelar y volver a crearla, lo que perdía el client_order_id de la orden. La dirección ahora se recalcula a partir del mercado y la marca de vela se reinicia, así que un nivel movido nunca puede ejecutarse en una barra impresa antes del cambio. Una orden ejecutada, cancelada o expirada responde 409.
POST/v1/cancel_orderCancela una orden pendiente. Body: {"order_id":"lo..."}. Si ya se ejecutó o se canceló, responde 409, así que un reintento nunca puede deshacer una ejecución.
Cuenta y estado
GET/v1/positions?status=openTodas tus posiciones con mark_price y unrealized_pnl_usd en vivo; las liquidaciones y el SL/TP alcanzados se resuelven automáticamente. ?status=open|closed recorta el body a lo que tu loop realmente lee; también se admiten ?since=<unix ms> e If-None-Match (304 cuando nada cambió).
GET/v1/accountResumen de la cuenta: posiciones abiertas, margen en uso, P&L no realizado en vivo, P&L realizado de toda la vida, ganadas/perdidas, tasa de acierto, más balance_usd, equity_usd, free_margin_usd y return_pct.
GET/v1/balanceSolo el dinero: saldo inicial, saldo, equity, margen en uso, margen libre, P&L no realizado. Más barato que /account cuando eso es todo lo que necesita tu lógica de tamaño de posición.
GET/v1/trades?limit=100&before=…El libro completo de operaciones cerradas con paginación. /positions está limitado a 100 filas; este pagina por toda la ventana de retención - sigue next_before hasta que vuelva null. Úsalo para calcular estadísticas de la estrategia sobre el registro completo en vez de una cola truncada.
GET/v1/accountsCada book de la cuenta con sus números de toda la vida y las claves ligadas a él.
GET/v1/equity?days=30&step_min=60La curva de equity de este book, en buckets, con max_drawdown_pct y el punto no realizado en vivo al final.
POST/v1/resetDevuelve este book a $10,000 con {"confirm":true}: los cierres se archivan, las órdenes se cancelan. Se rechaza con 409 open_positions_exist mientras haya algo abierto.
GET/v1/usageTu plan, tus límites, lo que queda en la ventana actual y usage_30d - llamadas por día por endpoint más refused (los 429), para que un bot pueda ver qué tan cerca corre de su límite.
Costos, inteligencia y entrega
GET/v1/feesA qué tabla de comisiones se cobran tus ejecuciones: los exchanges que modelamos con taker, maker, nuestro descuento por referido y la tasa efectiva, más tu valor por defecto actual. POST {"venue":"bybit"} fija el valor por defecto de la cuenta; fee_venue en /open lo anula para una posición. Ver comisiones por exchange.
GET/v1/report?days=30El trading report de la cuenta detrás de la clave, medido a partir de sus propias operaciones cerradas: totales y el skill score en todos los planes; tasa de acierto y retorno por moneda, franja de apalancamiento, lado, hora y día más los hallazgos escritos en API Pro y Max (locked[] indica qué se retiene). Cada hallazgo lleva el n en el que se apoya y no dice nada por debajo de 8 operaciones.
POST/v1/aiAPI PROLa lectura de IA del panel de gráficos, desde la API: {"symbol":"BTC","interval":"60","question":"Is this leaning long or short?"}. Mismo modelo, mismo prompt y la misma cuota de 50 al día que Ask-AI en el sitio. Recibes la answer, un plan analizado (sesgo, entrada, stop, objetivos) cuando el modelo vio un setup, y el brief sobre el que razonó - precio, movimiento, máximo/mínimo del swing, medias móviles, RSI, ATR, Bollinger, cierres recientes - para que puedas registrar exactamente qué miró. Educativo, no es asesoría financiera.
GET/v1/webhooksAPI PROEventos de trading enviados a tu URL, segundos después de que ocurren, esté o no conectado tu bot - ver webhooks. POST {"act":"add","url":"https://…"} registra uno, {"act":"test","id":…} envía un ping y devuelve el estado que respondió tu servidor, {"act":"delete","id":…} lo elimina.
POST/v1/replay2.6Corre tu bot a través de un día UTC pasado sobre nuestras propias velas de 1 minuto - ver replay.

Legible por máquina: especificación OpenAPI 3.1 con los esquemas completos de petición y respuesta · una referencia interactiva desde la que puedes disparar llamadas · el changelog (JSON).

Cómo funciona el motor

Ejecuciones y precios

Las órdenes se ejecutan al instante al precio real en vivo (feed multi-exchange - los mismos precios que nuestro Paper Trade). Las ejecuciones vía API no tienen slippage (las del sitio web sí), así que trata los precios de entrada como algo optimistas.

Comisiones de trading - lee esto antes de medir una estrategia

Cada posición paga una comisión taker en ambos lados, que se liquida en pnl_usd al cerrar. Se cobra como un viaje redondo: fee = qty × (entry + exit) × rate. El funding se acumula en posiciones mantenidas a través de las marcas de funding y se descuenta de la misma manera. Las posiciones abiertas ya muestran el P&L neto del viaje redondo en unrealized_pnl_usd, así que lo que ves es lo que se liquida.

MercadoComisión por ladoViaje redondo sobre un nocional de $10,000
Perpetuos de cripto0.055%$11.00
Acciones y ETFs0.02%$4.00
Metales e índices0.015%$3.00
Pares principales de forex0.008%$1.60

¿Prefieres la factura exacta del exchange en el que vas a operar? Cobra a la cuenta simulada según su tarifario, descuento por referido incluido. Por encima de unas 180× de apalancamiento, la tasa se reduce para que el viaje redondo nunca supere el 20% de tu margen. GET /v1/markets devuelve la tasa exacta y el tope de apalancamiento de cada símbolo. Las estrategias de horizonte corto viven o mueren por este número - un scalp que gana menos que el viaje redondo es una pérdida sin importar cuántas veces acierte.

Margen, liquidación, SL/TP, trailing

Margen aislado. Las pérdidas están limitadas a tu margen. El precio de liquidación usa una tasa de margen de mantenimiento del 0.5%; cuando el precio en vivo lo cruza, la posición se liquida automáticamente al precio de liquidación. Las órdenes de stop-loss y take-profit también se ejecutan automáticamente - cuando el precio cruza tu sl o tu tp (verificado contra las mechas de las velas de 1 minuto en el barrido por minuto, así que un pico que se retrajo igual cuenta), la posición se liquida a ese nivel. Un trailing stop avanza desde el mejor precio visto: en el barrido se mueve según el extremo de cada vela después de que esa vela ya fue verificada contra el stop vigente, así que una vela nunca puede sacarte a un nivel que ella misma creó.

Saldo y equity

Cada cuenta simulada empieza con un nominal de $10,000. /v1/account y /v1/balance reportan balance_usd, equity_usd y free_margin_usd para que puedas expresar los resultados como un rendimiento y no como una cifra en dólares sin más. Este saldo es un marcador, no una restricción: el margen no se le descuenta y una apertura nunca se rechaza por falta de fondos (margin_enforced: false). Dimensiona tus propias posiciones si quieres que la restricción sea real.

Headers de límite de peticiones

Cada respuesta lleva X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset (segundos epoch); un 429 añade Retry-After. Los límites se cuentan por clave, así que una segunda clave tiene su propio presupuesto. X-RateLimit-Scope indica si se aplicó el límite de la clave o el de la IP.

Las operaciones de tu bot en el sitio

Las posiciones abiertas vía la API viven en tu cuenta del lado del servidor, así que aparecen en Mis Operaciones, cuentan para las tablas de temporada y el XP, y alimentan tu informe de trading - el mismo informe que GET /v1/report devuelve al bot.

La API de streaming es gratis a propósito

Ponerla detrás de un muro de pago empujaría a todos los demás de vuelta al polling, que nos cuesta mucho más que el stream - así que los incentivos se alinean: usa el WebSocket, ganamos los dos. Los datos de mercado siguen sin clave y gratis para siempre; una clave solo sube su límite.

Realismo de ejecución, porque un backtest que te favorece no vale nada

Dos cosas en este motor son deliberadamente generosas, y es mejor nombrarlas que dejar que las descubras en una cuenta real. Una orden a mercado se ejecuta al precio en vivo, así que una posición nueva marca 0.00 de no realizado y la línea de entrada queda exactamente donde la pediste. Y el margen de mantenimiento es un 0.5% fijo, sin importar cuánto valga la posición. Para aprender a operar, ambas son la decisión correcta. Para poner a prueba una estrategia son optimistas, y cuanto mayor es el tamaño, más optimistas se vuelven.

Así que son interruptores, no supuestos fijos. Desactivados por defecto (nada de lo que ya construiste cambia) y, al activarlos, el precio de ejecución y el precio de liquidación se comportan como los haría comportarse un libro de órdenes real y una tabla de límites de riesgo real.

GET  /api/bot/v2/realism                     // your setting, the venue table and the whole tier ladder
POST /api/bot/v2/realism {"slippage": true, "margin_tiers": true, "margin_venue": "binance"}

# or per call, so one strategy can be tested both ways without touching the account
POST /api/bot/v1/open {"symbol":"BTC","side":"long","margin_usd":100,"leverage":10,
                       "slippage": true, "margin_tiers": true, "mmr_pct": 0.4}

Slippage

La ejecución se mueve en tu contra lo que cuesta recorrer un libro de órdenes real: 0.01% en las principales, 0.05% en criptomonedas menos líquidas, 0.005% en forex, 0.02% en acciones, metales e índices. Una compra paga de más, una venta vende de menos; nunca al revés.

Tramos de margen

El margen de mantenimiento sube con el tamaño nocional, igual que la tabla de límites de riesgo de un exchange, así que una posición grande se liquida antes: un requisito de mantenimiento más alto tolera menos movimiento en contra antes de cerrarte, que es justo lo que un exchange quiere para el tamaño grande. Este es nuestro modelo publicado y no la tabla de ningún exchange en particular, y GET /realism devuelve toda la escala; nunca deberías tener que deducirla a partir de un precio de liquidación.

Exchange de margen

La tasa de margen de mantenimiento publicada de qué exchange usar como base: Binance 0.40%, Bybit 0.50%, MEXC 0.10%, Kraken 0.60%, Hyperliquid 1.25%, Coinbase 1.33%. Esto mueve solo dónde se ubica el precio de liquidación, nunca el tamaño, las comisiones ni el P&L.

Una posición conserva el margen de mantenimiento con el que fue ejecutada, así que activar esto nunca reescribe una operación que ya tienes abierta, y cada cierre registra con qué se ejecutó. De ahí viene la columna Ejecuciones del arena: una tabla que clasifica bots debería decir cuáles jugaron en modo fácil.

Comisiones como en el exchange que realmente usarás

Por defecto, cada ejecución simulada paga la tasa de MarginPad: 0.055% por lado en cripto, ambas piernas, cobradas como round trip al cierre. Eso es un promedio justo, pero no es la factura exacta de nadie. Si ya sabes dónde correrá el bot de verdad, cobra a la cuenta simulada según la tabla de ese exchange - su tasa taker publicada, menos el descuento de referido que consigue un registro de MarginPad allí - así el forward test se liquida como lo hará la cuenta real:

GET  /api/bot/v2/fees                       // the table below + your current default
POST /api/bot/v2/fees  {"venue":"hyperliquid"}   // account default: every open from now on, site and API
POST /api/bot/v2/open  {"symbol":"BTC","side":"long","margin_usd":100,"leverage":10,"fee_venue":"bybit"}   // just this one
POST /api/bot/v2/open  {..., "dry_run":true}      // -> fee_venue, taker_fee_pct, fee_vs_marginpad_default_usd
PlataformaTakerNuestro descuento de referidoPagas por lado
Bybit0.055%20%0.044%
Binance0.050%20%0.040%
Bitget0.060%20%0.048%
Gate0.050%20%0.040%
Hyperliquid0.045%4% (código MARGINPAD)0.0432%
OKX · Kraken0.050%-0.050%
MEXC0.020%-0.020%
KuCoin0.060%-0.060%
Valor por defecto de MarginPadsin exchange elegido0.055%

Las tasas son el nivel base publicado de los exchanges y los descuentos que indicamos en /exchanges/; la API las devuelve con source para que sepas que son cifras publicitadas, no mediciones. Ambas piernas pagan la tasa taker (el motor de paper trading ejecuta a mercado; no se modela un rebate de maker en una entrada pendiente). Solo perpetuos cripto - acciones, forex, metales e índices mantienen las tasas de la clase de MarginPad sea cual sea el exchange. Las posiciones abiertas mantienen la tasa con la que se ejecutaron; el límite de apalancamiento extremo (un round trip nunca por encima del 20% del margen) sigue aplicando. La misma opción es el selector "Fees as on" en el formulario de Paper Trade, así un bot y las operaciones manuales de su dueño pagan comisiones idénticas.

Escribir un bot que no se rompa

Envía siempre client_order_id al abrir. Esta es la línea más importante de toda esta documentación. Sin ella, una petición que expira en la red te deja adivinando: ¿se abrió la posición o no? Reintentas y puede que tengas dos. Con ella, el reintento devuelve la posición que creó la primera llamada, marcada como idempotent: true:

POST /api/bot/v2/open
{"symbol":"BTC","side":"long","margin_usd":100,"leverage":5,"client_order_id":"sig-2026-08-19-1403"}

// first call            -> {"ok":true,"data":{"position":{"id":"bot...", ...}}}
// same call retried     -> {"ok":true,"data":{"position":{"id":"bot...", ...},"idempotent":true}}

Usa un valor que tu estrategia pueda regenerar de forma determinista - un id de señal, o el símbolo más la marca de tiempo de la vela. Los ids se recuerdan durante 7 días.

Cerrar también acepta uno. Envía client_order_id en /close y un reintento reporta lo que hizo la primera llamada (idempotent: true) en vez de un error que tienes que interpretar.

Envía symbol al cerrar. Cada fila de /positions ya lo lleva, así que agregarlo no cuesta nada y acorta de forma medible el cierre:

POST /api/bot/v2/close
{"id":"bot...","symbol":"BTC"}    // one price fetch, one round trip
{"id":"bot..."}                   // server must first look up which symbol to price

Nuestro almacén de trading es una única instancia fijada a una región, así que cada salto extra cuesta lo que cuesta el round trip hasta ella desde donde estés. Medido el 2026-08-19: cerca de 20 ms desde Europa pero 198 ms de mediana y 368 ms en el percentil 95 desde Singapur. Un feed de precio frío suma alrededor de 400 ms más, y sin la pista, un cierre en un par líquido podría terminar esperando a uno ilíquido en el mismo lote. Con la pista, un cierre es un salto más un precio ya en caché. Un symbol incorrecto o desactualizado no cuesta nada - el servidor lo nota y usa el respaldo.

No gastes tu presupuesto de peticiones en polling. La mayoría de los bots gastan el grueso de sus llamadas preguntando "¿cambió algo?". Dos cosas hacen que eso sea casi gratis:

# 1. state changes: send back the ETag, get 304 and an empty body when nothing moved
curl -H "X-API-Key: $KEY" -H 'If-None-Match: W/"1a2b3c-4"' \
     https://marginpad.io/api/bot/v1/positions

# 2. live prices: /price is KEYLESS, so it costs nothing against your 120/min
curl https://marginpad.io/api/bot/v1/price?symbol=BTC

El ETag cubre el estado estructural - ids de posición, estado, cantidad, stop, objetivo, salida - y deliberadamente no el precio de referencia (mark price), que se mueve en cada tick y haría que el ETag nunca coincidiera. Así que: consulta /positions para saber "si saltó mi stop", y consulta el /price sin clave para el P&L. Vigila X-RateLimit-Remaining y reduce la frecuencia según Retry-After.

WebSocket - deja de hacer polling por completo

Las posiciones y los precios te llegan automáticamente (push), así te enteras de que tu stop saltó en un par de segundos, en vez de esperar a tu próxima consulta:

wss://marginpad.io/api/bot/v2/stream?api_key=mpb_…

<- {"type":"welcome","data":{"channels":["positions","prices"],"tick_ms":2000},"ts":…}
<- {"type":"snapshot","data":{"positions":[…]},"ts":…}
<- {"type":"position","data":{"event":"closed","position":{…,"pnl_usd":-1.24}},"ts":…}
<- {"type":"prices","data":{"BTC":64770.1},"ts":…}

-> {"op":"subscribe","channels":["positions"]}     // prices off, events only
-> {"op":"ping"}                                    // <- {"type":"pong"}

Eventos: position con event: opened | updated | closed se dispara cuando algo realmente cambia - una ejecución, un stop que se mueve, un cierre, una liquidación. prices lleva el precio de referencia de tus símbolos abiertos en cada tick. El simple movimiento del precio de referencia nunca genera un evento position, así que el canal permanece en silencio cuando no ha pasado nada.

Los stops se resuelven más rápido mientras estás conectado. El stream impulsa el mismo barrido de SL/TP/liquidación del lado del servidor que usa la vía REST, con su cadencia de ~2s, en lugar de dejar tu posición a merced del barrido periódico.

Hasta 3 sockets simultáneos por cuenta, compartidos entre tus claves. Los sockets se reciclan cada 6 horas - al reconectar recibes un snapshot nuevo. Si la conexión se cae, trata el siguiente snapshot como la verdad en lugar de intentar reproducir los eventos perdidos.

Webhooks - eventos enviados a tu servidor API PRO

Medido antes de que esto existiera: el 89.5% de cada llamada a esta API era hacer polling a /positions y /account en busca de eventos. Un webhook invierte eso - te enviamos un POST cuando algo realmente ocurre, con la misma forma de Position que habría devuelto un poll, y funciona mientras tu bot está desconectado, reiniciando o desplegado en algún lugar que no puede mantener un socket.

POST /api/bot/v2/webhooks
{"act":"add","url":"https://bot.example.com/marginpad","events":["position.closed","position.liquidated","order.filled"]}

-> {"ok":true,"data":{"webhook":{"id":"wh…","secret":"whs_…","events":[…],"active":true}}}

# what arrives at your URL, seconds after the event:
POST https://bot.example.com/marginpad
X-MP-Event: position.closed        X-MP-Delivery: 1841
X-MP-Timestamp: 1789124656008      X-MP-Signature: sha256=3763dc5d…
{"event":"position.closed","ts":1789124656008,"hook_id":"wh…","data":{"id":"bot…","symbol":"BTC","status":"closed","pnl_usd":-0.08,"close_reason":"SL hit",…}}

Eventos: position.opened · position.updated (un stop o un objetivo se movió) · position.closed · position.liquidated · order.filled (lleva la posición que creó) · order.expired · order.cancelled. Omite events para recibirlos todos. Las operaciones hechas en el sitio en la misma cuenta también los disparan.

Verifica cada entrega. X-MP-Signature es sha256=HMAC_SHA256(secret, raw body) con el secreto que se devuelve al añadir el hook. Compáralo antes de parsear el cuerpo; ambos SDK traen verify_webhook / verifyWebhook. Responde 2xx en menos de 6 segundos: cualquier otra cosa se reintenta 5 veces con espera creciente (30 s, 1, 2, 4 min), y un hook se pausa tras 25 fallos seguidos; GET /webhooks muestra active, consecutive_failures y last_error para que veas por qué. Tres hooks por cuenta en Pro, quince en Max y cincuenta en Business; las entregas son de mejor esfuerzo, y el snapshot del WebSocket y /positions siguen siendo la fuente de verdad.

Pruébalo antes de escribir un receptor: registra https://marginpad.io/api/whsink/<any-token-you-choose> como la URL, y luego abre GET en esa misma dirección - devuelve las últimas 20 entregas (headers y body) durante 15 minutos. Sin autenticación; el token es el secreto.

Books - una estrategia, un resultado limpio 2.5

Un book es un diario, un balance, un report y una curva de equity separados dentro de tu cuenta. Crea una clave con el nombre de un book y cada llamada hecha con esa clave opera ese book; tu cuenta principal y tus otros books nunca lo ven. Las cuentas Free tienen un book además del principal, API Pro cinco, Max veinte y Business cincuenta.

POST /api/bot/key  {"act":"create","name":"rsi bot","book":"rsi"}   // key bound to the book "rsi"
GET  /api/bot/v1/accounts        // every book with lifetime numbers and its keys
GET  /api/bot/v1/account         // "account":"rsi" on a book key, "main" otherwise
POST /api/bot/v1/reset  {"confirm":true}   // this book back to $10,000: closes archived, orders cancelled
GET  /api/bot/v1/equity?days=30&step_min=60   // equity curve + max_drawdown_pct

Reset se rechaza con 409 open_positions_exist mientras haya algo abierto: cierra primero, luego reinicia. Las operaciones archivadas se conservan (nunca se borran), pero el informe, el registro, /trades y la curva de equity empiezan desde el reset, y un navegador que aún tenga el diario antiguo no puede devolverlo. Los webhooks se disparan en los hooks de la cuenta con "account":"rsi" en el payload, así que un solo receptor sirve a todos los books.

Replay - corre tu bot a través de un día pasado 2.6

Haz backtest con el mismo código que vas a correr en vivo. Inicia un replay de un día UTC pasado y las mismas rutas que tu bot ya llama actúan sobre un diario de replay separado, cotizado con las propias velas de 1 minuto de MarginPad en el cursor. Los stops, los objetivos y las liquidaciones se comprueban en cada vela entre dos de tus llamadas, sobre el máximo y el mínimo, con la misma matemática de comisiones y funding que en vivo. Nada de un replay llega a las tablas, a la arena o a tu informe.

POST /api/bot/v1/replay  {"symbol":"BTC","day":"2026-09-11","speed":120}   // 120 market seconds per real second: a day in 12 minutes
GET  /api/bot/v1/replay?interval=5&bars=120       // cursor, price, progress, candles up to the cursor
POST /api/bot/v1/open    {...}                        // acts on the replay book at the cursor price while the replay runs
POST /api/bot/v1/replay  {"act":"stop"}               // close at the cursor, get the summary, empty the replay journal

La velocidad va de 1 (tiempo real) a 600 (un día en 2.4 minutos). Un replay por clave a la vez, solo cripto, por ahora solo órdenes a mercado: lee el precio y las velas del replay desde GET /v1/replay, ya que el /v1/price y el /v1/klines sin clave siguen respondiendo datos en vivo.

Gestionar tus claves

Puedes tener varias claves en una cuenta - mantén separados un bot de backtest y un bot en vivo, y revoca uno sin tocar el otro. El uso y los límites de peticiones se cuentan por clave, así que cada una tiene su propio presupuesto y su propia línea en tus estadísticas. Con la sesión iniciada en el sitio, desde el navegador:

POST /api/bot/key  {"act":"list"}                          // all your keys
POST /api/bot/key  {"act":"create","name":"backtest-bot"}   // new key
POST /api/bot/key  {"act":"rename","key":"mpb_...","name":"live-bot"}
POST /api/bot/key  {"act":"revoke","key":"mpb_..."}         // usage history is kept

Una clave revocada devuelve 401 revoked_key. Las claves son secretas - cualquiera que tenga una puede operar tu cuenta de paper trading. Créalas y revócalas arriba de esta página.

Bot arena - una clasificación pública para bots

Toda cuenta o libro con al menos cinco cierres abiertos a través de la API en esta temporada de 14 días queda clasificado en /arena/ por PnL realizado neto de comisiones y funding, con tasa de acierto, rendimiento sobre la tarjeta de $10,000, ROE promedio y liquidaciones. Sin premios y sin nada que registrar: opera a través de la API y la tabla te incluye sola. JSON: GET /api/arena.

Úsalo desde Claude, ChatGPT o Cursor

MarginPad ejecuta un servidor remoto de MCP, así un asistente de IA puede leer los mercados y operar tu cuenta simulada directamente - sin código de conexión:

https://marginpad.io/mcp

Añádelo como servidor MCP remoto en tu cliente y pon el header X-API-Key: mpb_… si quieres las herramientas de paper trading. Las herramientas de datos de mercado no necesitan clave. Se exponen veintisiete herramientas: precios, velas, mercados, screener, funding, interés abierto, liquidaciones, fear and greed, el calendario económico, dos calculadoras, y apertura en paper (con trailing stops y dry run) / órdenes límite y stop / modificar / cancelar / cerrar / sltp / posiciones / órdenes / saldo / operaciones / informe / comisiones / cuentas / reset / equity / replay. GET /mcp en un navegador devuelve el descriptor del servidor.

Formato de respuesta - v1 y v2

/api/bot/v1/* está congelada. Sus cuerpos de respuesta no van a cambiar; los bots escritos contra ella siguen funcionando indefinidamente, y todavía recibe correcciones de errores.

/api/bot/v2/* es la misma API con el envoltorio que ya usan nuestros endpoints de datos - una sola forma predecible para el éxito y el fallo, para que escribas el parseo una sola vez:

{ "ok": true,  "data": { ... }, "ts": 1787200000000 }
{ "ok": false, "error": { "code": "unknown_symbol", "message": "No price feed for that symbol...", "symbol": "FOO" }, "ts": 1787200000000 }

Mismas rutas, mismos parámetros, misma clave - cambia v1 por v2 en la URL. Los valores de code de error son identificadores estables; message es para humanos y puede reformularse.

Códigos de error

En /v2, los fallos siempre tienen la forma {"ok":false,"error":{"code","message"},"ts"}. El code es un identificador estable sobre el que puedes ramificar tu lógica; el message es texto libre y puede cambiar de redacción. Algunos errores incluyen el valor que necesitas para corregir la llamada - sl_wrong_side y tp_wrong_side incluyen el precio en vivo.

CódigoHTTPQué hacer
missing_api_key / invalid_api_key401Envía una clave válida en X-API-Key.
revoked_key401Crea una clave nueva; esta fue revocada.
rate_limit429Espera hasta Retry-After. No reintentes de inmediato.
unknown_symbol404Consulta /v1/markets.
symbol_required, margin_usd_min_1, margin_usd_max_100000, id_required400Corrige el cuerpo de la solicitud.
sl_wrong_side / tp_wrong_side400La respuesta incluye live - coloca el nivel en el lado correcto de ese precio.
stop_wrong_side400Una entrada stop espera del lado de la ruptura (long por arriba, short por abajo). Usa type:"limit" para una entrada en retroceso.
trail_pct_invalid400trail_pct es un porcentaje entre 0.05 y 50; se rechaza, nunca se ajusta en silencio.
nothing_to_modify400/modify_order necesita al menos un campo.
plan_required402Los webhooks y /v1/ai necesitan un plan de pago. Todo lo demás de esta página está en Free. El cuerpo lleva plan_needed.
premium_required402Código heredado de plan_required, que se sigue enviando para que un bot de la 2.3 lo reconozca.
too_many_webhooks409Borra uno primero: tres hooks en Pro, quince en Max y cincuenta en Business.
bad_url / bad_event400Las URLs de los webhooks deben ser https en un host público; los nombres de eventos están listados en GET /webhooks.
ai_quota429Se usó la cuota diaria de IA (compartida con el sitio). Se reinicia a las 00:00 UTC.
too_many_open409Estás en el límite de posiciones abiertas de tu plan. Cierra algo.
already_closed400Inofensivo en un reintento - la posición ya está liquidada.
no_price400No hay precio en vivo en este instante; la posición sigue abierta. Reintenta.
unavailable503Transitorio. Reintenta con backoff.

API gratis de datos de liquidaciones DATOS EN VIVO

Liquidaciones en tiempo real agregadas de Binance, Bybit, OKX, BitMEX, Hyperliquid y Bitfinex - los datos detrás de nuestro feed Rekt y del Mapa de Calor de Liquidaciones, expuestos como JSON gratis. En otros lugares, datos comparables suelen estar detrás de un muro de pago de $300+/mes; aquí no hace falta ninguna clave API. Con caché en el edge y límite de peticiones, así que soporta sin problema a los bots que hacen polling.

GET/api/v1/feedLas liquidaciones más recientes en TODOS los símbolos rastreados - {events:[{ts, exchange, symbol, side, price, qty, notional}]}. Los eventos llegan aquí segundos después de que ocurren (caché de borde de 3s). Haz polling cada 3-5s.
GET/api/v1/liquidations/live?symbol=BTC&limit=400Eventos de liquidación crudos y recientes para un símbolo (BTC, ETH, SOL, XRP, DOGE, BNB, ADA, LINK, AVAX, LTC). side es long_liquidated o short_liquidated, notional es el tamaño en USD.
GET/api/v1/liquidations/recent?symbol=BTC&minutes=1440Histograma agrupado por tiempo (USD long vs short por bucket) para gráficos - la fuente exacta de las estadísticas de nuestro mapa de calor. minutes: hasta 43200 (30 días).
GET/api/v1/clusters?symbol=BTCClusters de liquidación modelados: niveles de precio donde se estima que hay liquidez de liquidación ahora mismo - {clusters:[{price, side, est_notional}]}. Se actualiza continuamente a partir del flujo de órdenes en vivo.

Se agradece la atribución (enlaza marginpad.io) pero no es obligatoria. La cobertura es ~70%+ del flujo de liquidaciones del mercado - los exchanges que mueven el precio. Uso educativo; sin SLA de uptime. ¿Solo quieres datos de mercado? Toda la superficie sin clave está documentada en la página de API gratis de datos cripto.

Backtest, paper, live - en ese orden

La mayoría de los bots de trading de cripto que parecen rentables en un backtest pierden dinero la primera semana que salen en vivo. Los backtests repiten velas históricas limpias: no detectan una condición de carrera en tu lógica de órdenes, un error de tamaño de posición que solo aparece tras una racha de pérdidas, ni un apalancamiento que crece en silencio más allá de lo que tu margen aguanta. El forward testing ejecuta el mismo bot, el mismo código, contra precios reales en vivo y en tiempo real. Si la estrategia tiene un fallo, aparece aquí, donde un error no te cuesta nada.

BacktestingPaper trading (esta API)Trading en vivo
PreciosVelas históricasPrecios reales en vivo, en tiempo realPrecios reales en vivo
RiesgoNingunaNinguno - dólares simuladosDinero real en juego
Detecta errores de lógicaRara vez - los datos reproducidos los ocultanSí - el mismo código que en vivoSí, pero cada error cuesta dinero
Control de sobreajusteNo - ajustaste la estrategia con estos mismos datosSí - datos futuros nunca vistos
CostoGratisGratis - comisiones & funding simuladosComisiones + pérdidas + funding
Ideal paraDescartar ideas rápidoPoner a prueba el bot antes de financiarloUna estrategia ya probada dos veces

El paso intermedio es el que la mayoría se salta, y el que les habría salvado. Haz backtest de una idea aquí, pruébala en forward testing con esta API y luego financia una cuenta.

Paso tres: dónde correr el bot de verdad

Todo en esta página se liquida en dólares simulados. Una vez que el bot ha sobrevivido semanas de forward testing, ese mismo código necesita una API de exchange para colocar órdenes reales. Recomendamos a quienes construyen bots dos exchanges, por razones distintas:

HLHyperliquidon-chain · enfocado en la API

Perpetuos en su propia cadena con una API REST y WebSocket pública, sub-cuentas que tienen cada una su propia wallet de API (el bot nunca tiene tu clave principal), funding cada hora y un libro de órdenes que cualquiera puede auditar on-chain. Lo más parecido a correr contra esta API pero con dinero real.

4%de descuento en comisiones de trading
con el código MARGINPAD
Únete a Hyperliquid →
BBybitcentralizado · libros más profundos

Formatos de REST y WebSocket parecidos a lo que acabas de escribir, una clave separada por sub-cuenta, y uno de los feeds de donde vienen nuestros propios precios. La opción por defecto cuando quieres un libro de órdenes centralizado con rampas de entrada en fiat.

Abrir una cuenta en Bybit →
Enlaces de referido - MarginPad puede ganar una comisión si abres una cuenta, sin ningún costo para ti; el descuento de Hyperliquid es su propio descuento por referido. La API de paper trading sigue siendo gratis de todos modos, y nada aquí requiere una cuenta en un exchange. Hyperliquid no está disponible para personas de EE. UU. según sus términos.

FAQ

¿Hay una API gratis de datos de liquidaciones / mapa de calor?

Sí - MarginPad expone liquidaciones en tiempo real agregadas de 9 exchanges como JSON gratis, sin necesidad de clave: /api/v1/feed, /api/v1/liquidations/live, /api/v1/liquidations/recent y /api/v1/clusters. Los feeds comparables suelen costar $300+/mes. Consulta la sección de datos de liquidaciones.

¿La API para bots de trading es realmente gratis?

Sí. Es un simulador de paper trading: las posiciones usan precios reales del mercado en vivo, pero sin dinero real. Inicia sesión con un email, genera una clave API y empieza a probar de inmediato. Los planes de pago solo elevan los límites.

¿Qué lenguajes de programación puedo usar?

Cualquier lenguaje que pueda hacer una petición HTTPS: Python, JavaScript/Node.js, Go, Rust, PHP o curl a secas. REST estándar, respuestas JSON, un único header X-API-Key.

¿Con qué monedas puede operar mi bot?

Cualquier par USDT con precio en vivo en los principales exchanges: BTC, ETH, SOL y cientos de altcoins, además de acciones de EE. UU., pares forex principales, metales e índices como perpetuos. Comprueba un símbolo con GET /api/bot/v1/price?symbol=SOL.

¿Necesito una cuenta en un exchange o hacer un depósito?

No. Sin depósito, sin wallet, sin KYC. Solo inicias sesión con un correo para que tu clave API y tus posiciones persistan entre sesiones.

¿Premium de MarginPad incluye la API?

No. La Bot API tiene sus propios planes y una suscripción Premium no cambia ningún límite de la API. Premium desbloquea funciones en el sitio web; los planes de la API desbloquean límites de la API. Se compran por separado.

Guías y tutoriales