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

# List tokens with optional filtering by name, symbol, or type

> Retrieves a paginated list of tokens with optional filtering by name, symbol, or type.



## OpenAPI

````yaml /openapi-specs/pro-api-v11.yaml get /v2/tokens/
openapi: 3.0.0
info:
  contact:
    email: info@blockscout.com
  title: Blockscout
  version: 11.0.3
servers:
  - url: http://localhost/api
    variables: {}
security: []
tags:
  - name: blocks
  - name: transactions
  - name: addresses
  - name: internal-transactions
  - name: tokens
  - name: token-transfers
  - name: smart-contracts
  - name: config
  - name: main-page
  - name: search
  - name: stats
  - name: csv-export
  - name: account-abstraction
  - name: withdrawals
  - name: advanced-filters
  - name: arbitrum
  - name: legacy
  - name: optimism
  - name: mud
  - name: celo
  - name: scroll
  - name: zilliqa
paths:
  /v2/tokens/:
    get:
      tags:
        - tokens
      summary: List tokens with optional filtering by name, symbol, or type
      description: >-
        Retrieves a paginated list of tokens with optional filtering by name,
        symbol, or type.
      operationId: BlockScoutWeb.API.V2.TokenController.tokens_list
      parameters:
        - description: API key for rate limiting or for sensitive endpoints
          in: query
          name: apikey
          required: false
          schema:
            type: string
            x-struct: null
            x-validate: null
        - description: Secret key for getting access to restricted resources
          in: query
          name: key
          required: false
          schema:
            type: string
            x-struct: null
            x-validate: null
        - description: |
            Filter by token type. Comma-separated list of:
            * ERC-20 - Fungible tokens
            * ERC-721 - Non-fungible tokens
            * ERC-1155 - Multi-token standard
            * ERC-404 - Hybrid fungible/non-fungible tokens


            Example: `ERC-20,ERC-721` to show both fungible and NFT transfers
          in: query
          name: type
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/EmptyString'
              - pattern: >-
                  ^\[?(ERC-20|ERC-721|ERC-1155|ERC-404|ERC-7984)(,(ERC-20|ERC-721|ERC-1155|ERC-404|ERC-7984))*\]?$
                type: string
                x-struct: null
                x-validate: null
            x-struct: null
            x-validate: null
        - description: Search query filter
          in: query
          name: q
          required: false
          schema:
            nullable: true
            type: string
            x-struct: null
            x-validate: null
        - description: Limit result items in the response
          in: query
          name: limit
          required: false
          schema:
            nullable: true
            type: integer
            x-struct: null
            x-validate: null
        - description: >
            Sort results by:

            * fiat_value - Sort by fiat value

            * holders_count - Sort by number of token holders

            * circulating_market_cap - Sort by circulating market cap of the
            token

            Should be used together with `order` parameter.
          in: query
          name: sort
          required: false
          schema:
            enum:
              - fiat_value
              - holders_count
              - circulating_market_cap
            type: string
            x-struct: null
            x-validate: null
        - description: |
            Sort order:
            * asc - Ascending order
            * desc - Descending order
            Should be used together with `sort` parameter.
          in: query
          name: order
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            x-struct: null
            x-validate: null
        - description: Contract address hash for paging
          in: query
          name: contract_address_hash
          required: false
          schema:
            $ref: '#/components/schemas/AddressHashNullable'
        - description: Fiat value for paging
          in: query
          name: fiat_value
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/FloatString'
              - $ref: '#/components/schemas/EmptyString'
              - $ref: '#/components/schemas/NullString'
            x-struct: null
            x-validate: null
        - description: Number of holders returned per page
          in: query
          name: holders_count
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/IntegerString'
              - $ref: '#/components/schemas/EmptyString'
              - $ref: '#/components/schemas/NullString'
            x-struct: null
            x-validate: null
        - description: Is name null for paging
          in: query
          name: is_name_null
          required: false
          schema:
            type: boolean
            x-struct: null
            x-validate: null
        - description: Market cap for paging
          in: query
          name: market_cap
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/FloatString'
              - $ref: '#/components/schemas/EmptyString'
              - $ref: '#/components/schemas/NullString'
            x-struct: null
            x-validate: null
        - description: Name for paging
          in: query
          name: name
          required: false
          schema:
            type: string
            x-struct: null
            x-validate: null
        - description: Number of items returned per page
          in: query
          name: items_count
          required: false
          schema:
            maximum: 50
            minimum: 1
            type: integer
            x-struct: null
            x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                nullable: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/Token'
                    nullable: false
                    type: array
                    x-struct: null
                    x-validate: null
                  next_page_params:
                    example:
                      contract_address_hash: '0xbe9895146f7af43049ca1c1ae358b0541ea49704'
                      fiat_value: '4724.32'
                      holders_count: 59731
                      is_name_null: false
                      items_count: 50
                      market_cap: '570958125.135513'
                      name: Wrapped Staked ETH
                    nullable: true
                    type: object
                    x-struct: null
                    x-validate: null
                required:
                  - items
                  - next_page_params
                type: object
                x-struct: null
                x-validate: null
          description: List of tokens matching the filter criteria, with pagination.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
      callbacks: {}
components:
  schemas:
    EmptyString:
      maxLength: 0
      minLength: 0
      title: EmptyString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.EmptyString
      x-validate: null
    AddressHashNullable:
      nullable: true
      pattern: ^0x([A-Fa-f0-9]{40})$
      title: AddressHashNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.AddressHashNullable
      x-validate: null
    FloatString:
      pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
      title: FloatString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.FloatString
      x-validate: null
    NullString:
      pattern: ^null$
      title: NullString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.NullString
      x-validate: null
    IntegerString:
      nullable: false
      pattern: ^-?([1-9][0-9]*|0)$
      title: IntegerString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.IntegerString
      x-validate: null
    Token:
      additionalProperties: false
      description: Token struct
      properties:
        address_hash:
          $ref: '#/components/schemas/AddressHash'
        bridge_type:
          description: Type of bridge used for this bridged token
          enum:
            - omni
            - amb
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        circulating_market_cap:
          $ref: '#/components/schemas/FloatStringNullable'
        decimals:
          $ref: '#/components/schemas/IntegerStringNullable'
        exchange_rate:
          $ref: '#/components/schemas/FloatStringNullable'
        foreign_address:
          nullable: true
          pattern: ^0x([A-Fa-f0-9]{40})$
          type: string
          x-struct: null
          x-validate: null
        holders_count:
          $ref: '#/components/schemas/IntegerStringNullable'
        icon_url:
          $ref: '#/components/schemas/URLNullable'
        name:
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        origin_chain_id:
          $ref: '#/components/schemas/IntegerStringNullable'
        reputation:
          description: Reputation of the token
          enum:
            - ok
            - scam
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        symbol:
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        total_supply:
          $ref: '#/components/schemas/IntegerStringNullable'
        type:
          allOf:
            - $ref: '#/components/schemas/Type'
          nullable: true
          x-struct: null
          x-validate: null
        volume_24h:
          $ref: '#/components/schemas/FloatStringNullable'
      required:
        - address_hash
        - symbol
        - name
        - decimals
        - type
        - holders_count
        - exchange_rate
        - volume_24h
        - total_supply
        - icon_url
        - circulating_market_cap
        - reputation
      title: Token
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Token
      x-validate: null
    JsonErrorResponse:
      properties:
        errors:
          items:
            properties:
              detail:
                example: null value where string expected
                type: string
                x-struct: null
                x-validate: null
              source:
                properties:
                  pointer:
                    example: /data/attributes/petName
                    type: string
                    x-struct: null
                    x-validate: null
                required:
                  - pointer
                type: object
                x-struct: null
                x-validate: null
              title:
                example: Invalid value
                type: string
                x-struct: null
                x-validate: null
            required:
              - title
              - source
              - detail
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
        - errors
      title: JsonErrorResponse
      type: object
      x-struct: Elixir.OpenApiSpex.JsonErrorResponse
      x-validate: null
    AddressHash:
      nullable: false
      pattern: ^0x([A-Fa-f0-9]{40})$
      title: AddressHash
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.AddressHash
      x-validate: null
    FloatStringNullable:
      nullable: true
      pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
      title: FloatStringNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.FloatStringNullable
      x-validate: null
    IntegerStringNullable:
      nullable: true
      pattern: ^-?([1-9][0-9]*|0)$
      title: IntegerStringNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.IntegerStringNullable
      x-validate: null
    URLNullable:
      example: https://example.com
      format: uri
      nullable: true
      title: URLNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.URLNullable
      x-validate: null
    Type:
      enum:
        - ERC-20
        - ERC-721
        - ERC-1155
        - ERC-404
        - ERC-7984
      title: Type
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Token.Type
      x-validate: null

````