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

# Get tokens

Query tokens

` GET /insights/v1/tokens `

Get tokens

Query tokens

## Servers

- ` https://data-api.b3.fun/ ` — B3 Data API - Multi-Chain Proxy

## Parameters

### ` chain ` (query, optional)

Use chain_id instead

- ` value `: type ` array `

  - example: ` [20,56,1] `

  - ` array item `: type ` number `

Example:

```json
[
  20,
  56,
  1
]
```

### ` chain_id ` (query, optional)

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

- ` value `: type ` array `

  - example: ` [20,56,1] `

  - ` array item `: type ` number `

Example:

```json
[
  20,
  56,
  1
]
```

### ` limit ` (query, optional)

- ` value `: type ` integer ` — The number of items to return

  - default: ` 20 `

  - example: ` 20 `

  - minimum: ` 0 `

  - maximum: ` 1000 `

Example:

```json
20
```

### ` page ` (query, optional)

- ` value `: type ` integer `; nullable — Page number (0-indexed). Maximum value depends on query parameters: 20 for regular queries, 500 when using aggregate or group_by parameters.

  - default: ` 0 `

  - example: ` 0 `

  - minimum: ` 0 `

Example:

```json
0
```

### ` metadata ` (query, optional)

- ` value `: type ` string ` — Whether to include metadata for the tokens

  - enum: ` ["true","false"] `

  - default: ` "false" `

  - example: ` "false" `

Example:

```json
"false"
```

### ` resolve_metadata_links ` (query, optional)

- ` value `: type ` string ` — Whether to resolve metadata IPFS or Arweave links

  - enum: ` ["true","false"] `

  - default: ` "true" `

  - example: ` "false" `

Example:

```json
"false"
```

### ` include_spam ` (query, optional)

- ` value `: type ` string ` — Whether to include spam tokens

  - enum: ` ["true","false"] `

  - default: ` "false" `

  - example: ` "false" `

Example:

```json
"false"
```

### ` owner_address ` (query, required)

- ` value `: type ` array ` — Address(es) to filter by. You can specify multiple addresses using repeated query parameters, e.g., ?address=0x123&address=0x456

  - example: ` ["0x1234567890123456789012345678901234567890","vitalik.eth"] `

  - ` array item `: type ` string `

Example:

```json
[
  "0x1234567890123456789012345678901234567890",
  "vitalik.eth"
]
```

### ` include_native ` (query, optional)

- ` value `: type ` string ` — Whether to include native tokens

  - enum: ` ["true","false"] `

  - default: ` "true" `

  - example: ` "true" `

Example:

```json
"true"
```

### ` token_address ` (query, optional)

- ` value `: type ` array ` — Address(es) to filter by. You can specify multiple addresses using repeated query parameters, e.g., ?address=0x123&address=0x456

  - example: ` ["0x1234567890123456789012345678901234567890","vitalik.eth"] `

  - ` array item `: type ` string `

Example:

```json
[
  "0x1234567890123456789012345678901234567890",
  "vitalik.eth"
]
```

### ` sort_by ` (query, optional)

- ` value `: type ` string ` — Field to sort by

  - enum: ` ["balance","token_address","token_price","usd_value"] `

  - default: ` "token_address" `

  - example: ` "balance" `

Example:

```json
"balance"
```

### ` sort_order ` (query, optional)

- ` value `: type ` string ` — Sort order (asc or desc)

  - enum: ` ["asc","desc"] `

  - default: ` "asc" `

  - example: ` "desc" `

Example:

```json
"desc"
```

### ` include_without_price ` (query, optional)

- ` value `: type ` string ` — Whether to include tokens that don't have price data (only applies when metadata=true)

  - enum: ` ["true","false"] `

  - default: ` "true" `

  - example: ` "true" `

Example:

```json
"true"
```

## Responses

### ` 200 ` — Successful response

Content type: ` application/json `

- ` value `: type ` object `

  - Required fields: ` data `

  - ` data `: type ` array `

    - ` array item `: type ` object `

      - Required fields: ` chain_id `, ` token_address `, ` balance `

      - ` chain_id `: type ` number ` — The chain ID of a relevant entry

        - example: ` 1 `

      - ` token_address `: type ` string `

        - Title: address (hex or ENS)

        - example: ` "vitalik.eth" `

      - ` balance `: type ` string `

      - ` name `: type ` string `

      - ` symbol `: type ` string `

      - ` decimals `: type ` number `

      - ` price_data `: type ` object `

        - ` price_usd `: type ` number ` — The price of the token in USD

        - ` usd_value `: type ` number ` — The value of the token balance in USD

        - ` volume_24h_usd `: type ` number ` — The volume of the token in USD

        - ` market_cap_usd `: type ` number ` — The market cap of the token in USD

        - ` circulating_supply `: type ` number ` — The circulating supply of the token

        - ` total_supply `: type ` number ` — The total supply of the token

        - ` percent_change_24h `: type ` number ` — The percentage change of the token in the last 24 hours

        - ` price_timestamp `: type ` string ` — The timestamp of the latest price update

### ` 400 ` — Bad request

### ` 500 ` — Internal server error

## Request examples

### cURL

```curl
curl -X GET 'https://data-api.b3.fun//insights/v1/tokens?owner_address=0x1234567890123456789012345678901234567890%2Cvitalik.eth'
```

### JavaScript

```javascript
const response = await fetch('https://data-api.b3.fun//insights/v1/tokens?owner_address=0x1234567890123456789012345678901234567890%2Cvitalik.eth', {
  method: 'GET'
});

const data = await response.json();
console.log(data);
```

### Python

```python
import requests

response = requests.get('https://data-api.b3.fun//insights/v1/tokens?owner_address=0x1234567890123456789012345678901234567890%2Cvitalik.eth')
print(response.json())
```