> ## Documentation Index
> Fetch the complete documentation index at: https://toncenter.ness.su/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Token Data

> Get Jetton/NFT metadata from token smart contract



## OpenAPI

````yaml GET /api/v2/getTokenData
openapi: 3.1.1
info:
  title: TON HTTP API C++
  description: >
    This API enables HTTP access to TON blockchain - getting accounts and
    wallets information, looking up blocks and transactions, sending messages to
    the blockchain, calling get methods of smart contracts, and more.


    In addition to REST API, all methods are available through [JSON-RPC
    endpoint](#json%20rpc)  with `method` equal to method name and `params`
    passed as a dictionary.


    The response contains a JSON object, which always has a boolean field `ok`
    and either `error` or `result`. If `ok` equals true, the request was
    successful and the result of the query can be found in the `result` field.
    In case of an unsuccessful request, `ok` equals false and the error is
    explained in the `error`.


    API Key should be sent either as `api_key` query parameter or `X-API-Key`
    header
  version: 2.1.1
servers:
  - url: https://toncenter.com
    description: Mainnet
  - url: https://testnet.toncenter.com
    description: Testnet
security: []
tags:
  - name: utils
    description: Some useful methods
  - name: accounts
    description: Information about accounts
  - name: blocks
    description: Information about blocks
  - name: transactions
    description: Fetching and locating transactions
  - name: configuration
    description: Information about blockchain config
  - name: run method
    description: Run get-method of smart contracts
  - name: send
    description: Send data to blockchain
  - name: rpc
    description: JSON-RPC and POST endpoints
paths:
  /api/v2/getTokenData:
    get:
      tags:
        - accounts
      summary: Get Token Data
      description: Get Jetton/NFT metadata from token smart contract
      operationId: getTokenData_get
      parameters:
        - $ref: '#/components/parameters/address'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    example: true
                  result:
                    title: TokenData
                    allOf:
                      - $ref: '#/components/schemas/TokenData'
                required:
                  - ok
                  - result
        default:
          $ref: '#/components/responses/default'
components:
  parameters:
    address:
      name: address
      in: query
      description: Identifier of target TON account in any form
      required: true
      schema:
        $ref: '#/components/schemas/TonAddr'
  schemas:
    TokenData:
      oneOf:
        - $ref: '#/components/schemas/JettonMasterData'
        - $ref: '#/components/schemas/JettonWalletData'
        - $ref: '#/components/schemas/NftCollectionData'
        - $ref: '#/components/schemas/NftItemData'
      discriminator:
        propertyName: '@type'
        mapping:
          ext.tokens.jettonMasterData:
            $ref: '#/components/schemas/JettonMasterData'
          ext.tokens.jettonWalletData:
            $ref: '#/components/schemas/JettonWalletData'
          ext.tokens.nftCollectionData:
            $ref: '#/components/schemas/NftCollectionData'
          ext.tokens.nftItemData:
            $ref: '#/components/schemas/NftItemData'
    TonAddr:
      type: string
      x-usrv-cpp-type: ton_http::types::ton_addr
    JettonMasterData:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - address
        - contract_type
        - total_supply
        - mintable
        - jetton_content
        - jetton_wallet_code
      properties:
        '@type':
          type: string
          enum:
            - ext.tokens.jettonMasterData
          default: ext.tokens.jettonMasterData
        address:
          $ref: '#/components/schemas/TonAddr'
        contract_type:
          type: string
          enum:
            - jetton_master
          default: jetton_master
        total_supply:
          $ref: '#/components/schemas/Int256'
        mintable:
          type: boolean
        admin_address:
          $ref: '#/components/schemas/TonAddr'
        jetton_content:
          $ref: '#/components/schemas/TokenContent'
        jetton_wallet_code:
          $ref: '#/components/schemas/Bytes'
    JettonWalletData:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - address
        - contract_type
        - balance
        - owner
        - jetton
        - jetton_wallet_code
      properties:
        '@type':
          type: string
          enum:
            - ext.tokens.jettonWalletData
          default: ext.tokens.jettonWalletData
        address:
          $ref: '#/components/schemas/TonAddr'
        contract_type:
          type: string
          enum:
            - jetton_wallet
          default: jetton_wallet
        balance:
          $ref: '#/components/schemas/Int256'
        owner:
          $ref: '#/components/schemas/TonAddr'
        jetton:
          $ref: '#/components/schemas/TonAddr'
        mintless_is_claimed:
          type: boolean
        jetton_wallet_code:
          $ref: '#/components/schemas/Bytes'
    NftCollectionData:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - address
        - contract_type
        - next_item_index
        - collection_content
      properties:
        '@type':
          type: string
          enum:
            - ext.tokens.nftCollectionData
          default: ext.tokens.nftCollectionData
        address:
          $ref: '#/components/schemas/TonAddr'
        contract_type:
          type: string
          enum:
            - nft_collection
          default: nft_collection
        next_item_index:
          $ref: '#/components/schemas/Int256'
        owner_address:
          $ref: '#/components/schemas/TonAddr'
        collection_content:
          $ref: '#/components/schemas/TokenContent'
    NftItemData:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - address
        - contract_type
        - init
        - index
        - content
      properties:
        '@type':
          type: string
          enum:
            - ext.tokens.nftItemData
          default: ext.tokens.nftItemData
        address:
          $ref: '#/components/schemas/TonAddr'
        contract_type:
          type: string
          enum:
            - nft_item
          default: nft_item
        init:
          type: boolean
        index:
          $ref: '#/components/schemas/Int256'
        collection_address:
          $ref: '#/components/schemas/TonAddr'
        owner_address:
          $ref: '#/components/schemas/TonAddr'
        content:
          oneOf:
            - $ref: '#/components/schemas/TokenContent'
            - $ref: '#/components/schemas/DnsContent'
    TonlibErrorResponse:
      type: object
      additionalProperties: false
      title: TonlibErrorResponse
      required:
        - ok
        - error
        - code
      properties:
        ok:
          type: boolean
          title: Ok
          default: false
        error:
          type: string
          title: Error description
        code:
          type: integer
          title: Error code
          minimum: 100
          maximum: 600
        '@extra':
          type: string
          title: Extra information
        jsonrpc:
          type: string
        id:
          type: string
    Int256:
      type: string
      x-usrv-cpp-type: ton_http::types::int256
    TokenContent:
      type: object
      additionalProperties: false
      required:
        - type
        - data
      properties:
        type:
          type: string
          enum:
            - onchain
            - offchain
        data:
          oneOf:
            - type: string
            - $ref: '#/components/schemas/TokenContentDict'
    Bytes:
      type: string
      x-usrv-cpp-type: ton_http::types::bytes
    DnsContent:
      type: object
      additionalProperties: false
      required:
        - domain
        - data
      properties:
        domain:
          type: string
        data:
          $ref: '#/components/schemas/DnsRecordSet'
    TokenContentDict:
      type: object
      additionalProperties: true
    DnsRecordSet:
      type: object
      additionalProperties: true
      properties:
        dns_next_resolver:
          $ref: '#/components/schemas/DnsRecord'
        wallet:
          $ref: '#/components/schemas/DnsRecord'
        site:
          $ref: '#/components/schemas/DnsRecord'
        storage:
          $ref: '#/components/schemas/DnsRecord'
    DnsRecord:
      oneOf:
        - $ref: '#/components/schemas/DnsRecordStorageAddress'
        - $ref: '#/components/schemas/DnsRecordSmcAddress'
        - $ref: '#/components/schemas/DnsRecordAdnlAddress'
        - $ref: '#/components/schemas/DnsRecordNextResolver'
      discriminator:
        propertyName: '@type'
        mapping:
          dns_storage_address:
            $ref: '#/components/schemas/DnsRecordStorageAddress'
          dns_smc_address:
            $ref: '#/components/schemas/DnsRecordSmcAddress'
          dns_adnl_address:
            $ref: '#/components/schemas/DnsRecordAdnlAddress'
          dns_next_resolver:
            $ref: '#/components/schemas/DnsRecordNextResolver'
    DnsRecordStorageAddress:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - bag_id
      properties:
        '@type':
          type: string
          enum:
            - dns_storage_address
          default: dns_storage_address
        bag_id:
          $ref: '#/components/schemas/TonHashHex'
    DnsRecordSmcAddress:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - smc_addr
      properties:
        '@type':
          type: string
          enum:
            - dns_smc_address
          default: dns_smc_address
        smc_addr:
          $ref: '#/components/schemas/SmcAddr'
    DnsRecordAdnlAddress:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - adnl_addr
      properties:
        '@type':
          type: string
          enum:
            - dns_adnl_address
          default: dns_adnl_address
        adnl_addr:
          $ref: '#/components/schemas/TonHashHex'
    DnsRecordNextResolver:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - resolver
      properties:
        '@type':
          type: string
          enum:
            - dns_next_resolver
          default: dns_next_resolver
        resolver:
          $ref: '#/components/schemas/SmcAddr'
    TonHashHex:
      type: string
      x-usrv-cpp-type: ton_http::types::ton_hash_hex
    SmcAddr:
      type: object
      additionalProperties: false
      required:
        - '@type'
        - workchain_id
        - address
      properties:
        '@type':
          type: string
          enum:
            - addr_std
          default: addr_std
        workchain_id:
          type: integer
          format: int32
        address:
          $ref: '#/components/schemas/TonHashHex'
  responses:
    default:
      description: Tonlib error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TonlibErrorResponse'
          examples:
            '409':
              summary: Not a token
              value:
                ok: false
                code: 409
                error: Smart contract is not a Jetton or NFT
                '@extra': ...
            '422':
              summary: Request validation error
              value:
                ok: false
                code: 422
                error: ...
                '@extra': ...
            '429':
              summary: Ratelimit exceeded
              value:
                ok: false
                code: 429
                error: ...
                '@extra': ...
            '504':
              summary: Tonlib timeout
              value:
                ok: false
                code: 504
                error: ...
                '@extra': ...

````