Retrieves the complete list of active cryptocurrencies available for payments and payouts.
GET /api/assets
Authorization: Bearer {token}
Accept: application/json
This endpoint does not accept any parameters.
curl -X GET https://api.flow-payments.com/api/assets \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Accept: application/json"
Code: 200 OK
{
"data": [
{
"id": 1,
"name": "Bitcoin",
"symbol": "BTC",
"chain": "bitcoin",
"type": "native",
"decimals": 8,
"usd_rate": "93037.28254643",
"network_fee": "0",
"min_confirmations": 1
},
{
"id": 2,
"name": "Ethereum",
"symbol": "ETH",
"chain": "ethereum",
"type": "native",
"decimals": 18,
"usd_rate": "3125.16675365",
"network_fee": "0.000000042162288",
"min_confirmations": 5
}
]
}
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier of the asset |
name | string | Full name of the cryptocurrency |
symbol | string | Cryptocurrency symbol (e.g., BTC, ETH) |
chain | string | Blockchain on which the asset exists |
type | string | Asset type: native (native coin) or token (ERC-20, etc.) |
decimals | integer | Number of decimals for the asset |
usd_rate | string | Current exchange rate in USD |
network_fee | string | Network fee in standard units |
min_confirmations | integer | Minimum number of confirmations required for a transaction to be considered valid |
Native coins are the primary cryptocurrencies of a blockchain:
Tokens are assets created on an existing blockchain via smart contracts:
Use this endpoint to display available cryptocurrencies in your payment interface:
const response = await fetch('https://api.flow-payments.com/api/assets', {
headers: {
'Authorization': 'Bearer sk_live_abc123...',
'Accept': 'application/json'
}
});
const { data: assets } = await response.json();
// Display in interface
assets.forEach(asset => {
console.log(`${asset.name} (${asset.symbol}) - $${asset.usd_rate}`);
});
Use the usd_rate to convert a USD amount to cryptocurrency:
$amountUSD = 100; // $100 USD
$asset = $assets[0]; // Bitcoin
$amountCrypto = $amountUSD / floatval($asset['usd_rate']);
echo "Amount: {$amountCrypto} {$asset['symbol']}";
// Result: Amount: 0.00222222 BTC
| Code | Description |
|---|---|
401 | Missing or invalid authentication token |
429 | Rate limit exceeded |
500 | Internal server error |
!NOTE
- Exchange rates (
usd_rate) are updated regularly but may vary- Network fees may change based on blockchain congestion
!TIP Cache the assets list and refresh it periodically (e.g., every hour) rather than calling it for every transaction.