Get Token ATH/ATL Values
curl --request GET \
--url https://demo-api.mobula.io/api/2/token/athimport requests
url = "https://demo-api.mobula.io/api/2/token/ath"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/token/ath', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://demo-api.mobula.io/api/2/token/ath",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://demo-api.mobula.io/api/2/token/ath"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo-api.mobula.io/api/2/token/ath")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/token/ath")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"address": "<string>",
"chainId": "<string>",
"symbol": "<string>",
"name": "<string>",
"athUSD": 123,
"atlUSD": 123,
"athDate": "<string>",
"atlDate": "<string>",
"priceUSD": 0
},
"hostname": "<string>"
}Market & Token Data
Get Token ATH/ATL
Retrieve All-Time High (ATH) and All-Time Low (ATL) values for a token, including the dates when these price extremes were recorded.
GET
/
2
/
token
/
ath
Get Token ATH/ATL Values
curl --request GET \
--url https://demo-api.mobula.io/api/2/token/athimport requests
url = "https://demo-api.mobula.io/api/2/token/ath"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/token/ath', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://demo-api.mobula.io/api/2/token/ath",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://demo-api.mobula.io/api/2/token/ath"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo-api.mobula.io/api/2/token/ath")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/token/ath")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"address": "<string>",
"chainId": "<string>",
"symbol": "<string>",
"name": "<string>",
"athUSD": 123,
"atlUSD": 123,
"athDate": "<string>",
"atlDate": "<string>",
"priceUSD": 0
},
"hostname": "<string>"
}Batch Support Available: This endpoint supports batch queries via POST method for fetching ATH/ATL data for multiple tokens in a single request. Jump to Batch Query section
Overview
The Token ATH endpoint provides a lightweight response containing only the All-Time High and All-Time Low values for a token, along with their respective dates. This is ideal when you only need ATH/ATL data without the comprehensive token details returned by the/token/details endpoint.
GET Method - Single Item Query
Retrieve ATH/ATL information for a single token.Query Parameters
blockchain(required) — The blockchain identifier (e.g.,evm:1,solana,ethereum,base)address(required) — Direct token addresscurrencies(optional) — Comma-separated list of fiat currencies for price conversion. Defaults toUSD. Supported currencies:USD,EUR,GBP,JPY,CHF,CAD,AUD,CNY,KRW,INR,BRL
Usage Examples
# Get ATH/ATL for a Solana token
curl -X GET "https://api.mobula.io/api/2/token/ath?blockchain=solana&address=So11111111111111111111111111111111111111112"
# Get ATH/ATL for an Ethereum token
curl -X GET "https://api.mobula.io/api/2/token/ath?blockchain=ethereum&address=0xdac17f958d2ee523a2206206994597c13d831ec7"
# Get ATH/ATL for a Base token with multi-currency support
curl -X GET "https://api.mobula.io/api/2/token/ath?blockchain=base&address=0x4200000000000000000000000000000000000006¤cies=EUR,USD"
Response Format
{
"data": {
"address": "So11111111111111111111111111111111111111112",
"chainId": "solana",
"symbol": "SOL",
"name": "Solana",
"priceUSD": 125.45,
"athUSD": 260.06,
"atlUSD": 0.50,
"athDate": "2021-11-06T21:54:00.000Z",
"atlDate": "2020-05-11T19:35:00.000Z"
}
}
POST Method - Batch Query
Retrieve ATH/ATL data for multiple tokens in a single request for improved efficiency.Request Body
[
{
"blockchain": "ethereum",
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7"
},
{
"blockchain": "solana",
"address": "So11111111111111111111111111111111111111112"
},
{
"blockchain": "base",
"address": "0x4200000000000000000000000000000000000006"
}
]
Body Parameters
The request body is an array of query objects, where each object contains:blockchain(required) — Blockchain id or nameaddress(required) — Direct token addresscurrencies(optional) — Comma-separated list of fiat currencies for price conversion. Defaults toUSD
Usage Examples
# Batch query for multiple tokens
curl -X POST "https://api.mobula.io/api/2/token/ath" \
-H "Content-Type: application/json" \
-d '[
{
"blockchain": "ethereum",
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7"
},
{
"blockchain": "solana",
"address": "So11111111111111111111111111111111111111112"
}
]'
# Batch query with multi-currency
curl -X POST "https://api.mobula.io/api/2/token/ath" \
-H "Content-Type: application/json" \
-d '[
{
"blockchain": "ethereum",
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"currencies": "EUR,USD,GBP"
},
{
"blockchain": "base",
"address": "0x4200000000000000000000000000000000000006",
"currencies": "EUR,USD"
}
]'
Response Format
{
"payload": [
{
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"chainId": "evm:1",
"symbol": "USDT",
"name": "Tether USD",
"priceUSD": 1.00,
"athUSD": 1.32,
"atlUSD": 0.57,
"athDate": "2018-07-24T00:00:00.000Z",
"atlDate": "2015-03-02T00:00:00.000Z"
},
{
"address": "So11111111111111111111111111111111111111112",
"chainId": "solana",
"symbol": "SOL",
"name": "Solana",
"priceUSD": 125.45,
"athUSD": 260.06,
"atlUSD": 0.50,
"athDate": "2021-11-06T21:54:00.000Z",
"atlDate": "2020-05-11T19:35:00.000Z"
}
]
}
Multi-Currency Support
When you specify multiple currencies using thecurrencies parameter, the response will include additional fields for each currency.
Example with currencies=EUR,USD
{
"data": {
"address": "So11111111111111111111111111111111111111112",
"chainId": "solana",
"symbol": "SOL",
"name": "Solana",
"priceUSD": 125.45,
"priceEUR": 115.21,
"athUSD": 260.06,
"athEUR": 238.86,
"atlUSD": 0.50,
"atlEUR": 0.46,
"athDate": "2021-11-06T21:54:00.000Z",
"atlDate": "2020-05-11T19:35:00.000Z"
}
}
Converted Fields
The following field patterns are automatically converted:priceUSD→price{CURRENCY}athUSD→ath{CURRENCY}atlUSD→atl{CURRENCY}
Exchange rates are fetched from reliable forex data providers and cached for optimal performance. Rates are updated every 30 minutes.
Response Field Definitions
| Field | Type | Description |
|---|---|---|
address | string | Token contract address |
chainId | string | Blockchain identifier |
symbol | string | Token symbol |
name | string | Token name |
priceUSD | number | Current token price in USD |
athUSD | number | All-Time High price in USD |
atlUSD | number | All-Time Low price in USD |
athDate | string (ISO 8601) | Date when ATH was recorded |
atlDate | string (ISO 8601) | Date when ATL was recorded |
Use Cases
- Portfolio Tracking: Display ATH/ATL values alongside current prices to show distance from extremes
- Trading Signals: Identify tokens approaching their ATH or recovering from ATL
- Historical Analysis: Track when tokens reached their price extremes
- Market Dashboards: Show ATH/ATL data without fetching comprehensive token details
- Alert Systems: Monitor tokens for new ATH/ATL events
Comparison with Token Details
| Feature | /token/ath | /token/details |
|---|---|---|
| Response Size | Minimal (~200 bytes) | Comprehensive (~5KB) |
| ATH/ATL Data | Yes | Yes |
| Volume Data | No | Yes |
| Holdings Data | No | Yes |
| Trading Activity | No | Yes |
| Social Data | No | Yes |
/token/ath when you only need ATH/ATL values for faster responses and lower bandwidth usage.