Instant exchange API

Basic Info

All request should use the domain:

API URL:


Protocol: HTTPS only.
Authentication: All endpoints require valid API credentials.
All request to be executed using HTTPS and following parameters should be used in headers:
Headers
Acceptapplication/json
Content-Typeapplication/json

Authorization process

For all requests, an authorization key is required. It grants access to all functions.
These parameters should be included in the headers to configure API authorization:
Request parameters:
Headers
x-api-public-key{publicKey}
x-api-signature{signature}
x-api-payload{payload}
signature = hex(HMAC_SHA512(payload, key=api_secret))
In the payload field of the request header, you must pass the exact API name of the request you are making. For example, for a request to api/private/get-all-coins, the payload value should be get-all-coins and so on.
Payload meaning:
API EndpointPayload
/api/private/get-all-coinsget-all-coins
/api/private/get-coin-networkget-coin-network
/api/private/exchange-coinexchange-coin
/api/private/get-transactionget-transaction
/api/private/create-transactioncreate-transaction

Available Currencies List

GET:

This API endpoint provides a paginated list of all available currencies.
Parameters:
NameTypeRequired or optionalDescription
pagenumberoptionalCurrent page
limitnumberoptionalLimit per page
searchstringoptionalSearch by currency name
methodnumberoptionalMethod 1 we get an array with coins for deposit. Method 2 we get an array with coins for output
depositCoin stringoptionalDeposit coin
receiveCoinstringoptionalReceive coin
depositNetworkstringoptionalDeposit network
receiveNetworkstringoptionalReceive network
Successful response fields:
NameTypeDescription
pagination:objectPagination
    pageCountnumberPage count
    totalCountnumberTotal items
depositCoins / withdrawCoinsarrayList with coins
    imagestringСoin image
    subNamestringСoin sub name
    namestringCoin name
    networksobjectCoin networks
        deposits / withdrawsarrayDeposits or withdraws networks
            subNamestringNetwork name
            memoNeededbooleanNetwork has extra ID
Example request:

GET:

Example response:
{
  "pagination": {
    "pageCount": 52,
    "totalCount": 260
  },
  "depositCoins": [
    {
      "image": "example/USDT.png",
      "subName": "USDT",
      "name": "TetherUS",
      "networks": {
        "deposits": [
          {
            "subName": "TRX",
            "memoNeeded": true
          }
        ]
      }
    }
  ]
}

Retrieve Currency Networks

GET:

This API endpoint provides the networks associated with a specific currency code.
Parameters:
NameTypeRequired or optionalDescription
coinstringrequiredCurrency code (Coin sub name)
Successful response fields:
NameTypeDescription
depositarrayList with deposit networks
withdrawsarrayList with withdraws networks
    subNamestringSub name network
Example request:

GET:

Example response:
{
  "deposit": [
    {
      "subName": "ERC20"
    }
  ],
  "withdraws": [
    {
      "subName": "ERC20"
    }
  ]
}

Exchange Pair Information

GET:

This API endpoint provides the amount the user will receive, the current exchange rate
Parameters:
NameTypeRequired or optionalDescription
amountstringrequiredAmount of currency you are going to send or get
coinFromstringrequiredCurrency to exchange from
coinTostringrequiredCurrency to exchange to
networkFromstringoptionalNetwork to exchange from
networkTostringoptionalNetwork to exchange to
lastSourcestringrequiredWe transfer the last input where the data is entered, to the deposit input or the receive input ( for example deposit or receive)
typeSwapstringrequired1 - fixed 2 -float
Successful response fields:
NameTypeDescription
pairstringExchange pair
amountnumberAmount sent
exchangeRatenumberExchange rate
receivenumberAmount you will receive
minAmountnumberMin deposit
maxAmountnumberMax deposit
Example request:

GET:

Example response:
{
  "pair": "ETH_USDT",
  "amount": "10",
  "exchangeRate": 2462.1076313215262,
  "receive": 24008.541206617498,
  "minAmount": 0.03,
  "maxAmount": 2100
}

Retrieve Transaction Information

GET:

This API endpoint provides details about a specific transaction.
Parameters:
NameTypeRequired or optionalDescription
idstringrequiredTransaction ID
Successful response fields:
NameTypeDescription
typeobjectAn object containing the type of exchange (fixed or floating rate).
    typeSwapnumberA type of swap where 1 - Fixed, 2 - Float
pairsobjectAn object containing information about coin pairs for deposit and withdrawal
    deposit/receiveobjectAn object containing information about a coin for deposit and withdrawal
        coinobjectAn object containing information out of a coin for deposit and withdrawal
            namestringCoin name (eg BTC, XMR)
            valuenumberThe number of coins that will be sent or received
            networkstringThe network in which the transaction takes place (eg ERC20, XMR)
            fullNamestringThe full name of the coin
        addressstringAddress to send or receive coins
        memostringMemo for transaction
receiveTransactionobjectAn object containing information about the received transaction
    txIdstringReceive transaction id
    addressstringAddress to receive coins
    receivedTimestringThe time the transaction was received
    gettingInTheBlockstringThe time of receiving the first sending confirmation
    amountnumber | nullNumber of coins sending
    confirmationnumber | nullNumber of confirmations for the transaction for sending
    feesnumber | nullFees for sending funds
feesobjectAn object containing information about commissions
    feeNodeDepositnumberFees for deposit
swapTimeobjectAn object containing the exchange time
    endstringTransaction completion time
    durationstringDuration of the transaction
    startstringTransaction start time
orderNumberstringThe unique identifier of the transaction
statusnumberNew - 9; Confirmation - 1; Exchanging - 3; Success - 4, 12; Overdue - 5; Error - 6; Pause - 10; Frozen - 11; Refund - 13
txIdstringDeposit transaction id
riskScorenumber | nullRisk assessment for the transaction
receivedTimestringDeposit receiving time
gettingInTheBlockstringThe time of receiving the first deposit confirmation
confirmationnumber | nullNumber of confirmations for the transaction for deposit
Example request:

GET:

Example response:
{
  "type": {
    "typeSwap": 2
  },
  "pairs": {
    "deposit": {
      "coin": {
        "name": "BTC",
        "value": 0.00047,
        "network": "BTC",
        "fullName": ""
      },
      "address": "bc1qt3uurp5yjl0s9hpc834nkxx37f99hn5xfqt8x3",
      "memo": ""
    },
    "receive": {
      "coin": {
        "name": "XMR",
        "value": 0.37555349507259705,
        "network": "XMR",
        "fullName": ""
      },
      "address": "49ALvhFRnJm4n1JsBG2fiAcrpPXeGEUvrLCvUjXNr9TqLk74pmj9X7s9aprrzRNNWHUgRrYbmysN7Xs8UJijXumPTjV5WVb",
      "memo": ""
    }
  },
  "receiveTransaction": {
    "txId": "",
    "address": "",
    "receivedTime": "",
    "gettingInTheBlock": "",
    "amount": null,
    "confirmation": null,
    "fees": null
  },
  "fees": {
    "feeNodeDeposit": 0.00009912
  },
  "swapTime": {
    "end": "",
    "duration": "",
    "start": "1728573590155"
  },
  "orderNumber": "RBGTSM",
  "status": 3,
  "txId": "a5398b56b451405bbd2804839100e29709e6f79f993b1ba2e466e952ab7940e4",
  "riskScore": null,
  "receivedTime": "1726833220",
  "gettingInTheBlock": "1728574893",
  "confirmation": 5
}

Initiate Transaction

This API endpoint creates a new transaction, generates an address for fund transfer, and returns the transaction details.

POST:

NameTypeRequired or optionalDescription
depositCoinstringrequiredCoin from deposit
depositAmountnumberrequiredAmount from deposit
depositNetworkstringrequiredAddress from deposit
receiveAddressstringrequiredAddress from receive
receiveCoinstringrequiredCoin from receive
receiveNetworkstringrequiredNetwork from receive
typeSwapnumberrequired1 - fixed, 2 -float
refundAddressstringoptionalRefund address
memostringoptionalIf needed memo
lastSourcestringrequiredDeposit or receive
Successful response fields:
NameTypeDescription
typeobjectAn object containing the type of exchange (fixed or floating rate)
    typeSwapnumberA type of swap where 1 - Fixed, 2 - Float
pairsobjectAn object containing information about coin pairs for deposit and withdrawal
    deposit/receiveobjectAn object containing information about a coin for deposit and withdrawal
        coinobjectAn object containing information out of a coin for deposit and withdrawal
            namestringCoin name (eg BTC, XMR)
            valuenumberThe number of coins that will be sent or received
            networkstringThe network in which the transaction takes place (eg ERC20, XMR)
            fullNamestringThe full name of the coin
        addressstringAddress to send or receive coins
        memostringMemo for transaction
receiveTransactionobjectAn object containing information about the received transaction
    txIdstringReceive transaction id
    addressstringAddress to receive coins
    receivedTimestringThe time the transaction was received
    gettingInTheBlockstringThe time of receiving the first sending confirmation
    amountnumber | nullNumber of coins sending
    confirmationnumber | nullNumber of confirmations for the transaction for sending
    feesnumber | nullFees for sending funds
feesobjectAn object containing information about commissions
    feeNodeDepositnumberFees for deposit
swapTimeobjectAn object containing the exchange time
    endstringTransaction completion time
    durationstringDuration of the transaction
    startstringTransaction start time
orderNumberstringThe unique identifier of the transaction
statusnumberNew - 9; Confirmation - 1; Exchanging - 3; Success - 4, 12; Overdue - 5; Error - 6; Pause - 10; Frozen - 11; Refund - 13
txIdstringDeposit transaction id
riskScorenumber | nullRisk assessment for the transaction
receivedTimestringDeposit receiving time
gettingInTheBlockstringThe time of receiving the first deposit confirmation
confirmationnumber | nullNumber of confirmations for the transaction for deposit
Example request:

POST:

Example response:
{
  "type": {
    "typeSwap": 2
  },
  "pairs": {
    "deposit": {
      "coin": {
        "name": "BTC",
        "value": 0.00047,
        "network": "BTC",
        "fullName": ""
      },
      "address": "bc1qt3uurp5yjl0s9hpc834nkxx37f99hn5xfqt8x3",
      "memo": ""
    },
    "receive": {
      "coin": {
        "name": "XMR",
        "value": 0.37555349507259705,
        "network": "XMR",
        "fullName": ""
      },
      "address": "49ALvhFRnJm4n1JsBG2fiAcrpPXeGEUvrLCvUjXNr9TqLk74pmj9X7s9aprrzRNNWHUgRrYbmysN7Xs8UJijXumPTjV5WVb",
      "memo": ""
    }
  },
  "receiveTransaction": {
    "txId": "",
    "address": "",
    "receivedTime": "",
    "gettingInTheBlock": "",
    "amount": null,
    "confirmation": null,
    "fees": null
  },
  "fees": {
    "feeNodeDeposit": 0.00009912
  },
  "swapTime": {
    "end": "",
    "duration": "",
    "start": "1728573590155"
  },
  "orderNumber": "RBGTSM",
  "status": 3,
  "txId": "a5398b56b451405bbd2804839100e29709e6f79f993b1ba2e466e952ab7940e4",
  "riskScore": null,
  "receivedTime": "1726833220",
  "gettingInTheBlock": "1728574893",
  "confirmation": 5
}

Errors

Amount to exchange is below the possible min amount to exchange
This error occurs when the amount to exchange is below the possible min amount to exchange
{
  "statusCode": 400,
  "message": "Amount to exchange is below the possible min amount to exchange"
}
Amount to exchange is higher the possible max amount to exchange
This error occurs when the amount to exchange is higher the possible max amount to exchange
{
  "statusCode": 400,
  "message": "Amount to exchange is higher the possible max amount to exchange"
}
Invalid withdrawal address:
This error occurs when the specified withdrawal address is invalid or not supported.
{
  "statusCode": 400,
  "message": "Invalid withdrawal address."
}
Errors about incorrectly passed keys:
Errors about incorrectly passed keys or keys not passed will look like this: Example of an error with the id key
{
  "message": [
    "id should not be null or undefined",
    "id must be a string",
    "id should not be empty"
  ],
  "error": "Bad Request",
  "statusCode": 400
}
Invalid public key:
This error occurs when an invalid or unknown x-api-public-key is passed in the request headers.
{
  "statusCode": 403,
  "message": "Invalid public key."
}
Invalid payload:
This error occurs when an invalid or unknown x-api-payload is passed in the request headers.
{
  "statusCode": 403,
  "message": "Invalid payload."
}
Invalid signature:
This error indicates that the value provided in the x-api-signature header does not match the expected signature. Refer to the documentation on how to correctly generate the x-api-signature.
{
  "statusCode": 403,
  "message": "Invalid signature."
}
Not found:
This error occurs when the requested data is not found. Please check if the input data is correct.
{
  "statusCode": 404,
  "message": "Not found."
}
You have exceeded your request limit. Please try again later:
This error occurs when the partner key (x-api-public-key) has exceeded the allowed number of requests within a specific time period. Please try again later.
{
  "statusCode": 429,
  "message": "You have exceeded your request limit. Please try again later."
}
Error retrieving coins data:
A server-side error indicating that coin data could not be retrieved.
{
  "statusCode": 500,
  "message": "Error retrieving coins data."
}
Server error:
A general error indicating that something went wrong on the server.
{
  "statusCode": 500,
  "message": "Server error."
}
Unexpected error:
An unspecified server-side error. Please contact support if the issue persists.
{
  "statusCode": 500,
  "message": "Unexpected error."
}
Failed to process the request:
An internal error occurred while processing the request.
{
  "statusCode": 500,
  "message": "Failed to process the request."
}
Failed create transaction:
This error indicates that the server was unable to create a new transaction due to an internal error.
{
  "statusCode": 500,
  "message": "Failed create transaction."
}