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

# Ironflow API plans and prices

> GET /v1/billing/plans lists the paid plans, their limits and prices in USDC, and how to pay from code on Hyperliquid or with x402.



## OpenAPI

````yaml GET /v1/billing/plans
openapi: 3.1.0
info:
  title: Ironflow API
  version: 1.0.0
  description: >
    Hyperliquid market data from Ironflow's own nodes: tick-level fills and

    trades, candles, funding rates, liquidations, mark prices, open interest,

    markets and wallet analytics over REST, live Server-Sent Events streams and

    read-only SQL. One schema across native HL perps, HIP-3 builder markets,

    HIP-4 outcome contracts and HL spot.


    The same data is a hosted MCP server for AI agents at

    `https://mcp.ironflow.sh/mcp`, and agents with a USDC wallet on Base can pay

    per call with x402, no key: the data GET endpoints are also served at

    `/x402/v1/...` (discovery: `https://api.ironflow.sh/openapi.json` and

    `https://api.ironflow.sh/.well-known/x402`).


    **Base URL:** `https://api.ironflow.sh`


    **Authentication:** Read endpoints work without a key (keyless access) or

    with a Bearer token in the `Authorization` header. Writes always need a key.

    ```

    Authorization: Bearer if_your_api_key

    ```

    Get a free key at https://ironflow.sh/key.


    **Access levels:**


    | Access | Requests per minute | History | Max range per request |

    |---|---|---|---|

    | No key | 30 per IP (2,000 a day) | 24 hours | 1 hour |

    | Free key | 60 | 30 days | 6 hours |

    | Explorer | 100 | 90 days | 24 hours |

    | Builder | 1,000 | 1 year | 7 days |

    | Enterprise | 10,000 | full | unlimited |


    Without a market filter, high-volume endpoints allow at most 4 hours per
    request.

    `/v1/trades` filtered to one perp or spot market allows 24 hours per request

    without a key and on a free key.

    A header that is present but malformed returns 401; keyless access applies
    only

    when no `Authorization` header is sent.


    **Data availability:** fills and trades start on 25 May 2025; other

    datasets start later (funding 2025-09-27, open interest and mark prices

    2026-04-29). Bulk history is free to download from

    https://huggingface.co/ironflow.


    **Timestamps:** All timestamps are Unix milliseconds (int64).


    **Pagination:** Paginated endpoints return a `cursor` in
    `pagination.next_cursor`.

    Pass it as the `cursor` query parameter to fetch the next page.

    When `pagination.has_more` is `false`, you have reached the last page.


    **Notices:** a successful JSON object may start with `notice`, the

    `X-Ironflow-Notice` header in the body: what was served when it differs from

    what was asked (a keyless sample, a shortened history, a guessed path) and

    how to get the rest.


    **Guessed paths:** a few paths callers guess are answered by the endpoint

    they mean, with a `notice` and the `X-Ironflow-Canonical` header naming it:

    `/v1/liquidations/aggregate`, `/v1/summary/liquidations` and similar by

    `/v1/liquidations/summary`, `/v1/liquidations/buckets` and `heatmap` by

    `/v1/analytics/liquidation-levels`, and `/v1/liquidations/map/BTC-PERP` by

    `/v1/liquidations/map?market=BTC-PERP`. A path with trailing `.`, `,`, `;`
    or

    `)` (`/v1/query.`, copied from a sentence) is answered by the endpoint
    without

    them, with the same method, query and body. OpenAI-style paths
    (`/v1/models`,

    `/v1/chat/completions`) answer 404: this is not an LLM API, and agents use
    the

    MCP server above.
  contact:
    name: Ironflow Support
    url: https://ironflow.sh
servers:
  - url: https://api.ironflow.sh
    description: Production
security:
  - bearerAuth: []
  - {}
tags:
  - name: Market Data
    description: Historical tick-level market data stored in ClickHouse.
  - name: Analytics
    description: >-
      Aggregated analytics. Net flows, funding stats and the liquidation map
      markets work without a key; liquidation levels, the liquidation map and
      the vault leaderboard return a sample without one; order flow needs a key
      (a free key works).
  - name: Cohorts
    description: Predefined and custom address groups for filtering market data.
  - name: Alerts
    description: >-
      Liquidation alerts that Ironflow posts to your webhook, Discord channel,
      Slack channel or Telegram chat.
  - name: Ironbox
    description: >-
      Secure, sandboxed environments in Tokyo, next to Hyperliquid, where a
      trading agent runs with Ironflow's data, analytics, alerts and execution.
      Any API key, free included.
  - name: Query
    description: >-
      Read-only ClickHouse SQL over curated Hyperliquid tables (hl.*), limited
      by tier.
  - name: Billing
    description: >-
      Paid plans, paid in USDC on Hyperliquid or with x402 on Base. No card, no
      account page.
  - name: System
    description: Health checks and metadata endpoints.
  - name: TradingApp
    description: >-
      The trading terminal's own endpoints (terminal.ironflow.sh),
      wallet-session auth. Not part of the public data API; left out of the docs
      copy.
paths:
  /v1/billing/plans:
    get:
      tags:
        - Billing
      summary: List paid plans and how to pay
      description: |
        The plans an API key can be upgraded to, the founding offer while
        seats remain, the receiving address on Hyperliquid and the steps to
        pay from code. No key needed.
      operationId: listPlans
      responses:
        '200':
          description: Plans and payment instructions.
          content:
            application/json:
              schema:
                type: object
                required:
                  - plans
                  - days
                  - token
                  - network
                  - to_address
                  - steps
                properties:
                  plans:
                    type: array
                    items:
                      $ref: '#/components/schemas/BillingPlan'
                  offers:
                    type: array
                    description: >-
                      Offers beside the plans (the founding price) while seats
                      remain.
                    items:
                      $ref: '#/components/schemas/BillingPlan'
                  days:
                    type: integer
                    description: Days one payment keeps a plan
                  renewal:
                    type: string
                  token:
                    type: string
                    enum:
                      - USDC
                  network:
                    type: string
                    enum:
                      - Hyperliquid
                  to_address:
                    type: string
                    description: Ironflow's receiving address on Hyperliquid
                  steps:
                    type: array
                    items:
                      type: string
                  x402:
                    type: string
                    description: How to buy a plan in one x402 call instead
                  page:
                    type: string
                    format: uri
              example:
                plans:
                  - id: explorer
                    name: Explorer
                    price_usdc: 49
                    requests_per_minute: 100
                    history_days: 90
                    x402_buy_url: https://api.ironflow.sh/x402/v1/plans/explorer/buy
                  - id: builder
                    name: Builder
                    price_usdc: 149
                    requests_per_minute: 1000
                    history_days: 365
                    x402_buy_url: https://api.ironflow.sh/x402/v1/plans/builder/buy
                offers:
                  - id: founding
                    name: Founding member (Explorer)
                    price_usdc: 19
                    requests_per_minute: 100
                    history_days: 90
                    seats_left: 50
                    x402_buy_url: https://api.ironflow.sh/x402/v1/plans/founding/buy
                days: 30
                renewal: >-
                  none: a plan runs for days after the payment; paying again
                  extends it
                token: USDC
                network: Hyperliquid
                to_address: '0x0000000000000000000000000000000000000000'
                steps:
                  - >-
                    POST https://api.ironflow.sh/v1/billing/upgrade with
                    {"email", "wallet", "plan"}
                page: https://ironflow.sh/upgrade
      security: []
components:
  schemas:
    BillingPlan:
      type: object
      required:
        - id
        - name
        - price_usdc
        - requests_per_minute
        - history_days
      properties:
        id:
          type: string
          enum:
            - explorer
            - builder
            - founding
        name:
          type: string
        price_usdc:
          type: number
          description: Price per 30 days
        requests_per_minute:
          type: integer
        history_days:
          type: integer
        x402_buy_url:
          type: string
          format: uri
          description: Buy it in one x402 call (USDC on Base)
        seats_left:
          type: integer
          description: Founding offer only
        about:
          type: string
          description: Founding offer only
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Ironflow API key, format `if_xxxx`. Free keys at
        https://ironflow.sh/key. Optional on read endpoints.

````

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