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

> GET /v1/status returns overall health, per-venue data freshness and platform totals for the Ironflow Hyperliquid data API. It needs no API key.



## OpenAPI

````yaml GET /v1/status
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. One schema across native HL perps,

    HIP-3 builder markets, HIP-4 outcome contracts and HL spot.


    **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 | 10 per IP | 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.

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

    when no `Authorization` header is sent.


    **Data availability:** fills and trades cover a rolling 12 months; other

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

    2026-04-29).


    **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.
  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 endpoints (Builder tier and above).
  - name: Cohorts
    description: Predefined and custom address groups for filtering market data.
  - name: Info Proxy
    description: >-
      Cached passthrough to the Hyperliquid Info API. No record caps, higher
      rate limits.
  - name: Export
    description: Bulk data export as CSV or Parquet (Builder tier and above).
  - name: Query
    description: >-
      Read-only ClickHouse SQL over curated Hyperliquid tables (hl.*), limited
      by tier.
  - name: System
    description: Health checks and metadata endpoints.
  - name: TradingApp
    description: >-
      Trading app Phase A — wallet auth (SIWE), agent-key provisioning, and
      kill-switch.
paths:
  /v1/status:
    get:
      tags:
        - System
      summary: System status
      description: |
        Returns overall health, per-venue data freshness, and platform
        aggregates. Does not require authentication.
      operationId: getStatus
      responses:
        '200':
          description: System status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
              example:
                status: operational
                timestamp: 1745145533000
                uptime: 3h12m40s
                platform:
                  total_events: 1843000000
                  total_markets: 568
                  event_types_active: 9
                  oldest_data_days: 266
                components:
                  data_pipeline:
                    status: operational
                    last_seen_age_seconds: 4.2
                  rest_api:
                    status: operational
                    last_seen_age_seconds: 4.2
                  streaming:
                    status: operational
                    last_seen_age_seconds: 4.2
                venues:
                  hyperliquid:
                    status: operational
                    markets: 568
                    streams:
                      fills:
                        latest_timestamp: '2026-04-20 09:58:53.033'
                        age_seconds: 0.41
                        total_rows: 1843000000
                      order_statuses:
                        latest_timestamp: '2026-04-20 09:58:53.044'
                        age_seconds: 0.39
                        total_rows: 3500000000
                      book_snapshots:
                        latest_timestamp: '2026-04-20 09:58:52.900'
                        age_seconds: 1.14
                        total_rows: 21000000
                    events:
                      liquidations:
                        latest_timestamp: '2026-04-20 09:54:12.019'
                        age_seconds: 281
                        total_rows: 1204000
                      funding_rates:
                        latest_timestamp: '2026-04-20 09:00:00.000'
                        age_seconds: 3533
                        total_rows: 150000
      security: []
components:
  schemas:
    StatusResponse:
      type: object
      required:
        - status
        - timestamp
        - uptime
        - venues
      properties:
        status:
          type: string
          enum:
            - operational
            - degraded
            - down
          description: >
            Overall system health, the worst of any individual service or venue.

            `degraded` means at least one input crossed 60s of staleness;

            `down` means at least one crossed 5 minutes (or a process is
            hard-down).
        timestamp:
          type: integer
          format: int64
          description: Server time as Unix milliseconds.
        uptime:
          type: string
          description: |
            Time since the last pipeline incident (data freshness > 60s OR a
            critical process scraped as down) within the trailing 7-day window,
            as a Go duration string (e.g. `"3h12m40s"`, `"168h0m0s"` for a full
            incident-free week). Sourced from Prometheus, so it is stable across
            api-server restarts — rolling deploys do NOT reset this value.
            If Prometheus is unreachable, falls back to the process uptime of
            the serving container as a degraded-mode best-effort value.
        platform:
          $ref: '#/components/schemas/PlatformStats'
        venues:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/VenueStatus'
        components:
          type: object
          description: |
            Health of each customer-facing service. Three keys are returned:

              - `data_pipeline` — events ingested from venues into queryable storage.
                Reflects worst-of(ingest path liveness, venue freshness).
              - `rest_api`      — HTTP API for historical and recent data.
              - `streaming`     — WebSocket feed for real-time data.

            The status page deliberately exposes services rather than the
            underlying processes — internal implementation components
            (message bus, storage engine, individual binaries) are folded
            into these three to give customers a clear answer without
            leaking the architecture.
          additionalProperties:
            $ref: '#/components/schemas/ComponentHealth'
    PlatformStats:
      type: object
      required:
        - total_events
        - total_markets
        - event_types_active
        - oldest_data_days
      properties:
        total_events:
          type: integer
          format: int64
        total_markets:
          type: integer
          format: int64
        event_types_active:
          type: integer
        oldest_data_days:
          type: integer
    VenueStatus:
      type: object
      required:
        - status
        - markets
        - streams
        - events
      properties:
        status:
          type: string
          enum:
            - operational
            - degraded
        markets:
          type: integer
          format: int64
          description: Markets seen in fills over the last 24h.
        streams:
          type: object
          description: >-
            High-frequency streaming tables (e.g. fills, order_statuses,
            book_snapshots).
          additionalProperties:
            $ref: '#/components/schemas/DataFreshness'
        events:
          type: object
          description: >-
            Event-driven tables where gaps are normal (e.g. liquidations,
            funding_rates).
          additionalProperties:
            $ref: '#/components/schemas/DataFreshness'
    ComponentHealth:
      type: object
      required:
        - status
        - last_seen_age_seconds
      properties:
        status:
          type: string
          enum:
            - operational
            - degraded
            - down
        last_seen_age_seconds:
          type: number
          format: double
          description: |
            Age in seconds of the most-recent successful liveness signal across
            this service's inputs. `-1` means no signal at all (treat as down).
    DataFreshness:
      type: object
      required:
        - latest_timestamp
        - age_seconds
        - total_rows
      properties:
        latest_timestamp:
          type: string
          description: Timestamp of the most recent row as ClickHouse DateTime64 string.
          example: '2026-04-20 09:58:53.033'
        age_seconds:
          type: number
          description: Seconds since the latest row was written.
          example: 0.41
        total_rows:
          type: integer
          format: int64
          description: Total rows currently stored for this table (respecting TTL).
          example: 1843000000
  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.