> ## 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.

# Trending

> Returns tokens ranked by trending score across one or more chains.

Returns tokens ranked by trending score across the requested chains. Tokens from every requested chain are ranked as one set.

## Request body

`chains` is required and must list at least one chain. A repeated chain slug counts once.

* `window` sets the period the score covers: `5m`, `30m`, `1h`, `6h` or `24h`. The default is `24h`.
* `limit` sets the number of tokens on the board. The default is 100, and out-of-range values are clamped to 1–100.
* `filters` takes the same filters as [Discovery boards](https://docs.metastreams.io/reference/rest/discovery.md#filters). A token must match every filter to be ranked.

An unknown top-level field returns `400 VALIDATION_ERROR`. Unknown filter names inside `filters` are ignored, as on Discovery boards.

## Ranking

The trending score combines USD volume, trade count and volume growth over the window. Tokens created in the last 24 hours receive a bonus. On `24h`, the score also includes holder growth and favors tokens with recent activity.

The score is not returned. `rank` gives the order, and tokens with equal scores are returned in a stable order. The board can contain fewer tokens than `limit`.

## Response

`deltas` lists the board, with one item per rank starting from 1. Each item's `data` is the same token object that [Token details](https://docs.metastreams.io/reference/rest/token-details.md) returns.

The [`spot.trending`](https://docs.metastreams.io/reference/streams/spot-trending) channel streams changes to the same board.

## Errors

| Code | When |
| - | - |
| `UNSUPPORTED_CHAIN` | A slug in `chains` is not supported |
| `VALIDATION_ERROR` | An empty `chains` list, an unknown field, or a malformed body |

```bash cURL theme={null}
curl -X POST "https://api.metastreams.io/v1/trending" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "chains": ["solana", "base"],
    "window": "1h",
    "limit": 50,
    "filters": { "marketCapUsd": { "min": "100000" } }
  }'
```

```typescript TypeScript theme={null}
const response = await fetch("https://api.metastreams.io/v1/trending", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    chains: ["solana", "base"],
    window: "1h",
    limit: 50,
  }),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { deltas } = await response.json();
```

```rust Rust theme={null}
use serde_json::{Value, json};

let response: Value = reqwest::Client::new()
    .post("https://api.metastreams.io/v1/trending")
    .bearer_auth(std::env::var("API_KEY")?)
    .json(&json!({
        "chains": ["solana", "base"],
        "window": "1h",
        "limit": 50,
    }))
    .send()
    .await?
    .error_for_status()?
    .json()
    .await?;
let deltas = &response["deltas"];
```

```json Shortened theme={null}
{
  "deltas": [
    {
      "chain": "solana",
      "address": "TokenMint1111111111111111111111111111111pump",
      "rank": 1,
      "data": {
        "chain": "solana",
        "address": "TokenMint1111111111111111111111111111111pump",
        "name": "Example",
        "symbol": "EXAMPLE",
        "decimals": 6,
        "logoUrl": "https://cdn.example.com/TokenMint1111111111111111111111111111111pump.webp",
        "price": { "native": "0.0000031", "usd": "0.00055" },
        "marketCap": { "native": "3100", "usd": "552000" },
        "liquidity": { "native": "410.2", "usd": "73100" },
        "updatedAt": 1789632012345
      }
    }
  ]
}
```


## 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.