Ontwikkelaars

Swapoon-API

Openbare endpoints voor assets en koersen, plus een geauthenticeerde partner-API.

Inleiding

De Swapoon-API bestaat uit twee delen. De openbare endpoints zijn alleen-lezen en vereisen geen authenticatie — ze geven de ondersteunde assets en actuele koersen. De partner-API wordt met een sleutel geauthenticeerd en maakt het mogelijk echte wissels aan te maken die automatisch aan uw partneraccount worden toegeschreven. Alle endpoints bevinden zich onder de basis-URL hieronder en geven JSON terug.

https://swapoon.io/api/v1

Antwoordformaat

Openbare endpoints verpakken hun payload in een success/data-envelop. De partner-API geeft een plat object terug met een ok-boolean en de relevante velden op het hoogste niveau.

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

Openbare endpoints

GET /pairs openbaar

Lijst met ondersteunde assets, met limieten en decimalen.

// 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 openbaar

Actuele wisselkoersen (gecachet). Basisasset is XMR.

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

Partner-API

Overzicht

Met de partner-API integreert u Swapoon in uw eigen site of app. Elke wissel die u er via aanmaakt, wordt automatisch aan uw partneraccount toegeschreven: u verdient 0.5 % van het volume van elke afgeronde wissel, handmatig uitbetaald in Monero. Genereer uw API-sleutel in uw partnerdashboard.

Authenticatie

Geef uw geheime sleutel bij elk verzoek mee als Bearer-token. Houd hem privé — ermee kunnen echte wissels worden aangemaakt. Lekt een sleutel, trek hem dan in en genereer een nieuwe via uw dashboard (de oude stopt onmiddellijk met werken).

# Header Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Aan serverzijde wordt alleen de hash van de sleutel bewaard. De volledige sleutel wordt eenmalig getoond, bij het aanmaken.

GET /coins auth

Ondersteunde tokens met hun keys, symbolen, chains en decimalen.

// 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

Offerte voor een paar. Queryparameters: from, to (tokenkeys uit /coins), amount (in leesbare eenheden).

# 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

Maakt een echte wissel aan, toegeschreven aan uw account. Body (JSON): from, to, amount, to_address en optioneel refund_address. Stuur de storting naar het teruggegeven adres.

# 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..." }

Maakt een echte transactie met echte middelen aan. Controleer to_address zorgvuldig — wissels zijn onomkeerbaar.

GET /swaps/{id} auth

Status van een van uw wissels. Alleen wissels die met uw sleutel zijn aangemaakt, zijn zichtbaar.

// 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" }

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

GET /swaps auth

Gepagineerde geschiedenis van uw wissels. Queryparameter: per_page (1–50, standaard 20).

// 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

Uw partnertotalen: kliks, wissels, volume, verdiend en in afwachting.

// 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 } }

Fouten

Fouten gebruiken standaard HTTP-statuscodes met een ok: false-body.

401API-sleutel ontbreekt of is ongeldig.
404Wissel niet gevonden (of niet van u).
422Ongeldige parameters, onbekende token of bedrag buiten de grenzen.
429Verzoeklimiet overschreden.

Verzoeklimieten

Openbare endpoints: 120 verzoeken per minuut per IP. Partner-leesverzoeken: 120 per minuut per sleutel. Wissel aanmaken (POST /swaps): 10 per minuut per sleutel, omdat daarbij echte middelen worden verplaatst. Bij overschrijding volgt een 429.

Vragen?

Neem contact op als u met de Swapoon-API bouwt.

Neem contact op