Token Metadata API
What you'll learn
- How to fetch metadata for any token
- Understanding token deployment status and bonding curve completion
- Tracking Raydium deployment status
- Accessing token social and authority details
Introduction
The Token Metadata API enables you to retrieve comprehensive metadata about token deployments, including bonding curve completion status and Raydium deployment information. This API is designed for tracking token launches and accessing associated deployment details.
Access Requirements
- Valid API key (visit https://app.callstatic.com for tier information)
- Rate limits and data access vary by subscription tier
Authentication
All requests require a Bearer token in UUID format:
Authorization: Bearer your-api-key-here
Base URL
https://api.callstaticrpc.com/pumpfun/v1
Data Structure
The API returns detailed metadata about token deployments:
- Response Structure
{
"success": true,
"data": {
"id": "dep_123456789",
"deployer": "AaA9aA3aA6aA2aA8aA4aA7aAa1aA5aA9aA3aA6aA2a",
"deploy_timestamp": 1679529600000,
"mint": "BbB3bB7bB2bB9bB4bB8bB1bBb5bB2bB6bB3bB9bB4bB",
"name": "Sample Token",
"symbol": "SMPL",
"decimals": 9,
"initial_supply": 1000000000000,
"total_supply": 1000000000000, // Always 1 billion (1,000,000,000) tokens
"description": "A sample token for demonstration purposes",
"mint_authority": "AaA9aA3aA6aA2aA8aA4aA7aAa1aA5aA9aA3aA6aA2a",
"freeze_authority": "AaA7aA1aA4aA8aA2aA6aA9aAa3aA7aA1aA4aA8aA5a",
"twitter": "@sampletoken",
"telegram": "https://t.me/sampletoken",
"website": "https://sampletoken.com",
"uri": "https://arweave.net/abc123",
"image_uri": "https://arweave.net/xyz789",
"is_complete": true, // Indicates bonding curve filled and Raydium deployment
"complete_timestamp": 1679529605000 // When Raydium deployment completed
}
}
- TypeScript
- Python
import axios from 'axios';
interface TokenMetadata {
id: string;
deployer: string;
deploy_timestamp: number;
mint: string;
name: string;
symbol: string;
decimals: number;
initial_supply: number; // Always 1 billion
total_supply: number; // Always 1 billion
description: string;
mint_authority: string;
freeze_authority: string;
twitter?: string;
telegram?: string;
website?: string;
uri: string;
image_uri: string;
is_complete: boolean; // Bonding curve and Raydium status
complete_timestamp?: number;
}
interface MetadataResponse {
success: boolean;
data: TokenMetadata;
}
class TokenMetadataClient {
private readonly baseUrl = 'https://api.callstaticrpc.com/pumpfun/v1';
constructor(private readonly apiKey: string) {}
async getTokenMetadata(mint: string): Promise<MetadataResponse> {
const response = await axios.get(`${this.baseUrl}/token/metadata`, {
headers: {
Authorization: `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
},
params: { mint }
});
return response.data;
}
}
from typing import Dict, Any, Optional
import requests
class TokenMetadataClient:
def __init__(self, api_key: str):
self.base_url = "https://api.callstaticrpc.com/pumpfun/v1"
self.api_key = api_key
def get_token_metadata(self, mint: str) -> Dict[str, Any]:
response = requests.get(
f"{self.base_url}/token/metadata",
headers={
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
},
params={"mint": mint}
)
response.raise_for_status()
return response.json()
Error Handling
The API returns standard HTTP status codes:
Status Code | Description |
---|---|
200 | Successful response |
400 | Bad request |
401 | Unauthorized - Invalid or missing bearer token |
500 | Internal server error |
Real-time Updates
For real-time token bonding updates, check out our WebSocket Streams API documentation.
Need Help?
For additional support:
- Email us at [email protected]
- Visit our Support Portal