Get account's campaign locks
curl --request GET \
--url https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks"
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/campaign_locks', 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/campaign_locks",
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/campaign_locks"
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/campaign_locks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks")
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>",
"locks": [
{
"amount": 1,
"amount_usd": 123,
"campaign_addr": "<string>",
"duration_days": 1,
"lock_id": 1,
"lock_subaccount": "<string>",
"locked_at_ms": 123,
"status": "Active",
"trial_id": 1,
"unlocks_at_ms": 123,
"was_extended": true,
"claimed_at_ms": 123,
"extended_at_ms": 123,
"previous_unlocks_at_ms": 123,
"returned_amount": 1,
"returned_amount_usd": 123
}
],
"total_count": 1
}Campaigns
Get account's campaign locks
Returns the latest state of each FFT campaign lock for the account, sorted by lock time descending. Optionally filtered by campaign and status.
GET
/
api
/
v1
/
campaign_locks
Get account's campaign locks
curl --request GET \
--url https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks"
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/campaign_locks', 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/campaign_locks",
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/campaign_locks"
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/campaign_locks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mainnet.aptoslabs.com/decibel/api/v1/campaign_locks")
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>",
"locks": [
{
"amount": 1,
"amount_usd": 123,
"campaign_addr": "<string>",
"duration_days": 1,
"lock_id": 1,
"lock_subaccount": "<string>",
"locked_at_ms": 123,
"status": "Active",
"trial_id": 1,
"unlocks_at_ms": 123,
"was_extended": true,
"claimed_at_ms": 123,
"extended_at_ms": 123,
"previous_unlocks_at_ms": 123,
"returned_amount": 1,
"returned_amount_usd": 123
}
],
"total_count": 1
}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
Optional status filter (Active, Claimed) PascalCase deliberately follows the trial-DTO family, not the campaigns family's lowercase.
Available options:
Active, Claimed Page size
Required range:
0 <= x <= 200Page offset
Required range:
0 <= x <= 10000Response
Campaign locks retrieved successfully

