curl --request GET \
--url https://hip4-api.totalis.trade/v1/me/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://hip4-api.totalis.trade/v1/me/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hip4-api.totalis.trade/v1/me/activity', 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://hip4-api.totalis.trade/v1/me/activity",
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://hip4-api.totalis.trade/v1/me/activity"
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://hip4-api.totalis.trade/v1/me/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hip4-api.totalis.trade/v1/me/activity")
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{
"context": {
"as_of": "2026-09-26T11:59:58Z",
"status": "CURRENT"
},
"items": [
{
"activity_id": "e8600eddcc05d910cdc69c8fa14baa7303b994b563e11fe1427c3ea51cf415f3",
"revision": "1",
"sequence": "1791",
"kind": "INTERNAL_TRANSFER",
"status": "COMMITTED",
"occurred_at": "2026-09-23T14:07:31Z",
"recorded_at": "2026-09-23T14:07:33.482915Z",
"operation_ids": [],
"position_ids": [],
"supersedes": [],
"transaction_hashes": [
"0xa57d42e84c9657d92132de83bea790cd286dca80157d4c0f529696ce1c050a2a"
],
"effects": [
{
"asset": {
"asset_id": "eip155:999/erc20:0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6
},
"bucket": "VAULT_USER",
"delta": "250000000",
"classification": "INTERNAL_TRANSFER"
},
{
"asset": {
"asset_id": "eip155:999/erc20:0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6
},
"bucket": "WALLET",
"delta": "-250000000",
"classification": "INTERNAL_TRANSFER"
}
],
"fill": null,
"counterparty": "0x1111111111111111111111111111111111111111",
"description_code": "WALLET_VAULT_TRANSFER"
}
],
"next_cursor": null,
"has_more": false
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}List activity
List your account’s activity.
Requires one of:
- a key for your account with
account:read - a key for a maker with
vault:readand the maker permissionREAD_ACTIVITY
curl --request GET \
--url https://hip4-api.totalis.trade/v1/me/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://hip4-api.totalis.trade/v1/me/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hip4-api.totalis.trade/v1/me/activity', 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://hip4-api.totalis.trade/v1/me/activity",
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://hip4-api.totalis.trade/v1/me/activity"
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://hip4-api.totalis.trade/v1/me/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hip4-api.totalis.trade/v1/me/activity")
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{
"context": {
"as_of": "2026-09-26T11:59:58Z",
"status": "CURRENT"
},
"items": [
{
"activity_id": "e8600eddcc05d910cdc69c8fa14baa7303b994b563e11fe1427c3ea51cf415f3",
"revision": "1",
"sequence": "1791",
"kind": "INTERNAL_TRANSFER",
"status": "COMMITTED",
"occurred_at": "2026-09-23T14:07:31Z",
"recorded_at": "2026-09-23T14:07:33.482915Z",
"operation_ids": [],
"position_ids": [],
"supersedes": [],
"transaction_hashes": [
"0xa57d42e84c9657d92132de83bea790cd286dca80157d4c0f529696ce1c050a2a"
],
"effects": [
{
"asset": {
"asset_id": "eip155:999/erc20:0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6
},
"bucket": "VAULT_USER",
"delta": "250000000",
"classification": "INTERNAL_TRANSFER"
},
{
"asset": {
"asset_id": "eip155:999/erc20:0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6
},
"bucket": "WALLET",
"delta": "-250000000",
"classification": "INTERNAL_TRANSFER"
}
],
"fill": null,
"counterparty": "0x1111111111111111111111111111111111111111",
"description_code": "WALLET_VAULT_TRANSFER"
}
],
"next_cursor": null,
"has_more": false
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}Authorizations
Scoped API key from the Totalis app settings. Each key acts for one account, yours or a maker's, and holds only scopes that account can use. Each operation lists the scopes it requires.
Headers
Required for browser sessions; API keys do not require an Origin.
Query Parameters
Maximum items per page, 1 to 200, default 50. A page may hold fewer, even none, while has_more is true. Maximum items in one page. A page may hold fewer, even none, while has_more is true.
1 <= x <= 200Omit for the first page; then send the previous response's next_cursor unchanged. Opaque list cursor. Send a previous response's next_cursor back unchanged; never build or parse one.
1 - 2048Return only activities of this kind.
DEPOSIT, WITHDRAWAL, INTERNAL_TRANSFER, ACCEPT, CASHOUT, POSITION_TRANSFER, SETTLEMENT, CLAIM, FILL, ORDER, CREDIT, CONVERSION, FUNDING, FEE, CORRECTION, REFUND Return only activities with this status. A status-filtered page is a display view, never a balance or P&L basis.
PENDING, UNKNOWN, COMMITTED, FAILED, REVERTED, CORRECTED Inclusive RFC3339 lower bound on occurred_at (recorded_at for workflow entries without one). Chain activity whose occurrence time is unknown is always included.
Exclusive RFC3339 upper bound on occurred_at (recorded_at for workflow entries without one). Chain activity whose occurrence time is unknown is always included.
Return only activities that reference this position ID (lowercase bytes32 hex).
^0x[0-9a-f]{64}$Return only activities with evidence from this source: HYPEREVM (EVM logs), HYPERCORE (Hyperliquid ledger) or VENUE (Totalis workflows).
HYPEREVM, HYPERCORE, VENUE Response
Your activity, built from on-chain records and operations. A key reads its own account's: yours, or its maker's. One freshness status covers the read; amounts are atomic USDC strings or null. No shared caching.
Freshness of this read: the oldest source observation and one status for every amount in the response.
Show child attributes
Show child attributes
Activities on this page, ordered by sequence, then activity_id, descending.
Show child attributes
Show child attributes
Opaque cursor for the next page, bound to this response's snapshot; null on the last page. Send it back unchanged as cursor.
1 - 2048True when another page exists; true exactly when next_cursor is non-null.
Was this page helpful?

