Разработчикам

API Swapoon

Публичные точки доступа для активов и курсов, а также партнёрский API с аутентификацией.

Введение

API Swapoon состоит из двух частей. Публичные точки доступа работают только на чтение и не требуют аутентификации — они возвращают список поддерживаемых активов и текущие курсы. Партнёрский API использует аутентификацию по ключу и позволяет создавать реальные обмены, которые автоматически засчитываются на ваш партнёрский счёт. Все точки доступа расположены по базовому URL, указанному ниже, и возвращают JSON.

https://swapoon.io/api/v1

Формат ответа

Публичные точки доступа помещают данные в оболочку success/data. Партнёрский API возвращает плоский объект с булевым полем ok и соответствующими полями на верхнем уровне.

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

Публичные точки доступа

GET /pairs public

Список поддерживаемых активов с лимитами и знаками после запятой.

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

Текущие обменные курсы (из кеша). Базовый актив — XMR.

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

Партнёрский API

Обзор

Партнёрский API позволяет встроить Swapoon в ваш сайт или приложение. Каждый созданный через него обмен автоматически засчитывается на ваш партнёрский счёт: вы получаете 0.5 % от объёма каждого завершённого обмена, выплаты производятся вручную в Monero. Создайте ключ API в партнёрском кабинете.

Аутентификация

Передавайте секретный ключ в виде токена Bearer при каждом запросе. Храните его в тайне — он позволяет создавать реальные обмены. При утечке отзовите и перевыпустите ключ в кабинете (прежний ключ перестаёт работать немедленно).

# Header Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

На сервере хранится только хеш ключа. Полный ключ показывается один раз, при создании.

GET /coins auth

Поддерживаемые токены с их ключами, символами, сетями и знаками после запятой.

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

Расчёт для пары. Параметры запроса: from, to (ключи токенов из /coins), amount (в обычных единицах).

# 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

Создать реальный обмен, засчитываемый на ваш счёт. Тело запроса (JSON): from, to, amount, to_address и необязательный refund_address. Отправьте депозит на возвращённый адрес.

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

Создаёт реальную транзакцию с реальными средствами. Внимательно проверьте to_address — обмены необратимы.

GET /swaps/{id} auth

Статус одного из ваших обменов. Видны только обмены, созданные с вашим ключом.

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

Статусы: awaiting_deposit, deposit_detected, deposit_confirmed, exchanging, sending, completed, expired, refunded.

GET /swaps auth

История ваших обменов с постраничной разбивкой. Параметр запроса: per_page (от 1 до 50, по умолчанию 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

Ваши партнёрские итоги: клики, обмены, объём, заработано и ожидает выплаты.

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

Ошибки

Ошибки используют стандартные коды состояния HTTP с телом ok: false.

401Ключ API отсутствует или недействителен.
404Обмен не найден (или принадлежит не вам).
422Неверные параметры, неизвестный токен или сумма вне допустимых пределов.
429Превышен лимит запросов.

Лимиты запросов

Публичные точки доступа: 120 запросов в минуту с одного IP. Партнёрские запросы на чтение: 120 в минуту на ключ. Создание обмена (POST /swaps): 10 в минуту на ключ, поскольку операция затрагивает реальные средства. При превышении возвращается 429.

Остались вопросы?

Напишите нам, если вы разрабатываете на базе API Swapoon.

Связаться с нами