Blockchain - Multiple Token Metadata
curl --request POST \
--url https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"tokens": [
"FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5",
"6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4"
]
}
'import requests
url = "https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple"
payload = { "tokens": ["FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5", "6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4"] }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tokens: [
'FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5',
'6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4'
]
})
};
fetch('https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5": {
"supply": 999743839592276900,
"decimals": 9,
"is_initialized": true,
"mint_authority": null,
"freeze_authority": null,
"is_nft": false,
"key": "MetadataV1",
"update_authority": "65USnH8wG5iGXNUcYqSFzfdUUKDhZ9PtM1Lc4h142xc9",
"name": "LYDIAN$",
"symbol": "LYD$",
"uri": "https://nftstorage.link/ipfs/bafkreictlkcmobpvfaou6layeextjgf5ytlzjnijsnxppwt4vhup4jqpwu/",
"seller_fee_basis_points": 0,
"creators": [
{
"address": "65USnH8wG5iGXNUcYqSFzfdUUKDhZ9PtM1Lc4h142xc9",
"verified": true,
"share": 100
}
],
"primary_sale_happened": false,
"is_mutable": false,
"edition_nonce": 255,
"token_standard": "Fungible"
},
"6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4": {
"supply": 996756255212019,
"decimals": 9,
"is_initialized": true,
"mint_authority": null,
"freeze_authority": null,
"is_nft": false,
"key": "MetadataV1",
"update_authority": "8X27f7skxnSZv5LmyqvHL2uazGrSyBeawBr88rn9Zun8",
"name": "dog wif hoodie",
"symbol": "dwh",
"uri": "https://maroon-genetic-fowl-955.mypinata.cloud/ipfs/QmcKFww8gFwuCmPJcJDS17qsWQ9DBj2poTXajoezGSTWFQ",
"seller_fee_basis_points": 0,
"creators": [
{
"address": "8X27f7skxnSZv5LmyqvHL2uazGrSyBeawBr88rn9Zun8",
"verified": true,
"share": 100
}
],
"primary_sale_happened": false,
"is_mutable": true,
"edition_nonce": 254,
"token_standard": "Fungible"
}
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}Token
Blockchain - Multiple Token Metadata
Returns metadata for up to 100 Solana token mints.
POST
/
blockchain
/
v1
/
token
/
metadata
/
multiple
Blockchain - Multiple Token Metadata
curl --request POST \
--url https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"tokens": [
"FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5",
"6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4"
]
}
'import requests
url = "https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple"
payload = { "tokens": ["FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5", "6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4"] }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tokens: [
'FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5',
'6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4'
]
})
};
fetch('https://public-api.birdeye.so/blockchain/v1/token/metadata/multiple', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"FhMxWnZts95ViF8hgzwvomydAiLP9qfgZHyGRnvkNia5": {
"supply": 999743839592276900,
"decimals": 9,
"is_initialized": true,
"mint_authority": null,
"freeze_authority": null,
"is_nft": false,
"key": "MetadataV1",
"update_authority": "65USnH8wG5iGXNUcYqSFzfdUUKDhZ9PtM1Lc4h142xc9",
"name": "LYDIAN$",
"symbol": "LYD$",
"uri": "https://nftstorage.link/ipfs/bafkreictlkcmobpvfaou6layeextjgf5ytlzjnijsnxppwt4vhup4jqpwu/",
"seller_fee_basis_points": 0,
"creators": [
{
"address": "65USnH8wG5iGXNUcYqSFzfdUUKDhZ9PtM1Lc4h142xc9",
"verified": true,
"share": 100
}
],
"primary_sale_happened": false,
"is_mutable": false,
"edition_nonce": 255,
"token_standard": "Fungible"
},
"6hiALznKpxkDjUXmmja8QhCY3meTN1wTEga8vSSUgaA4": {
"supply": 996756255212019,
"decimals": 9,
"is_initialized": true,
"mint_authority": null,
"freeze_authority": null,
"is_nft": false,
"key": "MetadataV1",
"update_authority": "8X27f7skxnSZv5LmyqvHL2uazGrSyBeawBr88rn9Zun8",
"name": "dog wif hoodie",
"symbol": "dwh",
"uri": "https://maroon-genetic-fowl-955.mypinata.cloud/ipfs/QmcKFww8gFwuCmPJcJDS17qsWQ9DBj2poTXajoezGSTWFQ",
"seller_fee_basis_points": 0,
"creators": [
{
"address": "8X27f7skxnSZv5LmyqvHL2uazGrSyBeawBr88rn9Zun8",
"verified": true,
"share": 100
}
],
"primary_sale_happened": false,
"is_mutable": true,
"edition_nonce": 254,
"token_standard": "Fungible"
}
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}- Usage Note
- Accessibility
- Chain Supported
- Batch version of Solana token metadata for up to 100 mint addresses per request.
- Response is keyed by mint address, which makes it easy to merge into watchlists, portfolios, or discovery pipelines.
- Each entry may be
nullif the mint is unknown, invalid, or metadata is unavailable. - This endpoint is better than repeated single calls when populating token tables or NFT inventories.
- Starter
- Premium
- Business
- Enterprise
Solana
Use Cases 💡
Use Cases 💡
- Hydrate large Solana token lists with mint and metadata fields in one request.
- Prepare NFT inventories, token directories, and portfolio tables without serial single-mint lookups.
- Batch-check authority, mutability, collection, and royalty fields across many mints.
- Reduce request overhead when building Solana-first explorers or backoffice tools.
How to Use 🛠️
How to Use 🛠️
- Send the mint list in the
tokensarray. - Deduplicate mint addresses before the request.
- Read the returned map by mint key and handle
nullentries conservatively. - Cache the successful mint metadata and refresh it less often than activity data.
Best Practices ✅
Best Practices ✅
- Chunk large metadata jobs into batches of up to 100 mints.
- Persist core mint metadata locally so repeated screens do not fan out to the endpoint again.
- Resolve the off-chain
uriasynchronously if you also need extended JSON metadata or images.
Limitations ⚠️
Limitations ⚠️
- Solana only.
Was this page helpful?

