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

# Tokens ranked by trending score.

> `chains` lists the chains to rank over, as one set. `window` sets the period the score covers,
and `filters` limits the tokens the board ranks. The score itself is not returned.



## OpenAPI

````yaml /specs/openapi.json post /v1/trending
openapi: 3.1.0
info:
  title: Metastreams API
  description: >-
    The Metastreams market-data API. Amounts are decimal strings, timestamps are
    Unix milliseconds, and every field name is camelCase.
  license:
    name: Proprietary
    identifier: Proprietary
  version: 1.0.0
servers:
  - url: https://{host}
    variables:
      host:
        default: api.metastreams.io
        description: API host.
security:
  - bearerKey: []
paths:
  /v1/trending:
    post:
      tags:
        - trending
      summary: Tokens ranked by trending score.
      description: >-
        `chains` lists the chains to rank over, as one set. `window` sets the
        period the score covers,

        and `filters` limits the tokens the board ranks. The score itself is not
        returned.
      operationId: trending_board
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpotTrendingFilter'
        required: true
      responses:
        '200':
          description: The ranked board, rank 1 first.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UiSpotTrendingUpdate'
        '400':
          description: Unsupported chain, an empty `chains` list, or a malformed body.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: >-
            Missing or invalid credential: an API key, or a session token a key
            minted.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '402':
          description: >-
            The organization's credits this billing period reach its plan's
            limit.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: >-
            A key whose plan excludes this endpoint gets `FORBIDDEN`. A session
            token from an

            origin it does not name gets `ORIGIN_NOT_ALLOWED`.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limit exceeded.
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait before retrying.
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '500':
          description: Unexpected server failure.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '503':
          description: Dependency down or maintenance.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: >-
                Requests left in the bucket this request spent from. Not sent
                with a 401.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    SpotTrendingFilter:
      type: object
      description: 'A trending board request: the chains, the window and the filters.'
      required:
        - chains
      properties:
        chains:
          type: array
          items:
            $ref: '#/components/schemas/SpotChain'
          description: Chains to rank over, as one set. At least one is required.
        filters:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/DiscoveryTokenFilters'
              description: >-
                Conditions every ranked token must match. Absent ranks every
                candidate.
          description: >-
            Conditions every ranked token must match. Absent ranks every
            candidate.
        limit:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Number of tokens on the board. The default is 100, and out-of-range
            values are clamped to 1–100.
          minimum: 0
        window:
          $ref: '#/components/schemas/TrendingWindow'
          description: Period the trending score covers. The default is `24h`.
      additionalProperties: false
    UiSpotTrendingUpdate:
      type: object
      description: The trending board, rank 1 first.
      required:
        - deltas
      properties:
        deltas:
          type: array
          items:
            $ref: '#/components/schemas/UiSpotPulseDelta'
          description: One entry per rank.
    ErrorEnvelope:
      type: object
      description: The complete error response body — every error is exactly this.
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: The error.
    SpotChain:
      type: string
      description: >-
        Chain slug. One spelling per chain, in paths and bodies alike. Only a
        chain with spot data is published.
      enum:
        - solana
        - base
        - bsc
        - robinhood
        - arc
    DiscoveryTokenFilters:
      type: object
      description: >-
        Filters over a discovery column. Every range is inclusive on both ends,
        and an absent bound is unbounded.
      properties:
        ageMinutes:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Minutes since the token was created.
          description: Minutes since the token was created.
        anchorSymbols:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens whose deepest pool prices against any of these quote
            assets, such as `WSOL`, `USDC` or `WBNB`, ignoring case.
        bondingCurvePercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: >-
                Bonding-curve completion, 0-100. A token with no bonding curve
                passes.
          description: >-
            Bonding-curve completion, 0-100. A token with no bonding curve
            passes.
        bundlerSupplyPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: Share of supply bundler wallets hold, 0-100.
          description: Share of supply bundler wallets hold, 0-100.
        buys:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Buys over the last 24 hours.
          description: Buys over the last 24 hours.
        devHoldingPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply the creator holds, 0-100.
          description: Share of supply the creator holds, 0-100.
        dexPaid:
          type:
            - boolean
            - 'null'
          description: >-
            `true` keeps tokens with a paid DexScreener profile; `false` keeps
            tokens without one.
        excludeAnnotations:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/TokenAnnotation'
          description: >-
            Drop tokens that carry any of these annotations, each written as
            `{"kind": "mayhem_mode"}`.
        excludeDevAddresses:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens created by any of these wallets.
        excludeFundingAddresses:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens whose creator was funded by any of these wallets.
        excludeSymbolOrName:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Drop tokens whose symbol or name contains any of these words,
            ignoring case. A word shaped like an address drops that token
            instead.
        excludeTwitter:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens whose X handle matches any entry, as a handle or a URL.
        excludeWebsites:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Drop tokens whose website host matches any entry, as a URL or a bare
            domain.
        globalFeesPaidNative:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: >-
                The fees `globalFeesPaidUsd` counts, in the chain's native
                asset.
          description: The fees `globalFeesPaidUsd` counts, in the chain's native asset.
        globalFeesPaidUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: >-
                All-time USD fees traders paid: transaction, validator and
                platform fees on Solana, and venue fees on other chains.
          description: >-
            All-time USD fees traders paid: transaction, validator and platform
            fees on Solana, and venue fees on other chains.
        holderCount:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Current holders.
          description: Current holders.
        insiderSupplyPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: Share of supply insider wallets hold, 0-100.
          description: Share of supply insider wallets hold, 0-100.
        lastActivityMinutes:
          type:
            - integer
            - 'null'
          format: int64
          description: >-
            Keep tokens updated within this many minutes. Any change to the
            token counts as an update, such as a trade.
          minimum: 0
        liquidityUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD liquidity.
          description: USD liquidity.
        marketCapUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD market cap.
          description: USD market cap.
        maxGraduationStaleMinutes:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Drop tokens with no update within this many minutes, unless they are
            at 99.5% of their bonding curve or more.
          minimum: 0
        proTraderCount:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Wallets that traded the token through a known trading terminal.
          description: Wallets that traded the token through a known trading terminal.
        protocols:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens from any of these launchpads, such as `pumpfun`. The
            value `mayhem_mode` keeps Pump.fun Mayhem Mode tokens.
        sells:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Sells over the last 24 hours.
          description: Sells over the last 24 hours.
        snipersSupplyPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply sniper wallets hold, 0-100.
          description: Share of supply sniper wallets hold, 0-100.
        symbolOrName:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens whose symbol or name contains any of these words,
            ignoring case. A word shaped like an address matches the token's
            address instead.
        top10HoldersPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply the 10 largest holders hold, 0-100.
          description: Share of supply the 10 largest holders hold, 0-100.
        twitterReuseCount:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: >-
                How many other tokens claimed the same X account. Not yet
                counted, so every token passes.
          description: >-
            How many other tokens claimed the same X account. Not yet counted,
            so every token passes.
        txns:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Buys plus sells over the last 24 hours.
          description: Buys plus sells over the last 24 hours.
        volumeUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD volume over the last 24 hours.
          description: USD volume over the last 24 hours.
        withAtLeastOneSocial:
          type:
            - boolean
            - 'null'
          description: >-
            `true` keeps tokens with at least one social link; `false` applies
            no condition.
    TrendingWindow:
      type: string
      description: >-
        Period the trending score covers. One of `5m`, `30m`, `1h`, `6h` or
        `24h`.
      enum:
        - 5m
        - 30m
        - 1h
        - 6h
        - 24h
    UiSpotPulseDelta:
      type: object
      description: One token's place on a ranked board.
      required:
        - chain
        - address
      properties:
        address:
          type: string
          description: Token address.
        chain:
          $ref: '#/components/schemas/SpotChain'
          description: Chain the token trades on; with `address` it keys the row.
        data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiSpotToken'
              description: Token state; absent on eviction.
          description: Token state; absent on eviction.
        rank:
          type:
            - integer
            - 'null'
          format: int32
          description: 1-indexed rank; `null` removes the token from the board.
          minimum: 0
    ErrorDetail:
      type: object
      description: The `error` object inside the envelope.
      required:
        - code
        - message
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
          description: >-
            Stable, machine-readable. Clients switch on this, never on
            `message`.
        details:
          description: Optional; shape is fixed per code.
        message:
          type: string
          description: |-
            Human-readable, written for the integrating developer:
            `[What happened]. [What to do next — if actionable].`
    FilterRange_u64:
      type: object
      description: An inclusive range of counts; an absent bound is unbounded.
      properties:
        max:
          type: integer
          format: int64
          description: Largest value kept, inclusive; absent means unbounded.
          minimum: 0
        min:
          type: integer
          format: int64
          description: Smallest value kept, inclusive; absent means unbounded.
          minimum: 0
    FilterRange_f64:
      type: object
      description: An inclusive range of numbers; an absent bound is unbounded.
      properties:
        max:
          type: number
          format: double
          description: Largest value kept, inclusive; absent means unbounded.
        min:
          type: number
          format: double
          description: Smallest value kept, inclusive; absent means unbounded.
    FilterRange_Decimal:
      type: object
      description: An inclusive range of decimal strings; an absent bound is unbounded.
      properties:
        max:
          type: string
          format: decimal
          description: Largest value kept, inclusive; absent means unbounded.
          example: '123.456789'
        min:
          type: string
          format: decimal
          description: Smallest value kept, inclusive; absent means unbounded.
          example: '123.456789'
    TokenAnnotation:
      oneOf:
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - mayhem_mode
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - cashback_coin
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - anchor
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - x_mode
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - tax_token
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - stock_quote
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - stock_dividend
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - ai_vault
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              description: Which annotation this is.
              enum:
                - tax_vault
      description: A platform-scoped flag the launch carried, tagged by `kind`.
    UiSpotToken:
      type: object
      description: '`GET /v1/tokens/{chain}/{address}` response.'
      required:
        - chain
        - address
        - name
        - symbol
        - decimals
        - supply
        - creator
        - devFunding
        - createdAt
        - dexes
        - price
        - marketCap
        - liquidity
        - ath
        - stats
        - totals
        - holders
        - security
        - metadata
        - updatedAt
      properties:
        address:
          type: string
          description: Token address.
        anchorAddress:
          type:
            - string
            - 'null'
          description: >-
            Address of the quote asset in the token's deepest pool; `null` where
            it is not known.
        anchorSymbol:
          type:
            - string
            - 'null'
          description: Display symbol of that quote asset, on `anchorAddress`'s terms.
        annotations:
          type: array
          items:
            $ref: '#/components/schemas/TokenAnnotation'
          description: Platform-scoped quirk flags the launch carried.
          example:
            - kind: mayhem_mode
        ath:
          $ref: '#/components/schemas/UiTokenAth'
          description: All-time-high price and market cap.
        bondingCurvePct:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: Bonding-curve completion, 0-100; `null` off launchpad curves.
          description: Bonding-curve completion, 0-100; `null` off launchpad curves.
        chain:
          $ref: '#/components/schemas/SpotChain'
          description: Chain the token trades on.
        createdAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: Creation timestamp.
        creator:
          type: string
          description: Creator address.
        decimals:
          type: integer
          format: int32
          description: Token decimals.
          minimum: 0
        devFunding:
          $ref: '#/components/schemas/UiDevFunding'
          description: >-
            The creator wallet's first inbound funding. Always present; its
            status says whether the

            lookup has settled.
        dexes:
          type: array
          items:
            type: string
          description: Venues the token's top pools trade on, deepest first.
          example:
            - pumpswap
            - raydium
        fees:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiTokenTradeFees'
              description: >-
                What a trade costs here and where the tax goes; absent where no
                source states either.
          description: >-
            What a trade costs here and where the tax goes; absent where no
            source states either.
        graduatedAt:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UnixMilliseconds'
              description: >-
                When the token graduated off its launchpad; `null` until
                graduation.
          description: When the token graduated off its launchpad; `null` until graduation.
        graduatedToDex:
          type:
            - string
            - 'null'
          description: Venue the graduation pool trades on; `null` until graduation.
        graduatedToPool:
          type:
            - string
            - 'null'
          description: Pool the launchpad pool migrated into; `null` until graduation.
        holders:
          $ref: '#/components/schemas/UiTokenHolders'
          description: Holder-risk breakdown.
        launchpad:
          type:
            - string
            - 'null'
          description: >-
            Launchpad the token launched through; `null` for non-launchpad
            tokens.
        liquidity:
          $ref: '#/components/schemas/UiMoney'
          description: Current liquidity.
        logoUrl:
          type:
            - string
            - 'null'
          description: >-
            Token logo URL, always `http` or `https`; `null` when the token has
            none.
          examples:
            - >-
              https://cdn.example.com/So11111111111111111111111111111111111111112.webp
        marketCap:
          $ref: '#/components/schemas/UiMoney'
          description: Current market cap.
        metadata:
          $ref: '#/components/schemas/UiTokenMetadata'
          description: Off-chain project metadata.
        name:
          type: string
          description: Token name.
        platforms:
          type: array
          items:
            $ref: '#/components/schemas/UiPlatform'
          description: The token's external-platform listings.
        pools:
          type: array
          items:
            $ref: '#/components/schemas/UiTokenPool'
          description: The token's top pools by liquidity, deepest first.
        price:
          $ref: '#/components/schemas/UiMoney'
          description: Current price.
        security:
          $ref: '#/components/schemas/UiTokenSecurity'
          description: On-chain security flags.
        stats:
          $ref: '#/components/schemas/UiTokenStats'
          description: Trailing-window stats, one key per rolling window.
        supply:
          $ref: '#/components/schemas/Decimal'
          description: Total supply.
        symbol:
          type: string
          description: Token symbol.
        totals:
          $ref: '#/components/schemas/UiTokenTotals'
          description: All-time volume and fee totals.
        updatedAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: Last update timestamp.
    ErrorCode:
      type: string
      description: |-
        Every wire error code the API can return.

        Append-only: a new code is non-breaking, since clients fall back on the
        HTTP status for one they do not recognize, and a published code is never
        renamed or removed.
      enum:
        - UNAUTHORIZED
        - FORBIDDEN
        - VALIDATION_ERROR
        - UNSUPPORTED_CHAIN
        - NOT_FOUND
        - RATE_LIMITED
        - CREDITS_EXHAUSTED
        - INTERNAL_ERROR
        - SERVICE_UNAVAILABLE
        - RANGE_TOO_LARGE
        - INVALID_CREDENTIALS
        - ORIGIN_NOT_ALLOWED
        - NOT_ORG_MEMBER
        - MEMBERSHIP_INACTIVE
        - EMAIL_NOT_VERIFIED
        - EMAIL_TAKEN
        - ALREADY_MEMBER
        - INVITATION_ALREADY_SENT
        - INVITATION_ALREADY_ACCEPTED
        - LAST_ADMIN
        - CANNOT_REMOVE_SELF
        - KEY_LIMIT_REACHED
        - TOKEN_EXPIRED
        - PAYLOAD_TOO_LARGE
        - UNSUPPORTED_MEDIA_TYPE
        - IMAGE_TOO_LARGE
    UiTokenAth:
      type: object
      description: All-time-high price and market cap, each with the timestamp it was set.
      required:
        - price
        - priceAt
        - marketCap
        - marketCapAt
      properties:
        marketCap:
          $ref: '#/components/schemas/UiMoney'
          description: All-time-high market cap.
        marketCapAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: When the all-time-high market cap was set.
        price:
          $ref: '#/components/schemas/UiMoney'
          description: All-time-high price.
        priceAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: When the all-time-high price was set.
    Decimal:
      type: string
      format: decimal
      description: An exact decimal, as a string.
      example: '123.456789'
    UnixMilliseconds:
      type: integer
      format: int64
      description: An instant, as milliseconds since the Unix epoch.
    UiDevFunding:
      type: object
      description: >-
        The creator wallet's first inbound funding.


        `status` separates a lookup still in flight from one that settled on a
        wallet with no

        funder to name. Every other field is `null` in both cases.
      required:
        - status
      properties:
        address:
          type:
            - string
            - 'null'
          description: Funder wallet or exchange address.
        sourceKind:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FundingSourceKind'
              description: What the funder is (exchange, bridge, wallet, …).
          description: What the funder is (exchange, bridge, wallet, …).
        sourceLabel:
          type:
            - string
            - 'null'
          description: Display label for the funder, e.g. an exchange name.
        status:
          $ref: '#/components/schemas/FundingStatus'
          description: Whether the lookup has settled.
    UiTokenTradeFees:
      type: object
      description: What a trade at this token's venue costs, and where its tax goes.
      properties:
        allocation:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiTokenFeeAllocation'
              description: Where the tax goes. Absent where the venue states nothing.
          description: Where the tax goes. Absent where the venue states nothing.
        breakdown:
          type: array
          items:
            $ref: '#/components/schemas/UiTokenFeeComponent'
          description: >-
            The layers the totals are made of. A layer nobody states is absent,
            never zero.
        rewards:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiTokenFeeRewards'
              description: >-
                What a wallet holds to qualify for a payout. Absent at a venue
                gating on nothing.
          description: >-
            What a wallet holds to qualify for a payout. Absent at a venue
            gating on nothing.
        totalBuyBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            What a buy costs in total, in basis points — every layer below,
            summed.
          example: 25
          minimum: 0
        totalSellBps:
          type:
            - integer
            - 'null'
          format: int32
          description: What a sell costs in total, in basis points; see `totalBuyBps`.
          example: 125
          minimum: 0
    UiTokenHolders:
      type: object
      description: Holder-risk breakdown. Every `*Pct` field is a percent.
      required:
        - count
        - top10Pct
        - devPct
        - sniperPct
        - sniperCount
        - bundlerPct
        - bundlerCount
        - insiderPct
        - insiderCount
        - phishingPct
        - phishingCount
        - freshWalletPct
        - freshWalletCount
        - fomoPct
        - fomoCount
        - proTraderPct
        - proTraderCount
        - fundedByCexPct
      properties:
        bundlerCount:
          type: integer
          format: int64
          description: Bundler wallet count.
          minimum: 0
        bundlerPct:
          $ref: '#/components/schemas/Decimal'
          description: Bundler wallets' share of supply.
        count:
          type: integer
          format: int64
          description: Current holder count.
          minimum: 0
        devPct:
          $ref: '#/components/schemas/Decimal'
          description: Dev wallet's share of supply.
        fomoCount:
          type: integer
          format: int64
          description: fomo.family wallet count.
          minimum: 0
        fomoPct:
          $ref: '#/components/schemas/Decimal'
          description: fomo.family wallets' share of supply.
        freshWalletCount:
          type: integer
          format: int64
          description: Fresh wallet count.
          minimum: 0
        freshWalletPct:
          $ref: '#/components/schemas/Decimal'
          description: Fresh-wallet share of supply.
        fundedByCexPct:
          $ref: '#/components/schemas/Decimal'
          description: >-
            Share of current holders a known exchange funded, 0-100. Counted
            against every holder,

            so a token with funding lookups still in flight reads low rather
            than absent.
        insiderCount:
          type: integer
          format: int64
          description: Insider wallet count.
          minimum: 0
        insiderPct:
          $ref: '#/components/schemas/Decimal'
          description: Insider wallets' share of supply.
        phishingCount:
          type: integer
          format: int64
          description: >-
            Wallets that ever traded this token while carrying a malicious-actor
            label. The count

            never falls, unlike `phishingPct`.
          minimum: 0
        phishingPct:
          $ref: '#/components/schemas/Decimal'
          description: Phishing wallets' share of supply.
        proTraderCount:
          type: integer
          format: int64
          description: Pro-trader wallet count.
          minimum: 0
        proTraderPct:
          $ref: '#/components/schemas/Decimal'
          description: Pro-trader wallets' share of supply.
        sniperCount:
          type: integer
          format: int64
          description: Sniper wallet count.
          minimum: 0
        sniperPct:
          $ref: '#/components/schemas/Decimal'
          description: Sniper wallets' share of supply.
        top10Pct:
          $ref: '#/components/schemas/Decimal'
          description: Share of supply held by the top 10 current holders.
    UiMoney:
      type: object
      description: >-
        A chain-denominated value with its USD equivalent. The enclosing object
        carries the

        `chain` that names `native`'s unit.
      required:
        - native
      properties:
        native:
          $ref: '#/components/schemas/Decimal'
          description: Value in the owning chain's gas asset.
        usd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: Value in USD; `null` when the native asset is unpriced.
          description: Value in USD; `null` when the native asset is unpriced.
    UiTokenMetadata:
      type: object
      description: Off-chain project metadata; every field nullable.
      required:
        - twitterReuseCount
      properties:
        description:
          type:
            - string
            - 'null'
          description: Project description.
        discord:
          type:
            - string
            - 'null'
          description: Project Discord invite URL.
        telegram:
          type:
            - string
            - 'null'
          description: Project Telegram handle or URL.
        twitter:
          type:
            - string
            - 'null'
          description: Project Twitter/X handle or URL.
        twitterReuseCount:
          type: integer
          format: int64
          description: >-
            How many other tokens have claimed the same Twitter/X account; above
            zero, the handle

            is recycled. Not yet counted, so always `0`.
          minimum: 0
        website:
          type:
            - string
            - 'null'
          description: Project website.
    UiPlatform:
      oneOf:
        - type: object
          description: >-
            fomo.family, the terminal that routed the trade. The trader's
            profile is the `fomo`

            element of `identities`.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - fomo
        - type: object
          description: >-
            A token's DexScreener listing; present only while its profile is
            paid.
          required:
            - isPaid
            - platform
          properties:
            isPaid:
              type: boolean
              description: Whether the token's DexScreener profile is paid.
            paidAt:
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/UnixMilliseconds'
                  description: Earliest profile payment time.
              description: Earliest profile payment time.
            platform:
              type: string
              description: Which platform this is.
              enum:
                - dexScreener
        - type: object
          description: Axiom.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - axiom
        - type: object
          description: '"Banana Gun".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - bananaGun
        - type: object
          description: Bloom.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - bloom
        - type: object
          description: '"BONKbot".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - bonkbot
        - type: object
          description: BtcTurk.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - btcTurk
        - type: object
          description: BullX.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - bullX
        - type: object
          description: Click.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - click
        - type: object
          description: '"GMGN".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - gmgn
        - type: object
          description: '"Lucky Block".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - luckyBlock
        - type: object
          description: Maestro.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - maestro
        - type: object
          description: '"Manifold Trading".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - manifoldTrading
        - type: object
          description: '"MEVX".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - mevx
        - type: object
          description: Mintech.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - mintech
        - type: object
          description: Nighthawk.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - nighthawk
        - type: object
          description: Nova.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - nova
        - type: object
          description: '"OX.FUN".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - oxFun
        - type: object
          description: Padre.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - padre
        - type: object
          description: PepeBoost.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - pepeBoost
        - type: object
          description: Phantom.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - phantom
        - type: object
          description: Photon.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - photon
        - type: object
          description: SexBotSolana.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - sexBotSolana
        - type: object
          description: Shuriken.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - shuriken
        - type: object
          description: '"SOL Sniper Bot".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - solSniperBot
        - type: object
          description: '"Sol Trading Bot".'
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - solTradingBot
        - type: object
          description: Trojan.
          required:
            - platform
          properties:
            platform:
              type: string
              description: Which platform this is.
              enum:
                - trojan
      description: >-
        A platform attached to a token, a wallet, or a trade.


        The fieldless variants are trading terminals, each described by its
        display name.
    UiTokenPool:
      type: object
      description: One of a token's top pools.
      required:
        - pool
        - dex
        - liquidity
      properties:
        dex:
          type: string
          description: Venue the pool trades on.
        liquidity:
          $ref: '#/components/schemas/UiMoney'
          description: Pool liquidity.
        pool:
          type: string
          description: Pool address; the `pool` parameter of the candles endpoint.
        quote:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiPoolQuote'
              description: >-
                The asset the pool quotes the token in; `null` until a swap
                names it.
          description: >-
            The asset the pool quotes the token in; `null` until a swap names
            it.
    UiTokenSecurity:
      type: object
      description: >-
        Contract-security flags. Solana reads them on-chain; a contract scan
        reads them on the EVM

        chains.
      required:
        - mintDisabled
        - transferBlockable
        - rugPct
      properties:
        buyTaxBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            The token contract's own cut of a buy, in basis points; one layer of
            `totalBuyBps`.

            `null` when the launchpad states no rate.
          example: 100
          minimum: 0
        dividendMinHolding:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: >-
                Balance of this token a wallet holds to qualify for a payout, in
                whole tokens.
          description: >-
            Balance of this token a wallet holds to qualify for a payout, in
            whole tokens.
        dividendToken:
          type:
            - string
            - 'null'
          description: >-
            Address of the asset the token pays its tax back to holders in.

            `null` where no holder payout is known; it does not prove the token
            pays none.
        lpBurntPct:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: LP permanently unavailable (burnt + locked), 0-100.
          description: LP permanently unavailable (burnt + locked), 0-100.
        mintDisabled:
          type: boolean
          description: Mint authority revoked.
        rugPct:
          $ref: '#/components/schemas/Decimal'
          description: Share of supply held by wallets scored as rug risks, 0-100.
        sellTaxBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            The token contract's own cut of a sell, in basis points; see
            `buyTaxBps`.
          example: 200
          minimum: 0
        totalBuyBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            What a buy costs in total, in basis points — every fee layer the
            token's venue charges,

            summed. `null` when no source states a rate.
          example: 100
          minimum: 0
        totalSellBps:
          type:
            - integer
            - 'null'
          format: int32
          description: What a sell costs in total, in basis points; see `totalBuyBps`.
          example: 200
          minimum: 0
        transferBlockable:
          type: boolean
          description: Freeze authority present.
        transferFeeBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Transfer fee the token's own contract charges, in basis points —
            `250` is 2.50%.

            `null` when no source has scored the contract.
          example: 250
          minimum: 0
    UiTokenStats:
      type: object
      description: Trade stats over a trailing window that ends now, not a calendar bucket.
      required:
        - 5m
        - 30m
        - 1h
        - 6h
        - 24h
      properties:
        1h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 1 hour.
        24h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 24 hours.
        30m:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 30 minutes.
        5m:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 5 minutes.
        6h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 6 hours.
    UiTokenTotals:
      type: object
      description: All-time trade volume and fee totals.
      required:
        - volume
        - fees
      properties:
        fees:
          $ref: '#/components/schemas/UiTokenFees'
          description: All-time fee totals by kind.
        volume:
          $ref: '#/components/schemas/UiMoney'
          description: All-time trade volume.
    FundingSourceKind:
      type: string
      description: Whether a known exchange or another wallet funded the creator.
      enum:
        - cex
        - wallet
    FundingStatus:
      type: string
      description: Whether the creator wallet's funding lookup has settled.
      enum:
        - unresolved
        - resolved
    UiTokenFeeAllocation:
      type: object
      description: Where a token's tax goes, and to whom.
      required:
        - kind
      properties:
        kind:
          $ref: '#/components/schemas/UiTokenFeeAllocationKind'
          description: What the recipients are.
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/UiTokenFeeRecipient'
          description: Who is paid, and what share each takes.
    UiTokenFeeComponent:
      type: object
      description: 'One layer of a total: who charges it, and what each side pays.'
      required:
        - kind
      properties:
        asset:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiFeeAsset'
              description: >-
                The asset the layer is charged in, where it is not the traded
                token.
          description: The asset the layer is charged in, where it is not the traded token.
        buyBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Taken from a buy, in basis points. A layer that varies states its
            floor here.
          example: 0
          minimum: 0
        buyBpsMax:
          type:
            - integer
            - 'null'
          format: int32
          description: The most a varying buy layer takes. A fixed layer leaves this unset.
          example: 1000
          minimum: 0
        kind:
          $ref: '#/components/schemas/UiTokenFeeKind'
          description: Which layer this is.
        sellBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Taken from a sell, in basis points. A layer that varies states its
            floor here.
          example: 100
          minimum: 0
        sellBpsMax:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            The most a varying sell layer takes. A fixed layer leaves this
            unset.
          example: 1000
          minimum: 0
    UiTokenFeeRewards:
      type: object
      description: What a wallet holds to qualify for a payout.
      required:
        - minHolding
      properties:
        minHolding:
          $ref: '#/components/schemas/Decimal'
          description: The qualifying balance, in whole tokens of the taxed token.
        minHoldingUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: >-
                That balance at the token's current price. `null` until the
                token prices.
          description: >-
            That balance at the token's current price. `null` until the token
            prices.
    UiPoolQuote:
      type: object
      description: The asset a pool quotes its token in.
      required:
        - address
      properties:
        address:
          type: string
          description: Quote asset's address.
        symbol:
          type:
            - string
            - 'null'
          description: Quote asset's display symbol; `null` where none is known.
    UiTokenWindowStats:
      type: object
      description: Trade activity over one trailing window.
      required:
        - priceChangePct
        - volume
        - buyCount
        - sellCount
        - buyVolume
        - sellVolume
      properties:
        buyCount:
          type: integer
          format: int64
          description: Buy-side trade count.
          minimum: 0
        buyVolume:
          $ref: '#/components/schemas/UiMoney'
          description: Buy-side volume.
        priceChangePct:
          $ref: '#/components/schemas/Decimal'
          description: Price change over the window, percent.
        sellCount:
          type: integer
          format: int64
          description: Sell-side trade count.
          minimum: 0
        sellVolume:
          $ref: '#/components/schemas/UiMoney'
          description: Sell-side volume.
        volume:
          $ref: '#/components/schemas/UiMoney'
          description: Trade volume over the window.
    UiTokenFees:
      type: object
      description: All-time fee totals by kind.
      required:
        - transaction
        - validator
        - platform
      properties:
        dex:
          $ref: '#/components/schemas/UiMoney'
          description: 'Venue fees: what traders paid the pools and launchpads.'
        platform:
          $ref: '#/components/schemas/UiMoney'
          description: Platform fees.
        transaction:
          $ref: '#/components/schemas/UiMoney'
          description: >-
            Transaction fees. On some older Solana trades, this also holds the
            venue fee.
        validator:
          $ref: '#/components/schemas/UiMoney'
          description: Validator fees.
    UiTokenFeeAllocationKind:
      type: string
      description: What a venue does with the tax it takes.
      enum:
        - holders_dividend
        - creator
        - custom_wallet
        - staking
        - lottery
        - buyback
        - protocol
        - none
    UiTokenFeeRecipient:
      type: object
      description: One party a token's tax is paid to.
      properties:
        address:
          type:
            - string
            - 'null'
          description: >-
            The address paid. Absent where the venue names a payout without
            naming who holds it.
        payoutAsset:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiFeeAsset'
              description: The asset this recipient is paid in.
          description: The asset this recipient is paid in.
        shareBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            This recipient's share of the tax, in basis points; `10000` is all
            of it.
          example: 10000
          minimum: 0
    UiFeeAsset:
      type: object
      description: An asset a fee is charged or paid in.
      required:
        - address
      properties:
        address:
          type: string
          description: The asset's contract address.
        symbol:
          type:
            - string
            - 'null'
          description: Its display symbol; `null` where none is known.
    UiTokenFeeKind:
      type: string
      description: The layers a venue can charge.
      enum:
        - protocol_fee
        - creator_tax
        - quote_token_fee
        - pool_fee
        - hook_fee
        - snipe_tax
        - transfer_fee
        - creator_fee
        - holder_fee
  securitySchemes:
    bearerKey:
      type: http
      scheme: bearer
      description: >-
        Send an API key, or a session token a key minted, as `Authorization:
        Bearer <credential>`. A browser opening `/v1/stream` offers its session
        token in `Sec-WebSocket-Protocol` instead.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.