---
title: "Token - First Buyers"
method: GET
path: "/token/v1/first-buyers"
tags: ["Holder"]
---

# Token - First Buyers

`GET /token/v1/first-buyers`

Identify the earliest buyers of a token and see whether they are still holding, added more, or have sold — useful for spotting early conviction, smart money, and potential insiders. Returns up to the top 1000 first buyers, paginated via offset and limit (offset + limit <= 1000).

## Query parameters

- `token_address` string, required
- `offset` integer
- `limit` integer

## Headers

- `x-chain` 'solana'

## Response `200`

JSON object containing the first wallets that bought the token

- TokenFirstBuyersResponse
  - `success` boolean, required — Whether the request succeeded.
  - `data` object, required
    - `token_address` string — Token mint address
    - `flow` 'buy' — Trade flow direction
    - `page_summary` object — Aggregated counts of position statuses for the buyers returned in this page
      - `total_wallets` integer — Total number of wallets in this page
      - `buy_more` integer — Number of wallets with position_status = buy_more
      - `hold` integer — Number of wallets with position_status = hold
      - `sell_partial` integer — Number of wallets with position_status = sell_partial
      - `sell_all` integer — Number of wallets with position_status = sell_all
    - `buyers` object[] — List of the first wallets that bought the token, ordered from earliest to latest.
      - `wallet_address` string — Wallet address of the buyer
      - `block_number` integer — Block number of the wallet's first buy transaction for this token
      - `block_unix_time` integer — Unix timestamp (seconds) of the wallet's first buy transaction for this token
      - `first_buy_volume` number — Token amount bought in the wallet's first buy transaction
      - `first_buy_volume_usd` number — USD value of the first buy
      - `total_buy_volume` number — Cumulative token amount the wallet has bought up to now
      - `total_buy_volume_usd` number — Cumulative buy volume in USD up to now
      - `initial_holding` number — Token balance right after the first buy. May include tokens transferred in beforehand.
      - `current_holding` number — Token amount the wallet currently holds
      - `position_status` 'buy_more' | 'hold' | 'sell_partial' | 'sell_all' — Position status of the wallet relative to its initial holding (the amount it held right after its first buy): - `buy_more`: current_holding > initial_holding — the wallet actively bought more (highest conviction). - `hold`: current_holding == initial_holding — the wallet is holding, nothing sold yet. - `sell_partial`: initial_holding × 0.01 < current_holding < initial_holding — the wallet sold a meaningful portion. - `sell_all`: current_holding <= initial_holding × 0.01 — the wallet sold almost everything (≤ 1% dust left).
      - `tags` string[] — Wallet classification tags. Supported tags: `bundler`, `sniper`, `insider`, `dev`, `smart_trader`. Empty when the wallet carries no tag.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. API key is missing or invalid
- `403` — Forbidden. Request is blacklisted or not whitelisted
- `429` — Too Many Requests. Rate limit reached
- `500` — Internal Server Error

---

[API](https://skmtc.net/birdeye/apis/birdeye-data-api.md) · [All operations](https://skmtc.net/birdeye/apis/birdeye-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/birdeye/birdeye-data-api/revisions/fcaba926a089/schema)
