API v1

API Documentation

Base URL: https://arkonswap.io/api/v1

Introduction

The ArkonSwap API is a JSON REST API for fetching live rates, creating cross-chain swaps, and earning integrator fees. It's designed for aggregators, wallets, and any service that wants to offer private, non-custodial swaps.

All responses follow a consistent envelope:

// success
{ "success": true, "data": { ... } }

// error
{ "success": false, "error": { "code": "...", "message": "..." } }

Authentication

Most endpoints require an API key passed in the X-API-Key header. The /rates and /pairs endpoints are public and need no key. Get a key by registering (see below).

X-API-Key: ak_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Register a partner key

POST/registerpublic

Self-register to receive an API key. The key is returned once — store it securely.

FieldTypeNotes
partner_name requiredstringYour service name
partner_urlstringYour website
fee_percentnumber0–5, your integrator fee
fee_addressstringEVM payout address
fee_address_solstringSolana payout address
fee_address_btcstringBitcoin payout address
curl -X POST https://arkonswap.io/api/v1/register \
  -H "Content-Type: application/json" \
  -d '{
    "partner_name": "CoolAggregator",
    "fee_percent": 0.5,
    "fee_address": "0xYourEvmAddress"
  }'

Get rates

GET/ratespublic

Returns all current exchange rates (all pairs against XMR), refreshed every minute.

curl https://arkonswap.io/api/v1/rates
{
  "success": true,
  "data": {
    "rates": [
      { "from": "BTC", "to": "XMR", "rate": "191.43", "eta": "25 min" }
    ],
    "updated_at": "2026-06-03 12:40:00",
    "base": "XMR"
  }
}

Get pairs

GET/pairspublic

Returns all supported tokens with their chain, decimals and minimum swap value.

curl https://arkonswap.io/api/v1/pairs

Get a quote

POST/quoteAPI key
FieldTypeNotes
from requiredstringSource token key (e.g. BTC)
to requiredstringDestination token key (e.g. XMR)
amount requirednumberHuman amount to send
curl -X POST https://arkonswap.io/api/v1/quote \
  -H "X-API-Key: ak_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "from": "BTC", "to": "XMR", "amount": 0.01 }'

Create an order

POST/orderAPI key
FieldTypeNotes
from requiredstringSource token key
to requiredstringDestination token key
amount requirednumberHuman amount to send
to_address requiredstringDestination wallet address
curl -X POST https://arkonswap.io/api/v1/order \
  -H "X-API-Key: ak_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "BTC",
    "to": "XMR",
    "amount": 0.01,
    "to_address": "4AdUndXHHZ..."
  }'

Returns a deposit_address and deposit_amount. Send exactly that amount to complete the swap.

Order status

GET/order/{id}?verify={address}API key

The verify parameter (the order's destination address) is required to access order details — this prevents unauthorized enumeration of orders.

curl "https://arkonswap.io/api/v1/order/ABC123?verify=4AdUndXHHZ..." \
  -H "X-API-Key: ak_live_xxxxx"

Possible statuses: awaiting_deposit, deposit_detected, deposit_confirmed, executing_swap, completed, expired, failed, refunding, refunded.

Integrator fees

Set fee_percent (0–5%) when registering, along with payout addresses. Your fee is automatically deducted from each swap routed through your key and sent to your configured address. Fees on EVM and XMR swaps go to fee_address, Solana to fee_address_sol, Bitcoin to fee_address_btc.

Rate limits

EndpointLimit
/rates, /pairs120 / min / IP
/register5 / 10 min / IP
/quote, /order, /order/{id}60 / min / key

Need higher limits? Reach out via Telegram.

Error codes

HTTPCodeMeaning
400invalid_token / verify_requiredBad request parameters
401unauthorizedMissing or invalid API key
404not_foundOrder not found / verify failed
422fee_address_requiredFee set without payout address
429Rate limit exceeded
502quote_failed / order_failedUpstream temporarily unavailable

Ready to integrate? Register a key and start swapping. Questions? Ping us on Telegram.