curl --request GET \
--url https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcvimport requests
url = "https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv', 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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv",
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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv"
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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv")
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[
{
"time_open": "2025-03-10T00:00:00Z",
"time_close": "2025-03-11T00:00:00Z",
"open": 126.43817748776037,
"high": 131.48201077049822,
"low": 115.52148830221141,
"close": 118.20275113239272,
"volume": 262402654
}
]Get OHLCV data for a pool pair.
Retrieve historical OHLCV candles for a pool. Interval and history depth depend on your plan, from 24 hours of 1h candles without a key to unlimited on Pro.
curl --request GET \
--url https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcvimport requests
url = "https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv', 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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv",
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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv"
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://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dexpaprika.com/networks/{network}/pools/{pool_address}/ohlcv")
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[
{
"time_open": "2025-03-10T00:00:00Z",
"time_close": "2025-03-11T00:00:00Z",
"open": 126.43817748776037,
"high": 131.48201077049822,
"low": 115.52148830221141,
"close": 118.20275113239272,
"volume": 262402654
}
]Endpoint overview
Retrieve historical OHLCV for a pool at granular intervals. On Dev or Pro you can also chart a token without choosing a pool: token OHLCV returns USD candles aggregated across every pool the token trades in.Plan limits
How far back you can query and how fine the candles can be depends on your plan. A request outside the limits returns403 with a message naming the plan that lifts it.
| Plan | Candle intervals | History depth |
|---|---|---|
| Free (no key) | 1h, 6h, 12h, 24h | last 24 hours |
| Free (registered key) | 10m and longer | last 7 days |
| Dev | all | last 30 days |
| Pro / Enterprise | all | unlimited |
start, end and count_back are all checked against the window. A range that starts inside the window but reaches before it is trimmed to the window instead of rejected. Details on the rate limits page.
FAQs
Which intervals are supported?
Which intervals are supported?
1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, 24h with a max of 1000 points per request. Without a key only 1h and up are available; a free key adds 10m, 15m and 30m; 1m and 5m need Dev or Pro.How to request a specific time range?
How to request a specific time range?
start: a relative offset from now (-24h for the last 24 hours, -7d, -90m), an ISO timestamp, a date or Unix seconds. end is optional and takes the same formats. The range must fit your plan’s history window: 24 hours without a key, 7 days on a free key, 30 days on Dev, unlimited on Pro.Why do I get 403?
Why do I get 403?
message in the body says which plan lifts the limit. Fix start, end, count_back or interval, or upgrade.What does inversed change?
What does inversed change?
Tutorial: Get pool price history and OHLCV data
Path Parameters
Unique pool address or identifier. Such as 0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b for WETH / USDT on ethereum.
Query Parameters
Start time for the OHLCV data. Required; "-24h" selects the last 24 hours. Accepted formats:
- Relative offset from now (e.g., "-24h", "-7d", "-90m"; units: s, m, h, d)
- Unix timestamp
- RFC3339 timestamp (e.g., "2023-10-27T08:07:20Z")
- Date (e.g., "2023-10-27", interpreted as 00:00:00 UTC)
"-24h"
End time for the OHLCV data. Accepted formats:
- Relative offset from now (e.g., "-1h", "-2d")
- Unix timestamp
- RFC3339 timestamp (e.g., "2023-10-27T10:00:00Z")
- Date (e.g., "2023-10-27", interpreted as 00:00:00 UTC)
"1741508640"
Maximum number of OHLCV records to return.
1 <= x <= 1000The time interval for each OHLCV record (candle).
1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, 24h Whether to invert the price ratio in OHLCV calculations (e.g., quote token vs. base token).
Response
A list of OHLCV records successfully retrieved.
The opening timestamp of the OHLCV period.
"2023-10-27T10:00:00Z"
The closing timestamp of the OHLCV period.
"2023-10-27T11:00:00Z"
The opening price for the period.
1500.5
The highest price reached during the period.
1525.75
The lowest price reached during the period.
1495.25
The closing price for the period.
1510
The total volume traded during the period.
1234567890123
Was this page helpful?