B3

B3 Insights/nfts API

ThirdWeb Insights NFT analytics

Operations 13

GET /insights/v1/nfts/balance/{ownerAddress} Get NFT balances by address
GET /insights/v1/nfts/collections/{contract_address} Get collection
GET /insights/v1/nfts Get NFTs
GET /insights/v1/nfts/owners/{contract_address} Get NFT owners by contract
GET /insights/v1/nfts/owners/{contract_address}/{token_id} Get NFT owners by token
GET /insights/v1/nfts/transfers Get NFT transfers
GET /insights/v1/nfts/transfers/transaction/{transaction_hash} Get NFT transfers by transaction
GET /insights/v1/nfts/transfers/{contract_address} Get NFT transfers by contract
GET /insights/v1/nfts/{contract_address} Get NFTs by contract
GET /insights/v1/nfts/transfers/{contract_address}/{token_id} Get NFT transfers by token
GET /insights/v1/nfts/{contract_address}/{token_id} Get NFT by token ID
GET /insights/v1/nfts/metadata/refresh/{contract_address} Force refresh collection metadata
GET /insights/v1/nfts/metadata/refresh/{contract_address}/{token_id} Force refresh token metadata

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/b3-insights-nfts-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 email required.

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

OpenAPI Specification

b3-insights-nfts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Cached proxy layer for multiple blockchain APIs with 24-hour caching and automatic fallback across chains. Supports both Blockscout and ThirdWeb Insights APIs. Add ?mintlify parameter for Mintlify-compatible version.
  version: 1.0.0
  title: B3 Data API - Multi-Chain Data Insights/nfts API
  contact:
    name: B3 Team
    url: https://b3.fun
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://data-api.b3.fun/
  description: B3 Data API - Multi-Chain Proxy
tags:
- name: insights/nfts
  description: ThirdWeb Insights NFT analytics
paths:
  /insights/v1/nfts/balance/{ownerAddress}:
    get:
      summary: Get NFT balances by address
      description: Get NFT balances for a given address
      tags:
      - insights/nfts
      parameters:
      - $ref: '#/components/parameters/ownerAddress'
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Whether to include metadata for the tokens
          example: 'false'
        required: false
        name: metadata
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'true'
          description: Whether to resolve metadata IPFS or Arweave links
          example: 'false'
        required: false
        name: resolve_metadata_links
        in: query
      - schema:
          type: array
          description: The types of NFTs to include in the response
          items:
            type: string
            enum:
            - erc1155
            - erc721
          uniqueItems: true
          default:
          - erc1155
          - erc721
        required: false
        name: token_types
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        chain_id:
                          type: number
                          description: The chain ID of a relevant entry
                          example: 1
                        token_address:
                          type: string
                          title: address (hex or ENS)
                          example: vitalik.eth
                        token_id:
                          type: string
                        balance:
                          type: string
                        name:
                          type: string
                        description:
                          type: string
                        image_url:
                          type: string
                        video_url:
                          type: string
                        animation_url:
                          type: string
                        background_color:
                          type: string
                        external_url:
                          type: string
                        status:
                          type: string
                        metadata_url:
                          type: string
                        owner_addresses:
                          type: array
                          items:
                            type: string
                        extra_metadata:
                          allOf:
                          - type: object
                            additionalProperties: {}
                          - type: object
                            properties:
                              attributes:
                                anyOf:
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      trait_type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: string
                                        - type: number
                                      display_type:
                                        type: string
                                    required:
                                    - trait_type
                                    - value
                                - type: object
                                  additionalProperties: {}
                              properties:
                                type: object
                                additionalProperties: {}
                        collection:
                          type: object
                          properties:
                            name:
                              type: string
                            description:
                              type: string
                            image_url:
                              type: string
                            banner_image_url:
                              type: string
                            featured_image_url:
                              type: string
                            external_link:
                              type: string
                        contract:
                          type: object
                          properties:
                            chain_id:
                              type: number
                              description: The chain ID of a relevant entry
                              example: 1
                            address:
                              type: string
                              title: address (hex or ENS)
                              example: vitalik.eth
                            name:
                              type: string
                            symbol:
                              type: string
                            type:
                              type: string
                              enum:
                              - erc721
                              - erc1155
                          required:
                          - chain_id
                          - address
                      required:
                      - chain_id
                      - token_address
                      - token_id
                      - balance
                required:
                - data
        '400':
          description: Bad request
        '500':
          description: Internal server error
  /insights/v1/nfts/collections/{contract_address}:
    get:
      summary: Get collection
      description: Retrieve metadata about a collection
      tags:
      - insights/nfts
      parameters:
      - $ref: '#/components/parameters/contractAddress'
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Whether to include stats for the collection
          example: 'false'
        required: false
        name: include_stats
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'true'
          description: Whether to resolve metadata IPFS or Arweave links
          example: 'false'
        required: false
        name: resolve_metadata_links
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        description:
                          type: string
                        image_url:
                          type: string
                        banner_image_url:
                          type: string
                        featured_image_url:
                          type: string
                        external_link:
                          type: string
                        stats:
                          type: object
                          properties:
                            owner_count:
                              type: number
                            token_count:
                              type: number
                            mint_count:
                              type: number
                            total_quantity:
                              type: number
                          required:
                          - owner_count
                          - token_count
                          - mint_count
                          - total_quantity
                required:
                - data
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /insights/v1/nfts:
    get:
      description: Get NFTs
      summary: Get NFTs
      tags:
      - insights/nfts
      parameters:
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'true'
          description: Whether to resolve metadata IPFS or Arweave links
          example: 'false'
        required: false
        name: resolve_metadata_links
        in: query
      - schema:
          type: array
          description: Address(es) to filter by. You can specify multiple addresses using repeated query parameters, e.g., ?address=0x123&address=0x456
          example:
          - '0x1234567890123456789012345678901234567890'
          - vitalik.eth
          items:
            type: string
        required: true
        name: owner_address
        in: query
      - schema:
          type: array
          description: Address(es) to filter by. You can specify multiple addresses using repeated query parameters, e.g., ?address=0x123&address=0x456
          example:
          - '0x1234567890123456789012345678901234567890'
          - vitalik.eth
          items:
            type: string
        required: false
        name: contract_address
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        chain_id:
                          type: number
                        contract_address:
                          type: string
                          title: address (hex or ENS)
                          example: vitalik.eth
                        token_id:
                          type: string
                        token_type:
                          type: string
                        balance:
                          type: string
                        owner_addresses:
                          type: array
                          items:
                            type: string
                        name:
                          type: string
                        description:
                          type: string
                        image_url:
                          type: string
                        video_url:
                          type: string
                        animation_url:
                          type: string
                        background_color:
                          type: string
                        external_url:
                          type: string
                        status:
                          type: string
                        metadata_url:
                          type: string
                        extra_metadata:
                          allOf:
                          - type: object
                            additionalProperties: {}
                          - type: object
                            properties:
                              attributes:
                                anyOf:
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      trait_type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: string
                                        - type: number
                                      display_type:
                                        type: string
                                    required:
                                    - trait_type
                                    - value
                                - type: object
                                  additionalProperties: {}
                              properties:
                                type: object
                                additionalProperties: {}
                        collection:
                          type: object
                          properties:
                            name:
                              type: string
                            description:
                              type: string
                            image_url:
                              type: string
                            banner_image_url:
                              type: string
                            featured_image_url:
                              type: string
                            external_link:
                              type: string
                        contract:
                          type: object
                          properties:
                            chain_id:
                              type: number
                              description: The chain ID of a relevant entry
                              example: 1
                            address:
                              type: string
                              title: address (hex or ENS)
                              example: vitalik.eth
                            name:
                              type: string
                            symbol:
                              type: string
                            type:
                              type: string
                              enum:
                              - erc721
                              - erc1155
                          required:
                          - chain_id
                          - address
                      required:
                      - chain_id
                      - contract_address
                      - token_id
                      - token_type
                      - balance
                required:
                - data
        '404':
          description: Not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /insights/v1/nfts/owners/{contract_address}:
    get:
      description: Get NFT owners by contract
      summary: Get NFT owners by contract
      tags:
      - insights/nfts
      parameters:
      - $ref: '#/components/parameters/contractAddress'
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Control if the result is an array of addresses only or an array of objects containing the address and balance
          example: 'true'
        required: false
        name: include_balances
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                  - type: object
                    properties:
                      chain_id:
                        type: string
                      token_address:
                        type: string
                      owner_address:
                        type: string
                      token_id:
                        type: string
                      balance:
                        type: string
                    required:
                    - chain_id
                    - token_address
                    - owner_address
                    - token_id
                    - balance
                  - type: object
                    properties:
                      chain_id:
                        type: string
                      owner_addresses:
                        type: array
                        items:
                          type: string
                    required:
                    - chain_id
                    - owner_addresses
        '404':
          description: Not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /insights/v1/nfts/owners/{contract_address}/{token_id}:
    get:
      description: Get NFT owners by token
      summary: Get NFT owners by token
      tags:
      - insights/nfts
      parameters:
      - $ref: '#/components/parameters/contractAddress'
      - $ref: '#/components/parameters/tokenId'
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Control if the result is an array of addresses only or an array of objects containing the address and balance
          example: 'true'
        required: false
        name: include_balances
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                  - type: object
                    properties:
                      chain_id:
                        type: string
                      token_address:
                        type: string
                      owner_address:
                        type: string
                      token_id:
                        type: string
                      balance:
                        type: string
                    required:
                    - chain_id
                    - token_address
                    - owner_address
                    - token_id
                    - balance
                  - type: object
                    properties:
                      chain_id:
                        type: string
                      owner_addresses:
                        type: array
                        items:
                          type: string
                    required:
                    - chain_id
                    - owner_addresses
        '404':
          description: Not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /insights/v1/nfts/transfers:
    get:
      description: Get NFT transfers
      summary: Get NFT transfers
      tags:
      - insights/nfts
      parameters:
      - name: chain
        in: query
        required: false
        deprecated: true
        description: Use chain_id instead
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - name: chain_id
        in: query
        required: false
        description: The chain ID(s) to request the data for. You can specify multiple chain IDs, up to a maximum of 55. Use repeated query parameters, e.g., `?chain_id=20&chain_id=56`. Optional, because a single chain can as well be specified as a subdomain
        schema:
          type: array
          example:
          - 20
          - 56
          - 1
          items:
            type: number
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Whether to include metadata for the tokens
          example: 'false'
        required: false
        name: metadata
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Whether to include owner addresses in the NFT metadata (only if metadata is requested)
          example: 'false'
        required: false
        name: include_owners
        in: query
      - $ref: '#/components/parameters/blockNumberFrom'
      - $ref: '#/components/parameters/blockTimestampFrom'
      - $ref: '#/components/parameters/blockTimestampTo'
      - $ref: '#/components/parameters/ownerAddress'
      - $ref: '#/components/parameters/contractAddress'
      - schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
          description: Sort order (asc or desc)
          example: desc
        required: false
        name: sort_order
        in: query
      - schema:
          type: string
          enum:
          - mint
          - transfer
          - burn
          - sale
          description: Only include transfers of a certain type
          example: mint
        required: false
        name: transfer_type
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'false'
          description: Whether to include sale details for NFT transfers
          example: 'false'
        required: false
        name: sales
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'true'
          description: Whether to resolve metadata IPFS or Arweave links
          example: 'false'
        required: false
        name: resolve_metadata_links
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        token_id:
                          type: string
                        chain_id:
                          type: number
                        block_number:
                          type: string
                        block_hash:
                          type: string
                        block_timestamp:
                          type: string
                        transaction_hash:
                          type: string
                        from_address:
                          type: string
                        to_address:
                          type: string
                        log_index:
                          type: number
                        contract_address:
                          type: string
                        transfer_type:
                          type: string
                          enum:
                          - mint
                          - sale
                          - transfer
                        token_type:
                          type: string
                          enum:
                          - erc721
                          - erc1155
                        amount:
                          type: string
                        nft_metadata:
                          type: object
                          properties:
                            name:
                              type: string
                            description:
                              type: string
                            image_url:
                              type: string
                            video_url:
                              type: string
                            animation_url:
                              type: string
                            background_color:
                              type: string
                            external_url:
                              type: string
                            status:
                              type: string
                            metadata_url:
                              type: string
                            owner_addresses:
                              type: array
                              items:
                                type: string
                            extra_metadata:
                              allOf:
                              - type: object
                                additionalProperties: {}
                              - type: object
                                properties:
                                  attributes:
                                    anyOf:
                                    - type: array
                                      items:
                                        type: object
                                        properties:
                                          trait_type:
                                            type: string
                                          value:
                                            anyOf:
                                            - type: string
                                            - type: number
                                          display_type:
                                            type: string
                                        required:
                                        - trait_type
                                        - value
                                    - type: object
                                      additionalProperties: {}
                                  properties:
                                    type: object
                                    additionalProperties: {}
                            collection:
                              type: object
                              properties:
                                name:
                                  type: string
                                description:
                                  type: string
                                image_url:
                                  type: string
                                banner_image_url:
                                  type: string
                                featured_image_url:
                                  type: string
                                external_link:
                                  type: string
                            contract:
                              type: object
                              properties:
                                chain_id:
                                  type: number
                                  description: The chain ID of a relevant entry
                                  example: 1
                                address:
                                  type: string
                                  title: address (hex or ENS)
                                  example: vitalik.eth
                                name:
                                  type: s

# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/b3/refs/heads/main/openapi/b3-insights-nfts-api-openapi.yml