Get Token
Returns one token with everything a client needs to show it and to decide what it may offer on it. Four flags answer the last part: is_public (transfers open), is_open_to_secondary_market and is_open_to_otc (whether that venue is open for the token at all; the market listings only say what is currently for sale), and is_external (the token is bought through a partner integration rather than minted here, the same fact origin encodes as 1). Unlike List Tokens, any token that is not deleted is returned, whatever its status.
value and metric are not read straight off the token: they come from the token's latest history snapshot. An admin change that still waits for the chain is therefore not shown until it is confirmed; an off-chain edit is visible on the next read.
Required permission: token:view
Request
GET /v2/users/tokens/{token_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
token_id | string | path | Required. Token ID |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users/tokens/68ae06cfcccf4e8fc19362d1' \
--header 'Authorization: Bearer <access_token>'
Response
{
"id": "68ae06cfcccf4e8fc19362d1",
"category_id": "667e9251ca818a2138ed4885",
"origin": 0,
"standard": 0,
"node_id": "665ae536a6392b75cfd40352",
"created_by_id": "68d280bbc58073cdf5642d20",
"node_name": "Uber",
"status": 6,
"is_mintable": false,
"is_public": false,
"is_open_to_secondary_market": true,
"is_open_to_otc": true,
"is_external": false,
"name": "Sample Token",
"description": "A sample token for demonstration purposes",
"token_name": "Sample",
"token_symbol": "STK",
"node_contract": {
"diamond_address": "0x730d22ae2267fc5b40520605868ddb48c29331a7"
},
"meta": {
"images": [
{
"url": "https://cdn.example.com/tokens/68ae06cfcccf4e8fc19362d1/cover.png",
"is_default": true
}
],
"documents": [
{
"id": "68ae07a1cccf4e8fc19362d4",
"name": "Valuation report",
"url": "https://files.example.com/tokens/68ae06cfcccf4e8fc19362d1/valuation.pdf?X-Amz-Expires=900&X-Amz-Signature=...",
"type": 1
}
]
},
"contract": {
"address": "0x4ecde4b1b0a8f7a5d5c1e0f1a2b3c4d5e6f78387",
"tx_hash": "0x9c1f0e7d3b5a2c4e6f8a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"
},
"value": {
"token_price": {
"amount": "1.12",
"decimal": 6,
"symbol": "VUSD",
"address": "0xf2d90affe805280c004d0135343f2cbd7c96ce98"
},
"total_value": {
"amount": "11200",
"decimal": 6,
"symbol": "VUSD",
"address": "0xf2d90affe805280c004d0135343f2cbd7c96ce98"
},
"salable_percentage": "100",
"salable_value": {
"amount": "11200",
"decimal": 6,
"symbol": "VUSD",
"address": "0xf2d90affe805280c004d0135343f2cbd7c96ce98"
},
"max_supply": 10000,
"listed_supply": 8000,
"sold_supply": 1200
},
"distribution_token": null,
"metric": {
"term_duration_in_months": 12,
"min_purchase_quantity": 1,
"max_purchase_quantity": 100,
"min_tokens_required_for_rental_income": 10,
"rental_income": {
"amount": "50",
"decimal": 6,
"symbol": "VUSD",
"address": "0xf2d90affe805280c004d0135343f2cbd7c96ce98"
},
"rental_payment_period_in_days": 30,
"rental_payment_start_date": "2026-12-01T00:00:00Z",
"listing_date": "2026-11-01T00:00:00Z"
},
"hourly_rate_change": null,
"daily_rate_change": {
"start_date": "2026-11-09T00:05:12Z",
"end_date": "2026-11-09T09:40:03Z",
"start_value": "1.1",
"end_value": "1.12",
"rate": "1.81",
"change_type": 1
},
"weekly_rate_change": null,
"monthly_rate_change": null,
"quarterly_rate_change": null,
"created_at": "2026-10-30T12:00:00Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Token ID |
category_id | string | Category ID |
origin | integer | 0 platform token, 1 external token |
standard | integer | Token standard: 0 ERC-20, 1 ERC-721, 2 ERC-1155, 3 ERC-3643, 4 ERC-4380 |
node_id | string | Node that issued the token |
created_by_id | string | Supervisor who created the token; empty when not recorded |
node_name | string | Name of the account node above the issuing node, or the issuing node's own name |
status | integer | 0 none, 1 draft, 2 in progress, 3 error, 4 not listed, 5 delisted, 6 listed, 7 passive, 8 burn |
is_mintable | boolean | Whether more supply can be minted |
is_public | boolean | Whether transfers of the token are open |
is_open_to_secondary_market | boolean | Whether the token may be listed on the secondary market |
is_open_to_otc | boolean | Whether OTC offers may be made on the token |
is_external | boolean | true for a token bought through a partner integration (origin = 1) |
name | string | Display name |
description | string | Description |
token_name | string | On-chain token name |
token_symbol | string | On-chain token symbol |
node_contract.diamond_address | string | null | Diamond contract of the issuing node |
meta.images[] | array | Images: url, is_default |
meta.documents[] | array | Documents: id, name, url, type (1 standard document). url is a signed link that opens the document for 15 minutes and is minted on every read: read the token again for a fresh link instead of storing it |
contract | object | null | Token contract: address, tx_hash of the deploy. null until deployed |
value.token_price | object | Price of one token: amount (decimal string), decimal, symbol, address of the payment currency |
value.total_value | object | Total value of the asset, same shape |
value.salable_percentage | string | Share of the value offered for sale, in percent |
value.salable_value | object | Value offered for sale, same shape as token_price |
value.max_supply | integer | Maximum supply |
value.listed_supply | integer | Supply listed for sale |
value.sold_supply | integer | Supply sold |
distribution_token | object | null | Partner-integration settings of an external token: agent, and under integration the network_id, abi, contract_address, function_name, currency_token_address, is_approved and args[] (type, value, description). null when the token has none |
metric | object | null | Token metrics, below. null when not set |
metric.term_duration_in_months | integer | null | Term in months |
metric.min_purchase_quantity | integer | Minimum purchase quantity configured on the token |
metric.max_purchase_quantity | integer | Per-user holding cap enforced by Buy On Primary Market. 0 means no cap |
metric.min_tokens_required_for_rental_income | integer | Tokens a holder needs to receive rent |
metric.rental_income | object | Rental income, same shape as token_price |
metric.rental_payment_period_in_days | integer | Rent payment period in days |
metric.rental_payment_start_date | string | null | First rent payment date (RFC 3339) |
metric.listing_date | string | null | Listing date (RFC 3339) |
hourly_rate_change, daily_rate_change, weekly_rate_change, monthly_rate_change, quarterly_rate_change | object | null | Price movement in the current hour, day, week, month and quarter. Shape on Get Token Rates; null when there is no history in the window |
created_at | string | Creation time (RFC 3339) |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10016 | token_id is not a valid 24-character hex id |
| 400 | 10001 | Token not found (domain 5) |
| 500 | 10000 | Unexpected server-side failure |
See Errors for the error format and common codes.