List User Secondary Market Groups
Returns the user's secondary-market listings collapsed to one row per token, newest token first. total_quantity sums the quantity of every listing the user made on the token that is not still awaiting chain confirmation (open, completed and canceled listings alike). For the listings themselves, use List User Token Listings.
A user without listings gets an empty page, not a 404.
Required permission: secondary-market:view
Request
GET /v2/users/{user_id}/secondary-markets
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 |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users/680c02896d91ca0145cfeb81/secondary-markets?page=1&per_page=10' \
--header 'Authorization: Bearer <access_token>'
Response
{
"data": [
{
"token_id": "68ae06cfcccf4e8fc19362d1",
"total_quantity": 10,
"total_amount": "0",
"overall_profit": null,
"source": "secondary_market",
"token": {
"name": "Sample Token",
"symbol": "Sample",
"image": "https://cdn.example.com/tokens/68ae06cfcccf4e8fc19362d1/cover.png",
"address": "0x4ecde4b1b0a8f7a5d5c1e0f1a2b3c4d5e6f78387",
"diamond_address": "0x730d22ae2267fc5b40520605868ddb48c29331a7",
"status": 6,
"category_id": "667e9251ca818a2138ed4885",
"price_symbol": "VUSD",
"is_external": false,
"is_open_to_secondary_market": true,
"is_open_to_otc": true,
"secondary_market": null,
"rate_changes": {
"hourly": null,
"daily": null,
"weekly": null,
"monthly": null,
"quarterly": null
}
}
}
],
"total": 1,
"page": 1,
"per_page": 10
}
Response Fields
The row has the same shape as List User Holdings; on this endpoint:
| Field | Type | Description |
|---|---|---|
data[].token_id | string | Token the listings are on |
data[].total_quantity | integer | Sum of quantity over the user's listings of the token (pending listings excluded) |
data[].total_amount | string | Not computed for secondary-market groups: always "0" |
data[].overall_profit | string | null | Not computed for secondary-market groups: always null |
data[].source | string | Always secondary_market |
data[].token | object | The token: name, symbol (the token's on-chain name), image, address, diamond_address, status, category_id, price_symbol, is_external, is_open_to_secondary_market, is_open_to_otc. secondary_market is null and every rate_changes window is null on this endpoint |
total | integer | Number of tokens the user has listings on |
page | integer | Requested page |
per_page | integer | Requested page size |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed (page, per_page) — see details |
| 500 | 10000 | Unexpected server-side failure |
See Errors for the error format and common codes.