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

# Batch Token Lookup

> Get multiple tokens by their addresses in a single request

## Description

Fetches detailed information for multiple tokens in a single request. This endpoint is optimized for applications that need to retrieve data for multiple tokens efficiently, such as portfolio trackers or analytics dashboards.

## Request Body

<ParamField body="addresses" type="array" required>
  Array of token contract addresses (max: 50 addresses per request)
</ParamField>

<ParamField body="includeMetrics" type="boolean" default="true">
  Include trading metrics (volume, price changes, transaction counts)
</ParamField>

<ParamField body="includeHolders" type="boolean" default="true">
  Include holder distribution data
</ParamField>

<ParamField body="includeSocials" type="boolean" default="true">
  Include social media links
</ParamField>

## Response

<ResponseField name="tokens" type="array">
  Array of token objects matching the requested addresses

  <Expandable title="Token Object">
    <ResponseField name="address" type="string">
      Token contract address
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO timestamp of token creation
    </ResponseField>

    <ResponseField name="owner" type="string">
      Creator's wallet address
    </ResponseField>

    <ResponseField name="name" type="string">
      Token name
    </ResponseField>

    <ResponseField name="ticker" type="string">
      Token symbol
    </ResponseField>

    <ResponseField name="description" type="string">
      Token description
    </ResponseField>

    <ResponseField name="image_url" type="string">
      Token logo URL
    </ResponseField>

    <ResponseField name="telegram" type="string">
      Telegram channel URL (if includeSocials=true)
    </ResponseField>

    <ResponseField name="twitter" type="string">
      Twitter/X profile URL (if includeSocials=true)
    </ResponseField>

    <ResponseField name="website" type="string">
      Official website URL (if includeSocials=true)
    </ResponseField>

    <ResponseField name="market_cap" type="number">
      Current market capitalization in ETH
    </ResponseField>

    <ResponseField name="funding_progress" type="number">
      Funding progress (0-1, where 1 means fully funded)
    </ResponseField>

    <ResponseField name="price_eth" type="number">
      Current token price in ETH
    </ResponseField>

    <ResponseField name="volume_24h" type="number">
      24-hour trading volume (if includeMetrics=true)
    </ResponseField>

    <ResponseField name="price_change_24h" type="number">
      24-hour price change percentage (if includeMetrics=true)
    </ResponseField>

    <ResponseField name="txns_24h_buys" type="number">
      Number of buy transactions in the last 24 hours (if includeMetrics=true)
    </ResponseField>

    <ResponseField name="txns_24h_sells" type="number">
      Number of sell transactions in the last 24 hours (if includeMetrics=true)
    </ResponseField>

    <ResponseField name="total_holders" type="number">
      Total number of token holders (if includeHolders=true)
    </ResponseField>

    <ResponseField name="top_10_percentage" type="number">
      Percentage of supply held by top 10 holders (if includeHolders=true)
    </ResponseField>

    <ResponseField name="dev_holding_percentage" type="number">
      Percentage of supply held by developer (if includeHolders=true)
    </ResponseField>

    <ResponseField name="is_graduated" type="boolean">
      Whether the token has completed funding
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="notFound" type="array">
  Array of addresses that were not found or are invalid
</ResponseField>

<ResponseField name="errors" type="array">
  Array of any errors encountered during processing
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "tokens": [
      {
        "address": "0x1234567890abcdef1234567890abcdef12345678",
        "created_at": "2024-01-15T10:30:00Z",
        "owner": "0xabcdef1234567890abcdef1234567890abcdef12",
        "name": "Moon Token",
        "ticker": "MOON",
        "description": "To the moon and beyond",
        "image_url": "https://example.com/moon-logo.png",
        "telegram": "https://t.me/moontoken",
        "twitter": "https://twitter.com/moontoken",
        "website": "https://moontoken.com",
        "market_cap": 500.5,
        "funding_progress": 1.0,
        "price_eth": 0.00125,
        "volume_24h": 250.8,
        "price_change_24h": 15.3,
        "txns_24h_buys": 425,
        "txns_24h_sells": 312,
        "total_holders": 1250,
        "top_10_percentage": 35.2,
        "dev_holding_percentage": 5.0,
        "is_graduated": true
      },
      {
        "address": "0x9876543210fedcba9876543210fedcba98765432",
        "created_at": "2024-01-14T08:15:00Z",
        "owner": "0xfedcba9876543210fedcba9876543210fedcba98",
        "name": "Star Token",
        "ticker": "STAR",
        "description": "Reach for the stars",
        "image_url": "https://example.com/star-logo.png",
        "telegram": "https://t.me/startoken",
        "twitter": null,
        "website": null,
        "market_cap": 125.3,
        "funding_progress": 0.65,
        "price_eth": 0.00089,
        "volume_24h": 45.2,
        "price_change_24h": -5.2,
        "txns_24h_buys": 89,
        "txns_24h_sells": 67,
        "total_holders": 423,
        "top_10_percentage": 48.7,
        "dev_holding_percentage": 10.0,
        "is_graduated": false
      }
    ],
    "notFound": [
      "0xinvalidaddress123"
    ],
    "errors": []
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://inkypump.com/api/tokens/batch" \
    -H "Content-Type: application/json" \
    -d '{
      "addresses": [
        "0x1234567890abcdef1234567890abcdef12345678",
        "0x9876543210fedcba9876543210fedcba98765432"
      ]
    }'

  curl -X POST "https://inkypump.com/api/tokens/batch" \
    -H "Content-Type: application/json" \
    -d '{
      "addresses": [
        "0x1234567890abcdef1234567890abcdef12345678",
        "0x9876543210fedcba9876543210fedcba98765432"
      ],
      "includeMetrics": false,
      "includeHolders": true
    }'
  ```

  ```typescript TypeScript theme={null}
  const addresses = [
    '0x1234567890abcdef1234567890abcdef12345678',
    '0x9876543210fedcba9876543210fedcba98765432'
  ];

  const response = await fetch('https://inkypump.com/api/tokens/batch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ addresses })
  });
  const data = await response.json();

  const minimalResponse = await fetch('https://inkypump.com/api/tokens/batch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      addresses,
      includeMetrics: false,
      includeHolders: true
    })
  });
  const minimalData = await minimalResponse.json();
  ```

  ```python Python theme={null}
  import requests

  addresses = [
      "0x1234567890abcdef1234567890abcdef12345678",
      "0x9876543210fedcba9876543210fedcba98765432"
  ]

  response = requests.post(
      "https://inkypump.com/api/tokens/batch",
      json={"addresses": addresses}
  )
  data = response.json()

  minimal_response = requests.post(
      "https://inkypump.com/api/tokens/batch",
      json={
          "addresses": addresses,
          "includeMetrics": False,
          "includeHolders": True
      }
  )
  minimal_data = minimal_response.json()
  ```
</RequestExample>
