1 · Environments

production
Base URL (DEV) https://api.rabbit.io
Auth x-api-key HTTP header with your API key
API docs (openapi) https://api.rabbit.io/rabbit-swap-api-docs
Rate limit 10 req/seq per IP

Contact [email protected] or the live chat and we’ll create your an API key.

NOTE: if you call API without API key, we will not assign the created swaps to you


2 · Lifecycle at a glance

0. GET /asset               → fetch asset list (prettyTicker, protocol, etc.)
1. GET /estimateSwap        → get quote & estimationId
2. POST /swap               → obtain payToAddress
3. Send coins               → on-chain transfer
4. GET /swap                → poll until status is 'completed'

3 · Endpoints you’ll call

Purpose Method & Path Notes
Asset picker GET /asset Build UI dropdowns; response gives prettyTicker and protocol.

Want a ready to use sophisticated React JS swap form (npm package, no iframes)? contact us at [email protected] | | Quote | GET /estimateSwap | Ticker rule: use prettyTicker+protocol if protocol differs (e.g. USDTERC20, USDCSOL), otherwise just prettyTicker (e.g. BTC, ETH TRX). | | Create swap | POST /swap | Same ticker rule, plus the estimationId from quoting step. | | Track swap | GET /swap?swapIds= | Accepts one or many swapIds. |

All parameters/fields: see api docs.


4 · Swap status values

Code Meaning
waiting_for_payment Swap created; coins not detected yet.
confirming Payment tx seen; awaiting confirmations.
payment_received Confirmations reached.
verifying Compliance/risk review — contact support in chat (< 0.3 % of swaps).
exchanging Our side is converting assets.
completed Exchange done; payout tx sent.
refunded Funds returned.
expired Payment never arrived before expiresAt.
failed Terminal error - contact the support.

5 · Minimal examples

bash
# 0. Fetch assets
curl "$BASE/asset?count=100" | jq .

# 1. Quote 0.5 BTC → ETH
curl "$BASE/estimateSwap?tickerFrom=BTC&tickerTo=ETH&amountCoins=0.5&ipAddress=1.1.1.1"

# 2. Create swap (estimationId=EST123)
curl -X POST "$BASE/swap" -H 'Content-Type: application/json' -d '{
  "estimationId":"EST123",
  "tickerFrom":"BTC",
  "tickerTo":"ETH",
  "amountCoins":"0.5",
  "ipAddress":"203.0.113.5",
  "recipientAddress":"0x92C…"
}'

# 3. Poll status
curl "$BASE/swap?swapIds=SWAP456"


6 · Support

Channel Link Typical reply
Live chat for any questions https://rabbit.io 1–2 minutes (max 10 min)
Email for partnership questions **[email protected]** Same rapid response
Email to settle specific swaps/transactions [email protected] Same rapid response

Happy building! 🚀