Utilities
Get Candlestick Data
Retrieve OHLCV candlestick data for chart visualization
GET
/
candlesticks
/
{mint}
Get Candlestick Data
curl --request GET \
--url https://frontend-api-v3.pump.fun/candlesticks/{mint}import requests
url = "https://frontend-api-v3.pump.fun/candlesticks/{mint}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://frontend-api-v3.pump.fun/candlesticks/{mint}', 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://frontend-api-v3.pump.fun/candlesticks/{mint}",
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://frontend-api-v3.pump.fun/candlesticks/{mint}"
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://frontend-api-v3.pump.fun/candlesticks/{mint}")
.asString();require 'uri'
require 'net/http'
url = URI("https://frontend-api-v3.pump.fun/candlesticks/{mint}")
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{
"mint": "<string>",
"timeframe": 123,
"candlesticks": [
{
"timestamp": 123,
"open": "<string>",
"high": "<string>",
"low": "<string>",
"close": "<string>",
"volume": "<string>",
"trades": 123
}
],
"total": 123
}Overview
The Candlesticks endpoint provides OHLCV (Open, High, Low, Close, Volume) data for a specific token, enabling price chart visualization and technical analysis.Authentication
This endpoint requires JWT authentication via theAuthorization header:
Authorization: Bearer <your_token>
Endpoint
GET https://frontend-api-v3.pump.fun/candlesticks/{mint}
Path Parameters
string
required
The mint address of the token to get candlestick data for
Query Parameters
number
required
Number of candlesticks to skip (for pagination)
number
required
Maximum number of candlesticks to return
number
required
Timeframe for each candlestick in minutes (e.g., 1, 5, 15, 60, 240, 1440)
Response
string
The mint address of the queried token
number
The timeframe used for candlesticks (in minutes)
array
Array of candlestick objects
Show Candlestick Object
Show Candlestick Object
number
Total number of available candlesticks
Common Timeframes
1- 1 minute5- 5 minutes15- 15 minutes60- 1 hour240- 4 hours1440- 1 day
Example Request
curl -X GET "https://frontend-api-v3.pump.fun/candlesticks/7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr?offset=0&limit=100&timeframe=15" \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json"
import requests
mint = "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr"
url = f"https://frontend-api-v3.pump.fun/candlesticks/{mint}"
params = {
"offset": 0,
"limit": 100,
"timeframe": 15 # 15-minute candles
}
headers = {
"Authorization": "Bearer <your_token>",
"Accept": "application/json"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const mint = '7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr';
const params = new URLSearchParams({
offset: '0',
limit: '100',
timeframe: '15'
});
fetch(`https://frontend-api-v3.pump.fun/candlesticks/${mint}?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer <your_token>',
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));
const mint = '7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr';
const params = new URLSearchParams({
offset: '0',
limit: '100',
timeframe: '15'
});
const response = await fetch(
`https://frontend-api-v3.pump.fun/candlesticks/${mint}?${params}`,
{
method: 'GET',
headers: {
'Authorization': 'Bearer <your_token>',
'Accept': 'application/json'
}
}
);
const data = await response.json();
console.log(data);
Use Cases
- Display price charts with multiple timeframes
- Perform technical analysis on token price movements
- Calculate trading indicators (RSI, MACD, etc.)
- Build real-time trading dashboards
- Analyze historical price patterns
Notes
- Replace
<your_token>with your actual JWT token - Choose appropriate timeframe based on your analysis needs
- Use pagination to load historical data efficiently
- Price values are strings to preserve precision
- Candlestick data is essential for charting libraries
Get Candlestick Data
curl --request GET \
--url https://frontend-api-v3.pump.fun/candlesticks/{mint}import requests
url = "https://frontend-api-v3.pump.fun/candlesticks/{mint}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://frontend-api-v3.pump.fun/candlesticks/{mint}', 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://frontend-api-v3.pump.fun/candlesticks/{mint}",
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://frontend-api-v3.pump.fun/candlesticks/{mint}"
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://frontend-api-v3.pump.fun/candlesticks/{mint}")
.asString();require 'uri'
require 'net/http'
url = URI("https://frontend-api-v3.pump.fun/candlesticks/{mint}")
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{
"mint": "<string>",
"timeframe": 123,
"candlesticks": [
{
"timestamp": 123,
"open": "<string>",
"high": "<string>",
"low": "<string>",
"close": "<string>",
"volume": "<string>",
"trades": 123
}
],
"total": 123
}