curl --request GET \
--url https://test.deribit.com/api/v2/private/get_lsp_participants_usage \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 8804,
"method": "private/get_lsp_participants_usage",
"params": {
"user_id": 172345
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_lsp_participants_usage"
payload = {
"jsonrpc": "2.0",
"id": 8804,
"method": "private/get_lsp_participants_usage",
"params": { "user_id": 172345 }
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 8804,
method: 'private/get_lsp_participants_usage',
params: {user_id: 172345}
})
};
fetch('https://test.deribit.com/api/v2/private/get_lsp_participants_usage', 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://test.deribit.com/api/v2/private/get_lsp_participants_usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 8804,
'method' => 'private/get_lsp_participants_usage',
'params' => [
'user_id' => 172345
]
]),
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://test.deribit.com/api/v2/private/get_lsp_participants_usage"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}")
req, _ := http.NewRequest("GET", 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.get("https://test.deribit.com/api/v2/private/get_lsp_participants_usage")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_lsp_participants_usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 8804,
"result": {
"cooldown_period_ms": 300000,
"participants": [
{
"user_id": 172345,
"groups": {
"1": {
"pct": 15,
"used": 250000,
"cooldown_start": 1750000100000,
"cooldown_end": 1750000400000
},
"2": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"3": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"4": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"5": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"6": {
"pct": 0,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"rwa": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
}
}
}
]
}
}{
"jsonrpc": "2.0",
"message": "<string>",
"error": 123,
"id": 123
}private/get_lsp_participants_usage
Retrieves per-cooldown-group assignment usage for all LSP (Liquidity Support Program) participant subaccounts configured under the authenticated main account.
Must be called with an API key belonging to the main account — returns an error if called from a subaccount. Use the user_id parameter to filter the result down to a single participant.
As with private/get_lsp_usage, each participant’s group usage reports pct (limit, as a percentage of equity), used (USD within the current fixed window — flat until the window closes, then resets to 0 in one step), and cooldown_start/cooldown_end (the current window’s timing) — remaining capacity is not computed for you and the leverage-derived cap applied at assignment time is not exposed on any user-facing endpoint.
Scope: account:read
curl --request GET \
--url https://test.deribit.com/api/v2/private/get_lsp_participants_usage \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 8804,
"method": "private/get_lsp_participants_usage",
"params": {
"user_id": 172345
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_lsp_participants_usage"
payload = {
"jsonrpc": "2.0",
"id": 8804,
"method": "private/get_lsp_participants_usage",
"params": { "user_id": 172345 }
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 8804,
method: 'private/get_lsp_participants_usage',
params: {user_id: 172345}
})
};
fetch('https://test.deribit.com/api/v2/private/get_lsp_participants_usage', 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://test.deribit.com/api/v2/private/get_lsp_participants_usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 8804,
'method' => 'private/get_lsp_participants_usage',
'params' => [
'user_id' => 172345
]
]),
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://test.deribit.com/api/v2/private/get_lsp_participants_usage"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}")
req, _ := http.NewRequest("GET", 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.get("https://test.deribit.com/api/v2/private/get_lsp_participants_usage")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_lsp_participants_usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 8804,\n \"method\": \"private/get_lsp_participants_usage\",\n \"params\": {\n \"user_id\": 172345\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 8804,
"result": {
"cooldown_period_ms": 300000,
"participants": [
{
"user_id": 172345,
"groups": {
"1": {
"pct": 15,
"used": 250000,
"cooldown_start": 1750000100000,
"cooldown_end": 1750000400000
},
"2": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"3": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"4": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"5": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"6": {
"pct": 0,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
},
"rwa": {
"pct": 10,
"used": 0,
"cooldown_start": null,
"cooldown_end": null
}
}
}
]
}
}{
"jsonrpc": "2.0",
"message": "<string>",
"error": 123,
"id": 123
}Query Parameters
Id of a (sub)account - by default current user id is used
1
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Length of the rolling cooldown window in milliseconds, common to all participants.
Hide child attributes
Hide child attributes
Unique user identifier
57874
Per-cooldown-group assignment usage, keyed by group ("1"-"6" for crypto tiers, "rwa" for real-world-asset instruments). Groups with no configured limit and no usage may be absent.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
The effective limit for this group as a percentage of the participant's equity (the participant's group_limits override if set, otherwise the platform-wide default for that group).
USD notional already assigned to this group within the current fixed cooldown window.
This is a fixed window, not a smoothly-decaying rolling one: usage accumulates from the first assignment in the window and stays flat — it does not decrease as individual entries "age" — until the window as a whole expires (cooldown_end), at which point it resets to 0 in one step and the next assignment starts a brand new window.
Note: neither the absolute limit (pct / 100 * equity) nor the remaining capacity is returned directly — compute it yourself from pct, used, and your own equity (private/get_account_summary). Even that computed figure won't reflect the additional margin/leverage-derived cap (max_leverage * equity - notional) applied at assignment time, which is not exposed on any user-facing endpoint.
Timestamp (milliseconds since the UNIX epoch) of the first assignment that opened this group's current fixed window, or null if the group has no tracked usage.
Timestamp (milliseconds since the UNIX epoch) at which the current fixed window closes (cooldown_start + cooldown_period_ms) and this group's used resets to 0, or null if the group has no tracked usage.
The id that was sent in the request
Was this page helpful?