Get User Transactions
Lists a user's transactions, newest first, optionally narrowed to some transaction types. Every user-side write (buy, sell, delist, OTC sell and cancel, rent claim, burn, withdraw) records one of these rows. To follow a single transaction_id, read it directly with Get User Transaction instead of paging this list.
Required permission: user:view
Request
GET /v2/users/{user_id}/transactions
Parameters
| Name | Type | In | Description |
|---|---|---|---|
user_id | string | path | Required. User ID |
page | integer | query | Required. Page number, starting at 1 |
per_page | integer | query | Required. Items per page, 1–100 |
types | integer | query | Optional, repeatable. Only return these types, e.g. types=1&types=2 |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users/6a87455ad5f439809d488ac3/transactions?page=1&per_page=10&types=1&types=10' \
--header 'Authorization: Bearer <access_token>'
Response
{
"data": [
{
"id": "6985e6fa07aa9b80c33f6a7d",
"user_id": "6a87455ad5f439809d488ac3",
"type": 1,
"status": 3,
"environment": 0,
"internal_id": "698345d9e2cb4cfb988cacb3",
"wallet_id": "6a8754e187be1d0e22aa6d83",
"external_id": "",
"hash": "0xc34e006659d532a0c8212a8ec624a08cfab3ffbd102936a681ab81e3cf7e0c6d",
"error": null,
"message": null,
"data": {
"token_id": "698345d9e2cb4cfb988cacb3",
"quantity": 7,
"price_id": "6913307ec95e268b239b2d8b",
"price_amount": "1",
"price_decimal": 6,
"price_symbol": "VUSD",
"price_address": "0xf2d90affe805280c004d0135343f2cbd7c96ce98",
"seller_address": "0x11dd160a9e962e8fac0b3307ef75ad4ea3f4d82c",
"buyer_address": "0x4a096e485281de1b8bf11a511d39d5b128ef7c4b",
"wallet_id": "6a8754e187be1d0e22aa6d83",
"total_fee_percentage": "4",
"total_fee_amount": "0.28"
},
"is_api": true,
"created_at": "2026-08-23T13:04:58.802Z",
"updated_at": "2026-08-23T13:05:09.911Z"
},
{
"id": "6a8b5e13f9129816a6cc7a12",
"user_id": "6a87455ad5f439809d488ac3",
"type": 10,
"status": 1,
"environment": 0,
"internal_id": "",
"wallet_id": "6a8754e187be1d0e22aa6d83",
"external_id": "",
"hash": null,
"error": null,
"message": null,
"data": {
"address": "0x4A096E485281DE1B8bF11A511D39d5B128EF7C4b",
"amount": "10.5",
"currency_token_id": "6913307ec95e268b239b2d8b"
},
"is_api": true,
"created_at": "2026-08-23T17:43:31.004Z",
"updated_at": "2026-08-23T17:43:31.004Z"
}
],
"total": 2,
"page": 1,
"per_page": 10
}
Response Fields
| Field | Type | Description |
|---|---|---|
data | array | Transactions on this page. Empty array when the user has none (an unknown user also answers an empty page) |
total | integer | Number of transactions matching the filter |
page | integer | Requested page |
per_page | integer | Requested page size |
Each transaction:
| Field | Type | Description |
|---|---|---|
id | string | Transaction ID |
user_id | string | The user the transaction belongs to |
type | integer | What the transaction does, see Type |
status | integer | See Status |
environment | integer | See Environment |
internal_id | string | The record the transaction acts on (listing, OTC offer, token). Empty string when there is none |
wallet_id | string | The wallet the transaction runs on and signs with. Empty string on transactions that name no wallet |
external_id | string | Custody-side reference, when there is one |
hash | string | null | On-chain transaction hash; set on Done |
error | string | null | Failure reason; set on Error |
message | string | null | Human-readable note, when one was given |
data | object | Type-specific payload, see Data by type. Omitted when the transaction has none |
is_api | boolean | Whether the action came through the partner API |
created_at | string | ISO 8601 creation time |
updated_at | string | ISO 8601 time of the last change |
Type (Transaction Type)
| Value | Name | Created by |
|---|---|---|
| 1 | PurchaseOnPrimaryMarket | Buy On Primary Market |
| 2 | PurchaseOnSecondaryMarket | Buy On Secondary Market |
| 3 | SellOnSecondaryMarket | Sell On Secondary Market |
| 4 | DelistOnSecondaryMarket | Delist |
| 5 | ClaimRent | Claim Rent |
| 6 | CreateOtcOffer | Sell On OTC |
| 7 | CancelOtcOffer | Cancel OTC Deal |
| 8 | Burn | Burn |
| 9 | PurchaseOnDistributionMarket | Distribution market purchase |
| 10 | Withdraw | Withdraw |
Status
| Value | Name | Meaning |
|---|---|---|
| 1 | Started | Recorded, not yet picked up |
| 2 | InProgress | Being processed / submitted to the chain |
| 3 | Done | Settled; hash is set |
| 4 | Error | Failed; error is set |
Environment
| Value | Name |
|---|---|
| 0 | Default |
| 1 | OTC |
| 2 | Secondary market |
Data by type
Amounts, prices and fee values inside data are decimal strings; quantities, ids of deals/rents and decimals are numbers. Optional keys are omitted when not set.
Type 1 — PurchaseOnPrimaryMarket
| Field | Type | Description |
|---|---|---|
token_id | string | Token bought |
quantity | integer | Quantity bought |
price_id | string | Currency token the price is in |
price_amount | string | Unit price |
price_decimal | integer | Price currency decimals |
price_symbol | string | Price currency symbol |
price_address | string | Price currency contract address |
seller_address | string | Seller address |
buyer_address | string | Address of the buyer's wallet |
wallet_id | string | Optional. Buyer's wallet the tokens are credited to |
total_fee_percentage | string | Optional. Total fee rate |
total_fee_amount | string | Optional. Total fee amount |
Type 2 — PurchaseOnSecondaryMarket
| Field | Type | Description |
|---|---|---|
token_id | string | Token bought |
deal_id | integer | Listing bought |
quantity | integer | Quantity bought |
price_amount, price_decimal, price_symbol, price_address | — | Price, as in type 1 |
seller_address | string | Seller address |
buyer_address | string | Address of the buyer's wallet |
wallet_id | string | Optional. Buyer's wallet the tokens are credited to |
total_buyer_fee_percentage, total_buyer_fee_amount | string | Optional. Buyer fee |
total_seller_fee_percentage, total_seller_fee_amount | string | Optional. Seller fee |
Type 3 — SellOnSecondaryMarket / Type 6 — CreateOtcOffer
| Field | Type | Description |
|---|---|---|
token_id | string | Token sold |
quantity | integer | Quantity listed / offered |
amount | integer | Total amount |
price_id, price_amount, price_decimal, price_symbol, price_address | — | Price, as in type 1 |
wallet_id | string | Optional. Seller's wallet the tokens are sold from |
total_fee_percentage, total_fee_amount | string | Optional. Fee |
Type 4 — DelistOnSecondaryMarket / Type 7 — CancelOtcOffer
| Field | Type | Description |
|---|---|---|
token_id | string | Token |
deal_id | integer | Listing / offer cancelled |
Type 5 — ClaimRent
| Field | Type | Description |
|---|---|---|
token_id | string | Token |
rent_id | integer | Rent claimed |
node_id | string | Node that paid the rent |
per_price_amount, per_price_decimal, per_price_symbol, per_price_address, per_price_id | — | Optional. Rent per token |
total_price_amount, total_price_decimal, total_price_symbol, total_price_address, total_price_id | — | Optional. Total rent |
Type 8 — Burn
| Field | Type | Description |
|---|---|---|
token_id | string | Token burned |
received_amount | string | Optional. Amount received |
received_amount_decimal | integer | Optional. Its decimals |
received_amount_symbol | string | Optional. Its symbol |
received_amount_address | string | Optional. Its contract address |
Type 10 — Withdraw
| Field | Type | Description |
|---|---|---|
address | string | Destination address |
amount | string | Amount sent |
currency_token_id | string | Currency token sent. Omitted for a native-coin withdraw |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed (page / per_page missing or out of range) — see details |
| 400 | 10016 | user_id is not a valid id |
See Errors for the error format and common codes.