private/get_block_trades
Returns a paginated history of the caller’s block trades for a wallet or one of its subaccounts, newest first. Pages count blocks, not trades. Each block has its time, the caller’s liquidity role and the caller’s trades, one per leg, in the private/get_trade_history shape. Optional filters: a time window, an instrument name and a direction. A block matches the instrument filter if it has a trade in that instrument, and the direction filter if any of the caller’s trades has that direction. A matching block returns all of its trades. A session key restricted to some subaccounts sees only their blocks.
curl --request POST \
--url https://api.derive.xyz/v3/private/get_block_trades \
--header 'Content-Type: application/json' \
--header 'X-DeriveSignature: <api-key>' \
--header 'X-DeriveTimestamp: <api-key>' \
--header 'X-DeriveWallet: <api-key>' \
--data '
{
"from_timestamp": null,
"instrument_name": null,
"page": null,
"page_size": null,
"subaccount_id": null,
"to_timestamp": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_block_trades"
payload = {
"from_timestamp": None,
"instrument_name": None,
"page": None,
"page_size": None,
"subaccount_id": None,
"to_timestamp": None,
"wallet": None
}
headers = {
"X-DeriveWallet": "<api-key>",
"X-DeriveTimestamp": "<api-key>",
"X-DeriveSignature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-DeriveWallet': '<api-key>',
'X-DeriveTimestamp': '<api-key>',
'X-DeriveSignature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from_timestamp: null,
instrument_name: null,
page: null,
page_size: null,
subaccount_id: null,
to_timestamp: null,
wallet: null
})
};
fetch('https://api.derive.xyz/v3/private/get_block_trades', 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_block_trades",
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([
'from_timestamp' => null,
'instrument_name' => null,
'page' => null,
'page_size' => null,
'subaccount_id' => null,
'to_timestamp' => null,
'wallet' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-DeriveSignature: <api-key>",
"X-DeriveTimestamp: <api-key>",
"X-DeriveWallet: <api-key>"
],
]);
$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_block_trades"
payload := strings.NewReader("{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-DeriveWallet", "<api-key>")
req.Header.Add("X-DeriveTimestamp", "<api-key>")
req.Header.Add("X-DeriveSignature", "<api-key>")
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_block_trades")
.header("X-DeriveWallet", "<api-key>")
.header("X-DeriveTimestamp", "<api-key>")
.header("X-DeriveSignature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_block_trades")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-DeriveWallet"] = '<api-key>'
request["X-DeriveTimestamp"] = '<api-key>'
request["X-DeriveSignature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"block_trades": [
{
"block_trade_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"liquidity_role": "maker",
"timestamp": 123,
"trades": [
{
"block_trade_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "buy",
"expected_rebate": "<string>",
"extra_fee": "<string>",
"index_price": "<string>",
"instrument_name": "<string>",
"is_transfer": true,
"label": "<string>",
"liquidity_role": "maker",
"mark_price": "<string>",
"op_uuid": "<string>",
"order_id": "<string>",
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"realized_pnl": "<string>",
"realized_pnl_excl_fees": "<string>",
"rfq_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subaccount_id": 123,
"timestamp": 123,
"trade_amount": "<string>",
"trade_fee": "<string>",
"trade_id": "<string>",
"trade_price": "<string>",
"batch_status": "Batching",
"tx_hash": "<string>"
}
]
}
],
"pagination": {
"count": 1,
"num_pages": 1
}
}{
"error": {
"code": 123,
"message": "<string>",
"data": "<string>"
}
}Authorizations
The wallet the request acts for.
The current time in milliseconds, as a decimal string.
EIP-191 signature of the timestamp, by the wallet or one of its session keys.
Body
Returns the blocks in which any of the caller's trades has this direction.
buy, sell Returns the blocks with a trade in this instrument.
x >= 0x >= 0curl --request POST \
--url https://api.derive.xyz/v3/private/get_block_trades \
--header 'Content-Type: application/json' \
--header 'X-DeriveSignature: <api-key>' \
--header 'X-DeriveTimestamp: <api-key>' \
--header 'X-DeriveWallet: <api-key>' \
--data '
{
"from_timestamp": null,
"instrument_name": null,
"page": null,
"page_size": null,
"subaccount_id": null,
"to_timestamp": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_block_trades"
payload = {
"from_timestamp": None,
"instrument_name": None,
"page": None,
"page_size": None,
"subaccount_id": None,
"to_timestamp": None,
"wallet": None
}
headers = {
"X-DeriveWallet": "<api-key>",
"X-DeriveTimestamp": "<api-key>",
"X-DeriveSignature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-DeriveWallet': '<api-key>',
'X-DeriveTimestamp': '<api-key>',
'X-DeriveSignature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from_timestamp: null,
instrument_name: null,
page: null,
page_size: null,
subaccount_id: null,
to_timestamp: null,
wallet: null
})
};
fetch('https://api.derive.xyz/v3/private/get_block_trades', 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_block_trades",
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([
'from_timestamp' => null,
'instrument_name' => null,
'page' => null,
'page_size' => null,
'subaccount_id' => null,
'to_timestamp' => null,
'wallet' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-DeriveSignature: <api-key>",
"X-DeriveTimestamp: <api-key>",
"X-DeriveWallet: <api-key>"
],
]);
$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_block_trades"
payload := strings.NewReader("{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-DeriveWallet", "<api-key>")
req.Header.Add("X-DeriveTimestamp", "<api-key>")
req.Header.Add("X-DeriveSignature", "<api-key>")
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_block_trades")
.header("X-DeriveWallet", "<api-key>")
.header("X-DeriveTimestamp", "<api-key>")
.header("X-DeriveSignature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_block_trades")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-DeriveWallet"] = '<api-key>'
request["X-DeriveTimestamp"] = '<api-key>'
request["X-DeriveSignature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from_timestamp\": null,\n \"instrument_name\": null,\n \"page\": null,\n \"page_size\": null,\n \"subaccount_id\": null,\n \"to_timestamp\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"block_trades": [
{
"block_trade_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"liquidity_role": "maker",
"timestamp": 123,
"trades": [
{
"block_trade_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "buy",
"expected_rebate": "<string>",
"extra_fee": "<string>",
"index_price": "<string>",
"instrument_name": "<string>",
"is_transfer": true,
"label": "<string>",
"liquidity_role": "maker",
"mark_price": "<string>",
"op_uuid": "<string>",
"order_id": "<string>",
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"realized_pnl": "<string>",
"realized_pnl_excl_fees": "<string>",
"rfq_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subaccount_id": 123,
"timestamp": 123,
"trade_amount": "<string>",
"trade_fee": "<string>",
"trade_id": "<string>",
"trade_price": "<string>",
"batch_status": "Batching",
"tx_hash": "<string>"
}
]
}
],
"pagination": {
"count": 1,
"num_pages": 1
}
}{
"error": {
"code": 123,
"message": "<string>",
"data": "<string>"
}
}