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

# Token - Holder Chart

> Retrieve timestamped holder-count data points for visualizing a Solana token’s holder trends with configurable intervals, filters, and chart modes.

<br />

<Tabs>
  <Tab title="Usage Notes">
    <ul>
      <li><code>time\_from</code> and <code>time\_to</code> are optional. If not passed, the latest records will be returned.</li>
      <li><code>net\_change</code>: Absolute change in holder count compared to the reference point. Whether this is compared to the previous interval or the beginning of the queried range depends on the percent\_mode parameter</li>
      <li><code>percent\_change</code>: Percentage change in holder count relative to the same reference point as net\_change. Expressed as a percentage (e.g., 0.035 = 0.035%).</li>
    </ul>
  </Tab>

  <Tab title="Accessibility">
    <ul>
      <li>Lite</li>
      <li>Starter</li>
      <li>Premium</li>
      <li>Business</li>
      <li>Enterprise</li>
    </ul>
  </Tab>

  <Tab title="Chain Supported">
    <ul>
      <li>Solana</li>
    </ul>
  </Tab>
</Tabs>

<Accordion title="Compute Unit ⚙️" icon="fa-gauge-high">
  <ul>
    <li>This endpoint consumes <code>25 CU</code> per request.</li>
  </ul>
</Accordion>


## OpenAPI

````yaml openapi/data/openapi_docs.json GET /token/v1/holder/chart
openapi: 3.1.0
info:
  version: 1.1.0
  title: Birdeye Data API
  description: >-
    Birdeye Data API is a full-spectrum blockchain and DEX data platform for
    teams that need production-grade crypto market intelligence across tokens,
    pairs, wallets, traders, protocols, and chains.


    From real-time prices, OHLCV, liquidity, and transaction flow to holder
    analytics, token and pair overviews, wallet portfolio and PnL, smart money,
    discovery, security, and blockchain-level utilities, Birdeye gives you a
    unified data layer for building serious crypto products at scale.


    Use it to power exchange interfaces, trading terminals, bots, market-making
    systems, quant research, alpha screeners, portfolio apps, wallet
    intelligence tools, alerting systems, analytics dashboards, and back-office
    data pipelines. Whether your users are retail traders, pro desks, analysts,
    or infrastructure teams, Birdeye helps you ship faster with broad market
    coverage and API surfaces that support both lightweight integrations and
    data-heavy workflows.


    To start, create an account at [bds.birdeye.so](https://bds.birdeye.so),
    generate an API key from the `Security` tab, and send it in the `X-API-KEY`
    header on every request.
servers:
  - url: https://public-api.birdeye.so
security:
  - apiKeyAuth: []
tags:
  - name: Price & OHLCV
  - name: Stats
  - name: Token/Market List
  - name: Transactions
  - name: Wallet, Networth & PnL
  - name: Balance & Transfer
  - name: Holder
  - name: Alltime & History
  - name: Blockchain
  - name: Account
  - name: Token
  - name: Transaction
  - name: Creation & Trending
  - name: Meme
  - name: Security
  - name: Search & Utils
  - name: Smart Money
  - name: Global Fees Paid
  - name: DEX & Protocol
  - name: Wallet Identity
paths:
  /token/v1/holder/chart:
    get:
      tags:
        - Holder
      summary: Token - Holder Chart
      description: >-
        Retrieve timestamped holder-count data points for visualizing a Solana
        token’s holder trends with configurable intervals, filters, and chart
        modes.
      operationId: get-token-v1-holder-chart
      parameters:
        - $ref: '#/components/parameters/xSolanaChainParam'
        - $ref: '#/components/parameters/walletApiTokenAddressParam'
        - $ref: '#/components/parameters/optionalChartHolderType'
        - $ref: '#/components/parameters/optionalChartHolderFrom'
        - $ref: '#/components/parameters/optionalChartHolderTo'
        - $ref: '#/components/parameters/optionalChartHolderMode'
        - $ref: '#/components/parameters/optionalChartHolderPercentMode'
        - $ref: '#/components/parameters/optionalChartHolderCount'
      responses:
        '200':
          $ref: '#/components/responses/ChartHolderResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  parameters:
    xSolanaChainParam:
      name: x-chain
      description: Solana network only.
      in: header
      required: false
      schema:
        type: string
        enum:
          - solana
        default: solana
    walletApiTokenAddressParam:
      name: token_address
      description: Token mint address.
      in: query
      required: true
      schema:
        type: string
      examples:
        wsol:
          value: So11111111111111111111111111111111111111112
        solana:
          value: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        ethereum:
          value: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce'
        solana_scaled_ui:
          value: Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh
    optionalChartHolderType:
      name: chart_type
      description: >-
        Holder-count chart interval. Supported values: 1d, 1h, 1m, 1s. Note: 1s
        chart type only supports data within the last 3 days.
      in: query
      required: false
      schema:
        type: string
        enum:
          - 1d
          - 1h
          - 1m
          - 1s
        default: 1h
    optionalChartHolderFrom:
      name: from
      description: Start time for the chart as a unix timestamp in seconds.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 10000000000
    optionalChartHolderTo:
      name: to
      description: End time for the chart as a unix timestamp in seconds.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 10000000000
    optionalChartHolderMode:
      name: mode
      description: >-
        Controls how chart data is handled. padding fills missing timestamps to
        maintain continuity; no_fill returns only timestamps where values
        change.
      in: query
      required: false
      schema:
        type: string
        enum:
          - no_fill
          - padding
        default: padding
    optionalChartHolderPercentMode:
      name: percent_mode
      description: >-
        Defines how holder-count percentage change is calculated. beginning
        compares each point with the first record; previous compares each point
        with the previous record.
      in: query
      required: false
      schema:
        type: string
        enum:
          - beginning
          - previous
        default: beginning
    optionalChartHolderCount:
      name: count
      description: Maximum number of chart points to return.
      in: query
      required: false
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 100
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Bad request
    '401':
      description: Unauthorized. API key is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Unauthorized
    '403':
      description: Forbidden. Request is blacklisted or not whitelisted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Access Denied
    '429':
      description: Too Many Requests. Rate limit reached
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Too many requests
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Internal Server Error
    ChartHolderResponse:
      description: JSON object containing token holder-count chart data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TokenHolderChartResponse'
          examples:
            solana:
              value:
                data:
                  - timestamp: 1763608550
                    holder: 4451715
                    net_change: -160
                    percent_change: -0.0035939912958023305
                  - timestamp: 1763608548
                    holder: 4451713
                    net_change: -162
                    percent_change: -0.00363891618699986
                success: true
  schemas:
    TokenHolderChartResponse:
      type: object
      description: Response containing holder-count chart data for a Solana token.
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          description: Indicates whether the request was successful.
        data:
          type: array
          description: Holder-count chart points ordered according to the chart query.
          items:
            type: object
            description: One holder-count chart point.
            properties:
              timestamp:
                type: integer
                description: >-
                  Timestamp of the holder-count data point as a unix timestamp
                  in seconds.
              holder:
                type: integer
                description: Number of token holders at this timestamp.
              net_change:
                type: integer
                description: >-
                  Net holder-count change compared with the baseline selected by
                  percent_mode.
              percent_change:
                type: number
                description: >-
                  Holder-count percentage change compared with the baseline
                  selected by percent_mode.
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication

````