Get table item
POST/tables/:table_handle/item
Get a table item at a specific ledger version from the table identified by {table_handle} in the path and the "key" (TableItemRequest) provided in the request body.
This is a POST endpoint because the "key" for requesting a specific table item (TableItemRequest) could be quite complex, as each of its fields could themselves be composed of other structs. This makes it impractical to express using query params, meaning GET isn't an option.
The Aptos nodes prune account state history, via a configurable time window. If the requested ledger version has been pruned, the server responds with a 410.
Request
Path Parameters
Table handle hex encoded 32-byte string
Query Parameters
Ledger version to get state of account
If not provided, it will be the latest version
- application/json
Body
required
Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$
String representation of an on-chain Move type tag that is exposed in transaction payload.
Values:
- bool
- u8
- u16
- u32
- u64
- u128
- u256
- address
- signer
- vector: vector<{non-reference MoveTypeId}>
- struct: {address}::{module_name}::{struct_name}::<{generic types}>
Vector type value examples:
- `vector<u8>`
- `vector<vector<u64>>`
- `vector<0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>>`
Struct type value examples:
- `0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>
- `0x1::account::Account`
Note:
1. Empty chars should be ignored when comparing 2 struct tag ids.
2. When used in an URL path, should be encoded by url-encoding (AKA percent-encoding).
Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$
String representation of an on-chain Move type tag that is exposed in transaction payload.
Values:
- bool
- u8
- u16
- u32
- u64
- u128
- u256
- address
- signer
- vector: vector<{non-reference MoveTypeId}>
- struct: {address}::{module_name}::{struct_name}::<{generic types}>
Vector type value examples:
- `vector<u8>`
- `vector<vector<u64>>`
- `vector<0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>>`
Struct type value examples:
- `0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>
- `0x1::account::Account`
Note:
1. Empty chars should be ignored when comparing 2 struct tag ids.
2. When used in an URL path, should be encoded by url-encoding (AKA percent-encoding).
The value of the table item's key
Responses
- 200
- 400
- 403
- 404
- 410
- 500
- 503
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
X-APTOS-CURSOR
string
Cursor to be used for endpoints that support cursor-based pagination. Pass this to the
start
field of the endpoint on the next call to get the next page of results.
- application/json
- application/x-bcs
- Schema
Schema
- MOD1
- MOD2
- MOD3
- U64
- U128
- U256
- MOD7
- Address
- MOD9
- HexEncodedBytes
- MoveStructValue
- MOD12
Array [
]
0x1
0x1668f6be25668c1a17cd8caf6b8d2f25
vector<u64>{255, 255}
=>["255", "255"]
vector<u8>{255, 255}
=>0xffff
-
0x1::string::String is serialized into
string
. For example, struct value0x1::string::String{bytes: b"Hello World!"}
is serialized as"Hello World!"
in JSON.
anyOf
integer
integer
integer
A string containing a 64-bit unsigned integer.
We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.
string
A string containing a 128-bit unsigned integer.
We represent u128 values as a string to ensure compatibility with languages such as JavaScript that do not parse u128s in JSON natively.
string
A string containing a 256-bit unsigned integer.
We represent u256 values as a string to ensure compatibility with languages such as JavaScript that do not parse u256s in JSON natively.
string
boolean
A hex encoded 32 byte Aptos account address.
This is represented in a string as a 64 character hex string, sometimes shortened by stripping leading 0s, and adding a 0x.
For example, address 0x0000000000000000000000000000000000000000000000000000000000000001 is represented as 0x1.
string
All bytes (Vec<u8>
) data is represented as hex-encoded string prefixed with 0x
and fulfilled with
two hex digits per byte.
Unlike the Address
type, HexEncodedBytes will not trim any zeros.
string
This is a JSON representation of some data within an account resource. More specifically, it is a map of strings to arbitrary JSON values / objects, where the keys are top level fields within the given resource.
To clarify, you might query for 0x1::account::Account and see the example data.
Move bool
type value is serialized into boolean
.
Move u8
, u16
and u32
type value is serialized into integer
.
Move u64
, u128
and u256
type value is serialized into string
.
Move address
type value (32 byte Aptos account address) is serialized into a HexEncodedBytes string.
For example:
Move vector
type value is serialized into array
, except vector<u8>
which is serialized into a
HexEncodedBytes string with 0x
prefix.
For example:
Move struct
type value is serialized into object
that looks like this (except some Move stdlib types, see the following section):
\{
field1_name: field1_value,
field2_name: field2_value,
......
\}
For example:
{ "created": "0xa550c18", "role_id": "0" }
Special serialization for Move stdlib types:
object
string
- Schema
- Example (from schema)
Schema
Array [
]
integer
[
0
]
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
Response Headers
X-APTOS-CHAIN-ID
integer
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer
Current timestamp of the chain
X-APTOS-EPOCH
integer
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer
The cost of the call in terms of gas
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
Possible values: [account_not_found
, resource_not_found
, module_not_found
, struct_field_not_found
, version_not_found
, transaction_not_found
, table_item_not_found
, block_not_found
, state_value_not_found
, version_pruned
, block_pruned
, invalid_input
, invalid_transaction_update
, sequence_number_too_old
, vm_error
, health_check_failed
, mempool_is_full
, internal_error
, web_framework_error
, bcs_not_supported
, api_disabled
]
These codes provide more granular error information beyond just the HTTP status code of the response.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}