Desarrolladores

API de Swapoon

Puntos de acceso públicos para activos y tipos, más una API de afiliados autenticada.

Introducción

La API de Swapoon tiene dos partes. Los puntos de acceso públicos son de solo lectura y no requieren autenticación: enumeran los activos admitidos y los tipos vigentes. La API de afiliados se autentica mediante clave y permite crear intercambios reales que se acreditan automáticamente en su cuenta de afiliado. Todos los puntos de acceso se encuentran bajo la URL base indicada más abajo y devuelven JSON.

https://swapoon.io/api/v1

Formato de respuesta

Los puntos de acceso públicos envuelven su carga útil en una estructura success/data. La API de afiliados devuelve un objeto plano con un booleano ok y los campos pertinentes en el nivel superior.

// Public endpoints { "success": true, "data": { ... } } // Affiliate API { "ok": true, ... } // Affiliate API — error { "ok": false, "error": "Human-readable message" }

Puntos de acceso públicos

GET /pairs público

Lista de activos admitidos, con sus límites y decimales.

// 200 OK { "success": true, "data": { "pairs": [ { "key": "XMR", "symbol": "XMR", "name": "Monero", "chain": "Monero", "decimals": 12, "min": "0.15", "max": "500", "min_usd": 25 } ] } }
GET /rates público

Tipos de cambio actuales (en caché). El activo base es XMR.

// 200 OK { "success": true, "data": { "rates": [ ... ], "updated_at": "2026-06-30T12:00:00Z", "base": "XMR" } }

API de afiliados

Visión general

La API de afiliados le permite integrar Swapoon en su propio sitio o aplicación. Cada intercambio que cree a través de ella se acredita automáticamente en su cuenta de afiliado: usted gana el 0.5 % del volumen de cada intercambio completado, abonado manualmente en Monero. Genere su clave de API desde su panel de afiliado.

Autenticación

Envíe su clave secreta como token Bearer en cada solicitud. Manténgala privada: permite crear intercambios reales. Si una clave se filtra, revóquela y regenérela desde su panel (la anterior deja de funcionar de inmediato).

# Header Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

En el servidor solo se almacena el hash de la clave. La clave completa se muestra una sola vez, al crearla.

GET /coins auth

Tokens admitidos con sus claves, símbolos, cadenas y decimales.

// 200 OK { "ok": true, "coins": [ { "key": "XMR", "symbol": "XMR", "name": "Monero", "chain": "Monero", "decimals": 12 }, { "key": "BTC", "symbol": "BTC", "name": "Bitcoin", "chain": "Bitcoin", "decimals": 8 } ] }
GET /rate auth

Cotización para un par. Parámetros de consulta: from, to (claves de token de /coins), amount (unidades legibles).

# Request GET /api/v1/rate?from=XMR&to=BTC&amount=0.5 // 200 OK { "ok": true, "from": "XMR", "to": "BTC", "amount_in": 0.5, "amount_out": "0.00251", "rate": 0.00502, "min": 0.15, "max": 500, "eta": "15–30 min" }
POST /swaps auth

Crea un intercambio real, acreditado en su cuenta. Cuerpo (JSON): from, to, amount, to_address y, opcionalmente, refund_address. Envíe el depósito a la dirección devuelta.

# Request body { "from": "XMR", "to": "BTC", "amount": 0.5, "to_address": "bc1q...", "refund_address": "4A..." // optional } // 201 Created { "ok": true, "id": "a1b2c3d4e5f6...", "status": "awaiting_deposit", "deposit_address": "4B...", "deposit_amount": "0.5", "deposit_symbol": "XMR", "expected_output": "0.00251", "to_symbol": "BTC", "to_address": "bc1q..." }

Crea una transacción real con fondos reales. Verifique bien to_address: los intercambios son irreversibles.

GET /swaps/{id} auth

Estado de uno de sus intercambios. Solo son visibles los intercambios creados con su clave.

// 200 OK { "ok": true, "id": "a1b2c3d4e5f6...", "status": "completed", "from_symbol": "XMR", "to_symbol": "BTC", "deposit_address": "4B...", "deposit_amount": "0.5", "expected_output": "0.00251", "to_address": "bc1q...", "created_at": "2026-07-08T09:56:56Z" }

Estados: awaiting_deposit, deposit_detected, deposit_confirmed, exchanging, sending, completed, expired, refunded.

GET /swaps auth

Historial paginado de sus intercambios. Parámetro de consulta: per_page (1–50, 20 por defecto).

// 200 OK { "ok": true, "swaps": [ { "id": "a1b2c3d4...", "status": "completed", "from_symbol": "XMR", "to_symbol": "BTC", "deposit_amount": "0.5", "expected_output": "0.00251", "created_at": "2026-07-08T09:56:56Z" } ], "page": 1, "pages": 3, "total": 42 }
GET /stats auth

Sus totales de afiliado: clics, intercambios, volumen, ganado y pendiente.

// 200 OK { "ok": true, "stats": { "code": "cryptojoe", "clicks": 128, "swaps": 42, "volume_usd": 15230.50, "earned_usd": 76.15, "paid_usd": 50.00, "pending_usd": 26.15, "payout_mode": "xmr_manual", "active": true } }

Errores

Los errores utilizan códigos de estado HTTP estándar con un cuerpo ok: false.

401Clave de API ausente o no válida.
404Intercambio no encontrado (o no es suyo).
422Parámetros no válidos, token desconocido o importe fuera de los límites.
429Límite de peticiones superado.

Límites de peticiones

Puntos de acceso públicos: 120 peticiones por minuto y por IP. Lecturas de afiliado: 120 por minuto y por clave. Creación de intercambios (POST /swaps): 10 por minuto y por clave, ya que mueve fondos reales. Superar un límite devuelve 429.

¿Preguntas?

Escríbanos si está desarrollando con la API de Swapoon.

Contáctenos