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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/b3-insights-tokens-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
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/tokens 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/tokens
description: ThirdWeb Insights token analytics
paths:
/insights/v1/tokens/owners:
get:
description: Get token owners for specific contract
summary: Get token owners by contract
tags:
- insights/tokens
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'
- $ref: '#/components/parameters/contractAddress'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
chain_id:
type: string
token_address:
type: string
title: address (hex or ENS)
example: vitalik.eth
owner_address:
type: string
title: address (hex or ENS)
example: vitalik.eth
balance:
type: string
required:
- chain_id
- token_address
- owner_address
- balance
required:
- data
'400':
description: Bad request
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'404':
description: Not found
'500':
description: Internal server error
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/insights/v1/tokens/transfers/transaction/{transaction_hash}:
get:
description: Get token transfers by transaction
summary: Get token transfers by transaction
tags:
- insights/tokens
parameters:
- $ref: '#/components/parameters/transactionHash'
- 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
- schema:
type: array
description: The types of tokens to include in the response. Can be an empty array to include all types
items:
type: string
enum:
- erc1155
- erc721
- erc20
uniqueItems: true
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:
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:
- erc20
amount:
type: string
chain_id:
type: number
token_metadata:
type: object
properties:
name:
type: string
symbol:
type: string
decimals:
type: number
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
required:
- block_number
- block_timestamp
- transaction_hash
- from_address
- to_address
- log_index
- contract_address
- transfer_type
- token_type
- amount
- chain_id
aggregations: {}
meta:
type: object
properties:
chain_id:
type: number
address:
type: string
signature:
type: string
page:
type: number
limit:
type: number
total_items:
type: number
total_pages:
type: number
required:
- chain_id
required:
- meta
'404':
description: Not found
'500':
description: Internal server error
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
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:
- erc20
amount:
type: string
chain_id:
type: number
token_metadata:
type: object
properties:
name:
type: string
symbol:
type: string
decimals:
type: number
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
required:
- block_number
- block_timestamp
- transaction_hash
- from_address
- to_address
- log_index
- contract_address
- transfer_type
- token_type
- amount
- chain_id
aggregations: {}
meta:
type: object
properties:
chain_id:
type: number
address:
type: string
signature:
type: string
page:
type: number
limit:
type: number
total_items:
type: number
total_pages:
type: number
required:
- chain_id
required:
- meta
/insights/v1/tokens/transfers/{contract_address}:
get:
description: Get token transfers by contract
summary: Get token transfers by contract
tags:
- insights/tokens
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: 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
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
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:
- erc20
amount:
type: string
chain_id:
type: number
token_metadata:
type: object
properties:
name:
type: string
symbol:
type: string
decimals:
type: number
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
required:
- block_number
- block_timestamp
- transaction_hash
- from_address
- to_address
- log_index
- contract_address
- transfer_type
- token_type
- amount
- chain_id
aggregations: {}
meta:
type: object
properties:
chain_id:
type: number
address:
type: string
signature:
type: string
page:
type: number
limit:
type: number
total_items:
type: number
total_pages:
type: number
required:
- chain_id
required:
- meta
'404':
description: Not found
'500':
description: Internal server error
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
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:
- erc20
amount:
type: string
chain_id:
type: number
token_metadata:
type: object
properties:
name:
type: string
symbol:
type: string
decimals:
type: number
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
price_data:
type: object
properties:
price_usd:
type: number
description: The price of the token in USD
usd_value:
type: number
description: The value of the token balance in USD
volume_24h_usd:
type: number
description: The volume of the token in USD
market_cap_usd:
type: number
description: The market cap of the token in USD
circulating_supply:
type: number
description: The circulating supply of the token
total_supply:
type: number
description: The total supply of the token
percent_change_24h:
type: number
description: The percentage change of the token in the last 24 hours
price_timestamp:
type: string
description: The timestamp of the latest price update
required:
- block_number
- block_timestamp
- transaction_hash
- from_address
- to_address
- log_index
- contract_address
- transfer_type
- token_type
- amount
- chain_id
aggregations: {}
meta:
type: object
properties:
chain_id:
type: number
address:
type: string
signature:
type: string
page:
type: number
limit:
type: number
total_items:
type: number
total_pages:
type: number
required:
- chain_id
required:
- meta
/insights/v1/tokens/transfers:
get:
description: Get token transfers
summary: Get token transfers
tags:
- insights/tokens
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
# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/b3/refs/heads/main/openapi/b3-insights-tokens-api-openapi.yml