curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/market/funding/historyimport requests
url = "https://staging.apimonaco.xyz/api/v1/market/funding/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://staging.apimonaco.xyz/api/v1/market/funding/history', 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://staging.apimonaco.xyz/api/v1/market/funding/history",
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://staging.apimonaco.xyz/api/v1/market/funding/history"
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://staging.apimonaco.xyz/api/v1/market/funding/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/market/funding/history")
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{
"records": [
{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"epoch": "<string>",
"fundingRate": "<string>",
"fundingDeltaPerUnit": "<string>",
"cumulativeFundingPerUnit": "<string>",
"referencePrice": "<string>",
"sampleCount": 123,
"windowStartedAt": "<string>",
"windowClosedAt": "<string>",
"settledAt": "<string>",
"carried": true
}
],
"total": 123,
"pageSize": 123,
"nextPageToken": "<string>",
"totalCapped": true
}Get apiv1marketfundinghistory
Historical funding settlements across all perp markets in one call, so clients don’t have to fan out one request per trading pair.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/market/funding/historyimport requests
url = "https://staging.apimonaco.xyz/api/v1/market/funding/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://staging.apimonaco.xyz/api/v1/market/funding/history', 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://staging.apimonaco.xyz/api/v1/market/funding/history",
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://staging.apimonaco.xyz/api/v1/market/funding/history"
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://staging.apimonaco.xyz/api/v1/market/funding/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/market/funding/history")
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{
"records": [
{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"epoch": "<string>",
"fundingRate": "<string>",
"fundingDeltaPerUnit": "<string>",
"cumulativeFundingPerUnit": "<string>",
"referencePrice": "<string>",
"sampleCount": 123,
"windowStartedAt": "<string>",
"windowClosedAt": "<string>",
"settledAt": "<string>",
"carried": true
}
],
"total": 123,
"pageSize": 123,
"nextPageToken": "<string>",
"totalCapped": true
}Query Parameters
Start time as Unix timestamp (milliseconds)
0 <= x <= 4102444800000End time as Unix timestamp (milliseconds)
0 <= x <= 4102444800000Items per page (max 1000)
1 <= x <= 1000Sort direction for settledAt
ASC, DESC 1Pagination cursor with two states:
- Omitted or empty string (""): start a cursor walk with no prior
position, from the newest settlement (the oldest when
orderByis ASC). - Non-empty: an opaque cursor from a previous response's
nextPageToken; results resume immediately after that position.
The walk seeks on (settled_at, id) in the requested direction.
settled_at is NOT NULL and never changes once a window settles, and the
id tie-break makes the key total — the removed page-number mode ordered
by (settled_at, trading_pair_id, epoch) with no tie-break, so a page
boundary between two settlements sharing that triple could repeat or drop
a row.
total is populated — bounded by the server count ceiling, see
totalCapped. Filters and orderBy must match the request that produced
the token, or the request is rejected 400.
Response
OK
Show child attributes
Show child attributes
Settlements matching the filter, bounded by the server count ceiling — see
totalCapped. A lower bound when totalCapped is true.
Cursor for the next page, minted from the last row of an over-fetched
page: this listing is one ordered read, so a page shorter than
pageSize proves the walk is exhausted and this is empty.
True when MORE than the server ceiling matched, so the count stopped at
the ceiling and total is a lower bound.
Was this page helpful?

