Exwell API Documentation

Every request must include the query parameter key — the API key from the partner cabinet. Key format: 32 characters A–Z a–z 0–9. Missing or invalid key → 401.

API URI https://exwell.io/v1/api — same as https://exwell-swap-api.mananalraskakaip.workers.dev/partner/v1/
Response json, except the XML rate feed
Auth key only. The site refId parameter is not read by the API
Commission paid only if Partner Fee Rate is set in the cabinet. Otherwise the swap completes with no payout
Errors 401 — no key (Key parameter is required!) or unknown key (User does not exist!). Other codes are listed per method

Swap

Call order

  1. /currencies — available coins
  2. /pairs — open pairs
  3. /rate — quote and limits for an amount
  4. /validate-address — payout address
  5. /exchange-create — order + deposit address
  6. User sends the deposit
  7. /exchange-status — poll until a final status

GET /currencies — Currency list

Available coins, networks, min/max, and memo/tag names.

https://exwell.io/v1/api/currencies?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200

{
  "XMR": {
    "coinName": "Monero",
    "minamount": 20.01,
    "maxamount": 23724,
    "tagname": "",
    "network": "Monero",
    "available": true
  },
  "XRP": {
    "coinName": "XRP",
    "minamount": 6180.12,
    "maxamount": 7343941,
    "tagname": "TAG",
    "network": "Ripple",
    "available": true
  }
}

If tagname is not empty, the tag is required (destinationTag / refundTag).

GET /pairs — Pair list

Open pairs: key is the source currency, value is the list of destinations.

https://exwell.io/v1/api/pairs?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200

{
  "ZEC": ["BTC", "USDT", "USDC", "ETH", "BTCLIGHTNING", "USDTTRC20"],
  "DASH": ["USDC", "BTC", "ETH", "USDCTRC20"]
}

GET /rate — Quote for an amount

Current pair rate. Does not include the miner withdrawal fee.

https://exwell.io/v1/api/rate?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&from=ZEC&to=BTC&amount=1000

Parameters

Parameter Type Example
from string ZEC
to string BTC
amount float 1000
fix optional boolean false (default)

Response 200

{
  "minamount": 100.4,
  "maxamount": 121334,
  "rate": 0.9835947505534923,
  "withdrawalFee": "0.002 BTC",
  "fix": false,
  "result": true
}

withdrawalFee is an approximate withdrawal fee; it floats.

GET /validate-address — Address validation

Checks that the address is valid for the payout currency.

https://exwell.io/v1/api/validate-address?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&currency=USDT&address=0x651bf10b18d1ecaf7753cfe2457ac1aa23de540b

Parameters

Parameter Type Example
currency string USDT
address string 0x651bf10b18d1ecaf7753cfe2457ac1aa23de540b

Response 200

{
  "result": true
}

GET /exchange-create — Create a swap

Creates an order. All fields are query parameters (GET).

https://exwell.io/v1/api/exchange-create?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&from=XMR&to=BTC&amount=26.4509&fix=false&destinationAddress=33NWPY7z4vHzMnuyzRJg6hUvMXDw5Y7v9o&refundAddress=87mEgetMnPSMMKsAFRRf7UMKLSdzdke99Rk63PYZv5hYeUmx29gEd9PKbwiQ7ZsYv7AJMKZ3515E

Parameters

Parameter Type Example
from string XMR
to string BTC
amount float 26.4509
fix boolean false
destinationAddress string 33NWPY7z4vHzMnuyzRJg6hUvMXDw5Y7v9o
destinationTag optional string
refundAddress optional string 87mEgetMnPSMMKsAFRRf7UMKLSdzdke99Rk63PYZv5hYeUmx29gEd9PKbwiQ7ZsYv7AJMKZ3515E
refundTag optional string

Response 200

{
  "id": "43c393b8-1dc6-40e3-ad83-d721bf467ac1",
  "from": "XMR",
  "to": "BTC",
  "expectedAmountFrom": "26.4509",
  "expectedAmountTo": "0.24118351760777",
  "depositAddress": "87mEgetMnPSMMKsAFRRf7UMKLSdzdke99Rk63PYZv5hYeUmx29gEd9PKbwiQ7ZsYv7AJMKZ3515E",
  "depositTag": ""
}

GET /exchange-status — Swap status

Current order state. Poll until the status is final.

https://exwell.io/v1/api/exchange-status?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&id=43c393b8-1dc6-40e3-ad83-d721bf467ac1

Parameters

Parameter Type Example
id string 43c393b8-1dc6-40e3-ad83-d721bf467ac1

Response 200

{
  "status": "deposit_received",
  "from": "XMR",
  "to": "BTC",
  "depositAddress": "87mEgetMnPSMMKsAFRRf7UMKLSdzdke99Rk63PYZv5hYeUmx29gEd9PKbwiQ7ZsYv7AJMKZ3515E",
  "depositTag": "",
  "depositTxId": "",
  "destinationAddress": "33NWPY7z4vHzMnuyzRJg6hUvMXDw5Y7v9o",
  "destinationTag": "",
  "refundAddress": "87mEgetMnPSMMKsAFRRf7UMKLSdzdke99Rk63PYZv5hYeUmx29gEd9PKbwiQ7ZsYv7AJMKZ3515E",
  "refundTag": "",
  "expectedAmountFrom": "26.4509",
  "expectedAmountTo": "0.24118351760777",
  "amountFrom": "26.4509",
  "date": "01.06.2023 10:24:30",
  "txId": null,
  "amountTo": null,
  "result": true
}

Statuses:
waiting_deposit — waiting for the deposit
deposit_received — deposit received
exchanging — exchanging
sending — sending
success — completed
time_expired — deposit wait timed out
failed — error
sending_failed — send failed
reverted — funds returned to the client

Rates in XML format

Rate feed for all open pairs. Not the same as JSON /rate (one pair and amount). Response application/xml: root <rates>, items <item>.

v1 and v2 return the same data. The difference is the min/max tag names (limits on the from currency):

v1 v2
URL https://exwell.io/v1/api/rate.xml https://exwell-swap-api.mananalraskakaip.workers.dev/partner/v2/rate.xml
minimum <minamount> <frommin>
maximum <maxamount> <frommax>

Other tags are the same: from, to, in, out, amount, param. The site prefix /v1/api does not rewrite to v2.

Call order

  1. Put key into the feed URL
  2. Fetch XML on your schedule

GET /rate.xml — XML rates v1

Same public prefix /v1/api.

https://exwell.io/v1/api/rate.xml?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200 application/xml

<rates>
  <item>
    <from>BTC</from>
    <to>USDTTRC20</to>
    <in>1</in>
    <out>68420.15</out>
    <minamount>0.001</minamount>
    <maxamount>5</maxamount>
    <amount>150000</amount>
    <param>floating</param>
  </item>
</rates>
Tag Type Meaning
from string source currency
to string destination currency
in int input coefficient, always 1
out string rate: how much to for in units of from
minamount string minimum on from
maxamount string maximum on from
amount string reserve
param string always floating

GET /partner/v2/rate.xml — XML rates v2

Same pairs and values as v1. Limits use frommin / frommax. The site prefix /v1/api does not rewrite here — call the API host.

https://exwell-swap-api.mananalraskakaip.workers.dev/partner/v2/rate.xml?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200 application/xml

<rates>
  <item>
    <from>BTC</from>
    <to>USDTTRC20</to>
    <in>1</in>
    <out>68420.15</out>
    <frommin>0.001</frommin>
    <frommax>5</frommax>
    <amount>150000</amount>
    <param>floating</param>
  </item>
</rates>
Tag Type Meaning
from string source currency
to string destination currency
in int input coefficient, always 1
out string rate: how much to for in units of from
frommin string minimum on from (v1: minamount)
frommax string maximum on from (v1: maxamount)
amount string reserve
param string always floating

Wallet

Cabinet addresses (main and test) and the USDT balance inside the wallet resource. TRX Energy rental is charged from this balance, not on-chain from the client address. TRON test network is Nile (response TESTNET).

Call order if you need energy

  1. GET /wallet — MAINNET and TESTNET addresses
  2. Deposit USDT TRC20 to the address for that network
  3. GET /wallet/balance — enough USDT?
  4. Then the TRX Energy section

GET /wallet — Main and test wallets

Partner addresses: MAINNET and TESTNET (Nile).

https://exwell.io/v1/api/wallet?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200

[
  {
    "address": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
    "type": "MAIN",
    "blockchain": "TRON",
    "network": "MAINNET"
  },
  {
    "address": "TYsbVzAGJrDvDm8LxngY1uBYxHzpQKWzRv",
    "type": "MAIN",
    "blockchain": "TRON",
    "network": "TESTNET"
  }
]

GET /wallet/balance — Balance

Available balance inside the resource. address is yours, from GET /wallet.

https://exwell.io/v1/api/wallet/balance?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&address=TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw&asset=USDT

Parameters

Parameter Type Example
address string your TRON address
asset optional string USDT (default)

Response 200

{
  "balance": 12.50,
  "asset": "USDT"
}

Errors: 404 — not your address.

GET /wallet/transaction — Wallet transactions

Deposits and charges. Energy rental is HOLD first, then SUCCESS.

https://exwell.io/v1/api/wallet/transaction?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&address=TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw&pageNumber=0&pageSize=10

Parameters

Parameter Type Example
address string your TRON address
pageNumber optional int 0
pageSize optional int 10

Response 200

{
  "content": [
    {
      "serviceType": "TRX_ENERGY",
      "amount": -0.86,
      "createdAt": "2026-08-26T12:00:00",
      "asset": "USDT",
      "status": "SUCCESS"
    }
  ],
  "totalElements": 1,
  "totalPages": 1,
  "number": 0,
  "size": 10
}

serviceType: DEPOSIT, TRX_ENERGY. status: HOLD, SUCCESS.

Errors: 404 — not your address.

TRX Energy

TRON energy rental. Charged from the cabinet USDT balance. Query network=TESTNET — Nile; MAINNET or omit network — mainnet (estimate, rent, list, and order status). Look up a Nile order with network=TESTNET.

Call order

  1. /wallet/trx-energy/info — limits
  2. /wallet/trx-energy/energy-required — price; address is the energy recipient
  3. POST /wallet/trx-energy — order, status PROCESS immediately
  4. GET /wallet/trx-energy/{orderId} — poll PROCESSSUCCESS / ERROR

GET /wallet/trx-energy/info — Rental limits

Periods and min/max energy. Balance is not here — see /balance.

https://exwell.io/v1/api/wallet/trx-energy/info?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

No extra parameters.

Response 200

{
  "periods": ["H1", "D1", "D3", "D30"],
  "minEnergy": 10000,
  "maxEnergy": 1000000
}

periods is informational. There is no period field on the rental body.

GET /wallet/trx-energy/energy-required — Estimate

Rental price. address is the energy recipient (does not have to be the partner wallet). Without energyAmount the server estimates that address’s need. Omit network — MAINNET.

https://exwell.io/v1/api/wallet/trx-energy/energy-required?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&address=TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw&energyAmount=65000&network=MAINNET

Parameters

Parameter Type Example
address string recipient TRON address
energyAmount optional int 65000
network optional string MAINNET or TESTNET

Response 200

{
  "recipientAddress": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
  "energyRequired": 65000,
  "price": 0.86,
  "priceSymbol": "USDT"
}

price is the amount charged, markup already included.

Errors: 409 — bad address or amount out of limits.

POST /wallet/trx-energy — Rent energy

Creates an order. Status is PROCESS immediately — poll by id on the same network (omit network and status is looked up on MAINNET).

https://exwell.io/v1/api/wallet/trx-energy?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&network=MAINNET

Body application/json

{
  "recipients": [
    {
      "address": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
      "energy": 65000
    }
  ]
}

Parameters

Parameter Type Example
network optional string MAINNET or TESTNET
recipients body object[] [{"address":"TAddr...","energy":65000}]

Response 200

[
  {
    "id": 48,
    "recipientAddress": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
    "rentEnergy": 65000.0,
    "sellingPrice": 0.86,
    "sellingPriceSymbol": "USDT",
    "status": "PROCESS",
    "createdAt": "2026-08-26T12:00:00"
  }
]

Errors: 409 — insufficient balance; amount out of limits (see info); bad address; more than 10 recipients.

GET /wallet/trx-energy/{orderId} — Order status

Poll a single order. Omit network or pass MAINNET — mainnet; Nile — network=TESTNET.

https://exwell.io/v1/api/wallet/trx-energy/48?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN

Parameters

Parameter Type Example
orderId path int 48
network optional string MAINNET or TESTNET

Response 200

{
  "id": 48,
  "recipientAddress": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
  "rentEnergy": 65000.0,
  "sellingPrice": 0.86,
  "sellingPriceSymbol": "USDT",
  "status": "SUCCESS",
  "createdAt": "2026-08-26T12:00:00"
}

Statuses: PROCESS — delegating, SUCCESS — energy on the address, ERROR — failed.

Errors: 404 or 409Order not found.

GET /wallet/trx-energy — Order list

Rental history. Same path as POST — GET method. network=TESTNET — Nile; omit network or MAINNET — mainnet.

https://exwell.io/v1/api/wallet/trx-energy?key=Kq8WmP2nXrT5vLcYhB7jFdZuAs4gE9oN&pageNumber=0&pageSize=10&network=MAINNET

Parameters

Parameter Type Example
pageNumber optional int 0
pageSize optional int 10
network optional string MAINNET or TESTNET

Response 200

{
  "content": [
    {
      "id": 48,
      "recipientAddress": "TExWKszFWYTKZH8LYiovAPKzS3L9MLZ4kw",
      "rentEnergy": 65000.0,
      "sellingPrice": 0.86,
      "sellingPriceSymbol": "USDT",
      "status": "SUCCESS",
      "createdAt": "2026-08-26T12:00:00"
    }
  ],
  "totalElements": 1,
  "totalPages": 1,
  "number": 0,
  "size": 10
}

If you have integration questions, we will be happy to help.

© 2022-2026 exwell.io