The instruments section provides methods for obtaining a list of active instruments, obtaining information about an individual instrument, and checking if the address for a specified instrument is correct.
Documentation
General Description
The request returns a public list of active instruments (coins) available for use within the Quickex system for a selected liquidity provider.
HTTP Request
Method: GET
URL: https://quickex.io/api/v2/instruments/public
Request Example
curl -X 'GET' \ 'https://quickex.io/api/v2/instruments/public' \ -H 'accept: application/json'
Response Format
The method returns a JSON array where each element is an instrument object.
Response Example
[
{
"currencyTitle": "STX",
"networkTitle": "STX",
"slug": "stxstx",
"currencyFriendlyTitle": "STX",
"precisionDecimals": 8,
"currencyLogoLink": "https://quickex.io/assets/coins/stx.svg",
"requiresMemo": true,
"instrumentType": "crypto",
"bestChangeName": "",
"contractAddress": ""
},
{
"currencyTitle": "AVAX",
"networkTitle": "AVAX",
"slug": "avax",
"currencyFriendlyTitle": "AVAX",
"precisionDecimals": 3,
"currencyLogoLink": "https://quickex.io/assets/coins/avax.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"bestChangeName": "AVAX",
"contractAddress": ""
},
{
"currencyTitle": "SAND",
"networkTitle": "ERC20",
"slug": "sanderc20",
"currencyFriendlyTitle": "SAND",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/sand.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"bestChangeName": "",
"contractAddress": "0x3845badade8e6dff049820680d1f14bd3903a5d0"
},
...
]
Response Field Breakdown
Example of an Instrument Object
{
"currencyTitle": "SAND",
"networkTitle": "ERC20",
"slug": "sanderc20",
"currencyFriendlyTitle": "SAND",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/sand.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"bestChangeName": "",
"contractAddress": "0x3845badade8e6dff049820680d1f14bd3903a5d0"
}
| Field | Type | Description |
|---|---|---|
currencyTitle |
string | Internal currency code in the Quickex system. |
networkTitle |
string | Network code where the instrument is available (`ERC20`, `TRC20`, `BTC`, etc.). |
slug |
string | Unique technical identifier for the instrument in Quickex. Needed for API references and routing; it is globally unique for the system. |
currencyFriendlyTitle |
string | Human-readable currency name. |
precisionDecimals |
number | Number of decimal places supported for instrument operations. |
currencyLogoLink |
string | URL of the currency logo. |
requiresMemo |
boolean | Indicates whether a blockchain-specific memo is required for transfers (e.g., XRP Destination Tag, Stellar Memo). true – required, false – not required. |
instrumentType |
string | Instrument type ( crypto, stablecoin, fiat, cash ). |
bestChangeName |
string | Instrument name in the BestChange aggregator. |
contractAddress |
string | Token smart contract address (for networks like Ethereum/BSC). Empty for native coins. |
Possible Use Cases
- Building a list of currencies in an exchange form.
- Preloading the instruments directory for caching.
- Checking whether the required network or coin is supported by the provider.
- Validating/correcting input amounts. (considering precisionDecimals).
Code Sample
curl -X 'GET' \
'https://quickex.io/api/v2/instruments/public' \
-H 'accept: application/json'Response Example
[
{
"currencyTitle": "STX",
"networkTitle": "STX",
"slug": "stxstx",
"currencyFriendlyTitle": "STX",
"precisionDecimals": 8,
"currencyLogoLink": "https://quickex.io/assets/coins/stx.svg",
"requiresMemo": true,
"instrumentType": "crypto",
"bestChangeName": "",
"contractAddress": ""
},
{
"currencyTitle": "AVAX",
"networkTitle": "AVAX",
"slug": "avax",
"currencyFriendlyTitle": "AVAX",
"precisionDecimals": 3,
"currencyLogoLink": "https://quickex.io/assets/coins/avax.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"bestChangeName": "AVAX",
"contractAddress": ""
},
{
"currencyTitle": "SAND",
"networkTitle": "ERC20",
"slug": "sanderc20",
"currencyFriendlyTitle": "SAND",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/sand.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"bestChangeName": "",
"contractAddress": "0x3845badade8e6dff049820680d1f14bd3903a5d0"
}
]Try it out
Leave empty to use default
Headers
Documentation
General Description (Single Instrument)
The request returns public information about a single instrument (a specific coin on a specific network) available in the Quickex system.
The method is useful when you need to obtain detailed information about one instrument, knowing its currencyTitle and networkTitle:
HTTP Request
Method: GET
URL: https://quickex.io/api/v2/instruments
Request Example
curl -X 'POST' \
'https://quickex.io/api/v2/instruments/public/one' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"currencyTitle": "USDT",
"networkTitle": "TRC20"
}'
Request Parameters
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
currencyTitle |
string | yes | Currency code (e.g., ADA, BTC, USDT). |
networkTitle |
string | yes | Network name where the instrument exists (ADA, ERC20, etc.). |
Both parameters must simultaneously refer to an existing instrument in the system.
Response Format
The method returns a JSON object describing the instrument.
Response Example
{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"currencyFriendlyTitle": "USDT",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/usdt.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}
Response Field Breakdown
{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"currencyFriendlyTitle": "USDT",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/usdt.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}
| Field | Type | Description |
|---|---|---|
currencyTitle |
string | Internal currency code in the Quickex system (e.g., ADA, BTC, USDT). |
networkTitle |
string | Network code where the instrument is available (ADA, ERC20, TRC20, etc.). |
currencyFriendlyTitle |
string | Human‑readable currency name (e.g., Cardano instead of ADA). |
precisionDecimals |
number | Number of supported decimal places for amounts. |
requiresMemo |
boolean | Whether a Memo/Tag/Payment ID is required for transfers. |
currencyLogoLink |
string | URL of the currency logo. |
instrumentType |
string | Instrument type, such as crypto. |
contractAddress |
string | Token contract address or an empty string for native coins. |
Possible Use Cases
- Retrieving detailed information about a specific coin for frontend display.
Code Sample
curl -X 'POST' \
'https://quickex.io/api/v2/instruments/public/one' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"currencyTitle": "USDT",
"networkTitle": "TRC20"
}'Response Example
{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"currencyFriendlyTitle": "USDT",
"precisionDecimals": 2,
"currencyLogoLink": "https://quickex.io/assets/coins/usdt.svg",
"requiresMemo": false,
"instrumentType": "crypto",
"contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}Try it out
Leave empty to use default
Request Body
Headers
Documentation
General Description
The method checks the validity of the address and memo for the given `currencyTitle` and `networkTitle`. It is used during the creation or validation of an order to ensure that the user has entered a correct wallet address.
If the validation is successful, the method returns only the HTTP status code `200` with no response body. In case of an error, it returns status `400` and a description of the reason.
HTTP Request
Method: POST
URL: https://quickex.io/api/v2/instruments/validate-address
Request Example
curl -X 'POST' \
'https://quickex.io/api/v2/instruments/public/validate-address' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"address": "THUmkPhry61edcTf79yTioV6292ccsuCjV",
"memo": "2345678",
}'
Request Parameters
Query Parameters
| Field | Type | Required | Description |
|---|---|---|---|
currencyTitle |
string | yes | Currency code (e.g., USDT, ETH, BTC). |
networkTitle |
string | yes | Network name (TRC20, ERC20, BTC, etc.). |
address |
string | yes | Wallet address to validate. |
memo |
string | no | Additional destination identifier required by some blockchain networks (for example, XRP Destination Tag or Stellar Memo). Must be provided when required by the selected network; for networks that do not support memos (e.g., TRC20, ERC20), this field is ignored. |
Response Format
If the address is valid, the method returns only the status code:
Response Example
It returns an empty string with a 200 response code.
Error (400)
If the address or memo is invalid, the method returns an error object.
{
"status": "ERR_HTTP",
"message": "Http Exception",
"data": {
"address": "adddress is incorrect"
}
}
Error Fields Breakdown
Example of an Instrument Object
{
"status": "ERR_HTTP",
"message": "Http Exception",
"data": {
"address": "adddress is incorrect"
}
}
| Field | Type | Description |
|---|---|---|
status |
string | Error type (always ERR_HTTP). |
message |
string | General description of the error. |
data |
object | Detailed reason for the error. |
data.address |
string | Message about the invalid address entered. |
Possible Use Cases
- Validating the address before creating an order.
- Validating Memo/Payment ID for networks that require it.
- Validating wallet address forms on the partner side.
- Displaying a detailed validation message to users when the address is incorrect.
Code Sample
curl -X 'POST' \
'https://quickex.io/api/v2/instruments/validate-address' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"address": "THUmkPhry61edcTf79yTioV6292ccsuCjV",
"memo": "2345678",
"getRejectReason": true
}'Response Example
{
"status": "ERR_HTTP",
"message": "Http Exception",
"data": {
"address": "adddress is incorrect"
}
}Try it out
Leave empty to use default