Supra Tables API

Tables Api

Operations 1

POST /rpc/v2/tables/{table_handle}/item Get table item (v2) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/supra-tables-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

supra-tables-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Supra RPC Node Tables API
  description: '0.5.0

    tag:supra_rpc_v11.5.2

    commit_hash:5e9ea652

    build_time:2026-08-25 08:38:29 +00:00

    build_env:rustc 1.97.1 (8bab26f4f 2026-07-14),1.97.1-x86_64-unknown-linux-gnu'
  contact:
    name: Supra Labs
    url: https://supra.com
  version: 5e9ea652457cd48aba6b1505bdd59da27fec13f6
servers:
- url: /
tags:
- name: Tables
  description: Tables Api
paths:
  /rpc/v2/tables/{table_handle}/item:
    post:
      tags:
      - Tables
      summary: Get table item (v2)
      description: 'Get the value at the `key` specified in the request body from the Move table identified by the `{table_handle}` path parameter.

        The key must be represented as an instance of `key_type` in the Move state, and the value must be represented as an instance of `value_type`.

        If either the key or the value cannot be parsed into the corresponding type then the API will return status code 400.


        ## Example of body

        ```json

        {

        "key_type": "u64",

        "value_type": "0x1::multisig_voting::Proposal",

        "key": "12"

        }

        ```

        ```json

        {

        "key_type": "u64",

        "value_type": "0x1::string::String",

        "key": "42"

        }

        ```'
      operationId: table_item_by_key
      parameters:
      - name: table_handle
        in: path
        description: Table handle to lookup. Should be a valid Move address retrieved from the account resources API.
        required: true
        schema:
          type: string
      requestBody:
        description: Request containing item key and value types and item key itself
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableItemRequest'
        required: true
      responses:
        '200':
          description: Item of the table
          headers:
            x-supra-chain-id:
              schema:
                type: integer
                format: u-int8
                minimum: 0
              description: Chain ID of the current chain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveValue'
        '400':
          description: Provided values cannot be parsed into the corresponding types.
          headers:
            x-supra-chain-id:
              schema:
                type: integer
                format: u-int8
                minimum: 0
              description: Chain ID of the current chain.
components:
  schemas:
    MoveValue:
      oneOf:
      - type: object
        description: A u8 Move type
        required:
        - U8
        properties:
          U8:
            type: integer
            format: u-int8
            description: A u8 Move type
            minimum: 0
      - type: object
        required:
        - U16
        properties:
          U16:
            type: integer
            format: u-int16
            minimum: 0
      - type: object
        required:
        - U32
        properties:
          U32:
            type: integer
            format: u-int32
            minimum: 0
      - type: object
        description: A string encoded U64.
        required:
        - U64
        properties:
          U64:
            type: string
            description: A string encoded U64.
      - type: object
        description: A string encoded U128.
        required:
        - U128
        properties:
          U128:
            type: string
            description: A string encoded U128.
      - type: object
        description: A string encoded U256.
        required:
        - U256
        properties:
          U256:
            type: string
            description: A string encoded U256.
      - type: object
        description: A bool Move type
        required:
        - Bool
        properties:
          Bool:
            type: boolean
            description: A bool Move type
      - type: object
        description: 'The address of an account


          This is represented in a string as a 64 character hex string, sometimes

          shortened by stripping leading 0s, and adding a 0x.'
        required:
        - Address
        properties:
          Address:
            type: string
            description: 'The address of an account


              This is represented in a string as a 64 character hex string, sometimes

              shortened by stripping leading 0s, and adding a 0x.'
      - type: object
        description: A vector Move type.  May have any other [`MoveValue`] nested inside it
        required:
        - Vector
        properties:
          Vector:
            type: array
            items:
              type: string
            description: A vector Move type.  May have any other [`MoveValue`] nested inside it
      - type: object
        description: '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.'
        required:
        - Bytes
        properties:
          Bytes:
            type: string
            description: '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.'
      - type: object
        description: "This is a JSON representation of some data within an account resource. More specifically,\nit is a map of strings to arbitrary JSON values / objects, where the keys are top level\nfields within the given resource.\n\nTo clarify, you might query for 0x1::account::Account and see the example data.\n\nMove `bool` type value is serialized into `boolean`.\n\nMove `u8`, `u16` and `u32` type value is serialized into `integer`.\n\nMove `u64`, `u128` and `u256` type value is serialized into `string`.\n\nMove `address` type value (32 byte Supra account address) is serialized into a HexEncodedBytes string.\nFor example:\n  - `0x1`\n  - `0x1668f6be25668c1a17cd8caf6b8d2f25`\n\nMove `vector` type value is serialized into `array`, except `vector<u8>` which is serialized into a\nHexEncodedBytes string with `0x` prefix.\nFor example:\n  - `vector<u64>{255, 255}` => `[\\\"255\\\", \\\"255\\\"]`\n  - `vector<u8>{255, 255}` => `0xffff`\n\nMove `struct` type value is serialized into `object` that looks like this (except some Move stdlib types, see the following section):\n  ```json\n  {\n    field1_name: field1_value,\n    field2_name: field2_value,\n    ......\n  }\n  ```\n\nFor example:\n  `{ \\\"created\\\": \\\"0xa550c18\\\", \\\"role_id\\\": \\\"0\\\" }`\n\n**Special serialization for Move stdlib types**:\n  - [0x1::string::String]\n    is serialized into `string`. For example, struct value `0x1::string::String{bytes: b\\\"Hello World!\\\"}`\n    is serialized as `\\\"Hello World!\\\"` in JSON.\n"
        required:
        - Struct
        properties:
          Struct:
            type: object
            description: "This is a JSON representation of some data within an account resource. More specifically,\nit is a map of strings to arbitrary JSON values / objects, where the keys are top level\nfields within the given resource.\n\nTo clarify, you might query for 0x1::account::Account and see the example data.\n\nMove `bool` type value is serialized into `boolean`.\n\nMove `u8`, `u16` and `u32` type value is serialized into `integer`.\n\nMove `u64`, `u128` and `u256` type value is serialized into `string`.\n\nMove `address` type value (32 byte Supra account address) is serialized into a HexEncodedBytes string.\nFor example:\n  - `0x1`\n  - `0x1668f6be25668c1a17cd8caf6b8d2f25`\n\nMove `vector` type value is serialized into `array`, except `vector<u8>` which is serialized into a\nHexEncodedBytes string with `0x` prefix.\nFor example:\n  - `vector<u64>{255, 255}` => `[\\\"255\\\", \\\"255\\\"]`\n  - `vector<u8>{255, 255}` => `0xffff`\n\nMove `struct` type value is serialized into `object` that looks like this (except some Move stdlib types, see the following section):\n  ```json\n  {\n    field1_name: field1_value,\n    field2_name: field2_value,\n    ......\n  }\n  ```\n\nFor example:\n  `{ \\\"created\\\": \\\"0xa550c18\\\", \\\"role_id\\\": \\\"0\\\" }`\n\n**Special serialization for Move stdlib types**:\n  - [0x1::string::String]\n    is serialized into `string`. For example, struct value `0x1::string::String{bytes: b\\\"Hello World!\\\"}`\n    is serialized as `\\\"Hello World!\\\"` in JSON.\n"
      - type: object
        description: A string Move type
        required:
        - String
        properties:
          String:
            type: string
            description: A string Move type
      description: An enum of the possible Move value types.
    TableItemRequest:
      type: object
      description: Describes body of the Table item request by item key.
      required:
      - key_type
      - value_type
      - key
      properties:
        key_type:
          type: string
          description: '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::supra_coin::SupraCoin>>`


            Struct type value examples:

            - `0x1::coin::CoinStore<0x1::supra_coin::SupraCoin>`

            - `0x1::account::Account`


            Note:

            1. Empty chars should be ignored when comparing 2 struct tag ids.

            2. When used in a URL path, should be encoded by url-encoding (AKA percent-encoding).'
        value_type:
          type: string
          description: '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::supra_coin::SupraCoin>>`


            Struct type value examples:

            - `0x1::coin::CoinStore<0x1::supra_coin::SupraCoin>`

            - `0x1::account::Account`


            Note:

            1. Empty chars should be ignored when comparing 2 struct tag ids.

            2. When used in a URL path, should be encoded by url-encoding (AKA percent-encoding).'
        key:
          description: The value of the table item's key.