curl --request POST \
--url https://streaming.dexpaprika.com/sse/reserves \
--header 'Content-Type: application/json' \
--data '
[
{
"chain": "ethereum",
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"request_id": 2147483647
}
]
'import requests
url = "https://streaming.dexpaprika.com/sse/reserves"
payload = [
{
"chain": "ethereum",
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"request_id": 2147483647
}
]
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify([
{
chain: 'ethereum',
address: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
request_id: 2147483647
}
])
};
fetch('https://streaming.dexpaprika.com/sse/reserves', 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://streaming.dexpaprika.com/sse/reserves",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'chain' => 'ethereum',
'address' => '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
'request_id' => 2147483647
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.dexpaprika.com/sse/reserves"
payload := strings.NewReader("[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.dexpaprika.com/sse/reserves")
.header("Content-Type", "application/json")
.body("[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.dexpaprika.com/sse/reserves")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]"
response = http.request(request)
puts response.read_body{
"chain": "ethereum",
"pool_id": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"block": "19000000",
"previous_block": "18999999",
"tokens": [
{
"token_id": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"reserve": "1000000000000",
"delta": "-500000",
"price_usd": 1.0005,
"reserve_usd": 1000000.5,
"delta_usd": -500.25
}
],
"total_reserve_usd": 2000000.75,
"total_delta_usd": -1000.5,
"timestamp": 1715162400,
"block_timestamp": 1715162388
}{
"message": "asset not found"
}Stream real-time reserve updates for multiple pools or tokens
Establishes a multiplexed SSE stream for reserve updates across multiple pools or tokens within a single connection.
Stream Constraints: Maximum payload array length is 25 subscriptions.
Supported Channel Events: - pool_reserves: Per-block reserve update for a pool. Schema matches PoolReservesResponse. - token_reserves: Aggregated reserve update for a token. Schema matches TokenReservesResponse. - ping: Infrastructure keep-alive payload (PingEvent). - error: Stream-level operational exceptions (ErrorEvent).
curl --request POST \
--url https://streaming.dexpaprika.com/sse/reserves \
--header 'Content-Type: application/json' \
--data '
[
{
"chain": "ethereum",
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"request_id": 2147483647
}
]
'import requests
url = "https://streaming.dexpaprika.com/sse/reserves"
payload = [
{
"chain": "ethereum",
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"request_id": 2147483647
}
]
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify([
{
chain: 'ethereum',
address: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
request_id: 2147483647
}
])
};
fetch('https://streaming.dexpaprika.com/sse/reserves', 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://streaming.dexpaprika.com/sse/reserves",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'chain' => 'ethereum',
'address' => '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
'request_id' => 2147483647
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.dexpaprika.com/sse/reserves"
payload := strings.NewReader("[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.dexpaprika.com/sse/reserves")
.header("Content-Type", "application/json")
.body("[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.dexpaprika.com/sse/reserves")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"chain\": \"ethereum\",\n \"address\": \"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640\",\n \"request_id\": 2147483647\n }\n]"
response = http.request(request)
puts response.read_body{
"chain": "ethereum",
"pool_id": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"block": "19000000",
"previous_block": "18999999",
"tokens": [
{
"token_id": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"reserve": "1000000000000",
"delta": "-500000",
"price_usd": 1.0005,
"reserve_usd": 1000000.5,
"delta_usd": -500.25
}
],
"total_reserve_usd": 2000000.75,
"total_delta_usd": -1000.5,
"timestamp": 1715162400,
"block_timestamp": 1715162388
}{
"message": "asset not found"
}Query Parameters
Maximum event count before server-initiated connection teardown.
x >= 1Body
25Target blockchain network identifier.
"ethereum"
Pool or token smart contract address.
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
Subscription target type — pool_reserves for pool-level data, token_reserves for token-level aggregated data.
pool_reserves, token_reserves Optional identifier for tracking multiplexed requests. Defaults to the array index if omitted.
0 <= x <= 4294967295Response
Multiplexed SSE stream successfully established.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Per-block reserve update for a pool. Emitted on the pool_reserves event channel.
Blockchain network identifier.
"ethereum"
Pool smart contract address.
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
Block number in which the reserve update was confirmed (string-encoded integer).
"19000000"
Previous block number for this pool (string-encoded integer). Omitted if unavailable.
"18999999"
Per-token reserve statistics for this pool.
Show child attributes
Show child attributes
Total USD value of all reserves in the pool.
2000000.75
Total USD change across all reserves. Negative values indicate a net decrease.
-1000.5
Server ingestion timestamp (Unix epoch seconds).
1715162400
On-chain block timestamp (Unix epoch seconds).
1715162388
Was this page helpful?