History
private/get_funding_history
Returns a paginated history of perpetual funding (settlement) events for a single subaccount or an entire wallet (specify exactly one), optionally bounded by a start/end timestamp window and filtered by perpetual instrument name. The response includes the funding events with their instrument name and settled amounts, plus pagination info with total count and page count.
POST
/
private
/
get_funding_history
private/get_funding_history
curl --request POST \
--url https://api.derive.xyz/v3/private/get_funding_history \
--header 'Content-Type: application/json' \
--data '
{
"end_timestamp": null,
"instrument_name": null,
"page": null,
"page_size": null,
"start_timestamp": null,
"subaccount_id": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_funding_history"
payload = {
"end_timestamp": None,
"instrument_name": None,
"page": None,
"page_size": None,
"start_timestamp": None,
"subaccount_id": None,
"wallet": None
}
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({
end_timestamp: null,
instrument_name: null,
page: null,
page_size: null,
start_timestamp: null,
subaccount_id: null,
wallet: null
})
};
fetch('https://api.derive.xyz/v3/private/get_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://api.derive.xyz/v3/private/get_funding_history",
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([
'end_timestamp' => null,
'instrument_name' => null,
'page' => null,
'page_size' => null,
'start_timestamp' => null,
'subaccount_id' => null,
'wallet' => null
]),
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://api.derive.xyz/v3/private/get_funding_history"
payload := strings.NewReader("{\n \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\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://api.derive.xyz/v3/private/get_funding_history")
.header("Content-Type", "application/json")
.body("{\n \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_funding_history")
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 \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"events": [
{
"batch_status": "Batching",
"batch_uuid": "<string>",
"funding": "<string>",
"instrument_name": "<string>",
"pnl": "<string>",
"subaccount_id": 1,
"timestamp": 123,
"tx_hash": "<string>"
}
],
"pagination": {
"count": 1,
"num_pages": 1
}
}Body
application/json
Parameters for private/get_funding_history.
subaccount_id, start_timestamp, and end_timestamp accept either a JSON number or a string-encoded integer. Pagination is page >= 1, page_size in 1..=1000.
private/get_funding_history
curl --request POST \
--url https://api.derive.xyz/v3/private/get_funding_history \
--header 'Content-Type: application/json' \
--data '
{
"end_timestamp": null,
"instrument_name": null,
"page": null,
"page_size": null,
"start_timestamp": null,
"subaccount_id": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_funding_history"
payload = {
"end_timestamp": None,
"instrument_name": None,
"page": None,
"page_size": None,
"start_timestamp": None,
"subaccount_id": None,
"wallet": None
}
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({
end_timestamp: null,
instrument_name: null,
page: null,
page_size: null,
start_timestamp: null,
subaccount_id: null,
wallet: null
})
};
fetch('https://api.derive.xyz/v3/private/get_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://api.derive.xyz/v3/private/get_funding_history",
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([
'end_timestamp' => null,
'instrument_name' => null,
'page' => null,
'page_size' => null,
'start_timestamp' => null,
'subaccount_id' => null,
'wallet' => null
]),
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://api.derive.xyz/v3/private/get_funding_history"
payload := strings.NewReader("{\n \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\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://api.derive.xyz/v3/private/get_funding_history")
.header("Content-Type", "application/json")
.body("{\n \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_funding_history")
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 \"end_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"start_timestamp\": null,\n \"subaccount_id\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"events": [
{
"batch_status": "Batching",
"batch_uuid": "<string>",
"funding": "<string>",
"instrument_name": "<string>",
"pnl": "<string>",
"subaccount_id": 1,
"timestamp": 123,
"tx_hash": "<string>"
}
],
"pagination": {
"count": 1,
"num_pages": 1
}
}