curl --request GET \
--url https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials', 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.mainnet.aptoslabs.com/decibel/api/v1/protected_trials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"account": "<string>",
"active_trials": [
{
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
],
"history": [
{
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
],
"history_total_count": 1,
"active_trial": {
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
}Get account's protected (FFT) trials
Returns the account’s active protected trials plus a paginated terminal
history (organic closes and admin resets). limit/offset apply to
history only. An optional campaign_addr scopes the whole response.
curl --request GET \
--url https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials', 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.mainnet.aptoslabs.com/decibel/api/v1/protected_trials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mainnet.aptoslabs.com/decibel/api/v1/protected_trials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"account": "<string>",
"active_trials": [
{
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
],
"history": [
{
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
],
"history_total_count": 1,
"active_trial": {
"campaign_addr": "<string>",
"trial_id": 1,
"user": "<string>",
"close_stalled": true,
"closed_at_ms": 123,
"closed_by": "<string>",
"expires_at_ms": 123,
"leverage_at_open": 1,
"mark_at_close": 1,
"mark_at_close_usd": 123,
"mark_at_open": 1,
"mark_at_open_usd": 123,
"market": "<string>",
"opened_at_ms": 123,
"prior_status": "Active",
"protected_amount": 1,
"protected_amount_usd": 123,
"size": 123,
"trial_subaccount": "<string>",
"user_payout": 1,
"user_payout_usd": 123,
"vault_returned": 1,
"vault_returned_usd": 123
}
}Authorizations
Bearer token from Geomi. See Authentication for setup instructions.
Query Parameters
User account address (user query alias is also accepted)
Optional campaign address filter (default: all campaigns)
Page size — paginates history only
0 <= x <= 200Page offset — paginates history only
0 <= x <= 10000Response
Protected trials retrieved successfully
All active trials across campaigns.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Total terminal history rows matching the filters across all pages; unknown-settle_reason rows are excluded from both the page and this count.
x >= 0Compat slot: the active trial in the requested campaign, or the most recent across campaigns.
Show child attributes
Show child attributes

