0xArchive HIP-3 Builder Perps - L4 Order Book API

Individual order-level (L4) orderbook data for HIP-3 builder perps.

Operations 3

GET /v1/hyperliquid/hip3/orderbook/{symbol}/l4 Get HIP-3 L4 orderbook #
GET /v1/hyperliquid/hip3/orderbook/{symbol}/l4/diffs Get HIP-3 L4 orderbook diffs #
GET /v1/hyperliquid/hip3/orderbook/{symbol}/l4/history Get HIP-3 L4 orderbook history #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/0xarchive-hip-3-builder-perps-l4-order-book-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

0xarchive-hip-3-builder-perps-l4-order-book-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 0xArchive HIP-3 Builder Perps - L4 Order Book API
  description: REST API for current and historical market data from Hyperliquid and Lighter. Hyperliquid coverage includes core perpetuals, Spot, HIP-3 builder perpetuals, and HIP-4 outcome markets. Coverage and access requirements vary by route. See https://docs.0xarchive.io/ for authentication, limits, and examples.
  version: 1.6.1
  termsOfService: https://0xarchive.io/terms
  contact:
    name: 0xArchive Support
    url: https://0xarchive.io
    email: support@0xarchive.io
  license:
    name: Proprietary
    url: https://0xarchive.io/terms
servers:
- url: https://api.0xarchive.io
  description: Production API
security:
- ApiKeyAuth: []
tags:
- name: HIP-3 Builder Perps - L4 Order Book
  description: Individual order-level (L4) orderbook data for HIP-3 builder perps.
paths:
  /v1/hyperliquid/hip3/orderbook/{symbol}/l4:
    get:
      tags:
      - HIP-3 Builder Perps - L4 Order Book
      summary: Get HIP-3 L4 orderbook
      description: Get the all-level L4 (individual order-level) orderbook reconstruction for a HIP-3 symbol. Shows resting orders across all served levels with price, size, and order ID. Returns the latest snapshot if no timestamp is provided. Within each price level, bids and asks are ordered by true queue priority (ALO priority insertions included), not by placement time. Depth truncation is by order count, so the orders at a depth cut can differ from responses served before 2026-07-21.
      operationId: getHip3L4Orderbook
      parameters:
      - name: symbol
        in: path
        required: true
        description: HIP-3 symbol (case-sensitive, e.g., hyna:BTC, km:US500)
        schema:
          type: string
          example: hyna:BTC
        example: km:US500
      - name: timestamp
        in: query
        description: Unix timestamp in milliseconds for the HIP-3 snapshot. If omitted, returns the latest snapshot. ISO 8601 strings are rejected.
        schema:
          type: integer
          format: int64
          example: 1767225600000
      - name: depth
        in: query
        description: Maximum number of resting orders retained per side for this HIP-3 L4 snapshot. Omit for the full stored depth.
        schema:
          type: integer
          format: int64
          example: 20
      responses:
        '200':
          description: Typed L4 orderbook snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseL4OrderBook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /v1/hyperliquid/hip3/orderbook/{symbol}/l4/diffs:
    get:
      tags:
      - HIP-3 Builder Perps - L4 Order Book
      summary: Get HIP-3 L4 orderbook diffs
      description: 'Get per-order diff events for the HIP-3 L4 orderbook. Each diff represents an individual order placement, modification, fill, or cancellation. Diff items may include an optional insert_before field (order ID or null): for a new ALO order granted queue priority, it names the resting order this one is inserted ahead of within its price level. null or absent means tail append. Present on data from 2026-07-21 onward.'
      operationId: getHip3L4Diffs
      parameters:
      - name: symbol
        in: path
        required: true
        description: HIP-3 symbol (case-sensitive, e.g., hyna:BTC, km:US500)
        schema:
          type: string
          example: hyna:BTC
        example: km:US500
      - name: start
        in: query
        description: Start of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
        schema:
          type: integer
          format: int64
          example: 1767225600000
      - name: end
        in: query
        description: End of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
        schema:
          type: integer
          format: int64
          example: 1767312000000
      - name: cursor
        in: query
        description: Cursor for pagination (use the value from previous response's `next_cursor`)
        schema:
          type: string
      - name: limit
        in: query
        description: 'Maximum number of results (default: 1000, max: 10000)'
        schema:
          type: integer
          default: 1000
          maximum: 10000
      responses:
        '200':
          description: L4 orderbook diff events
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      type: object
                      description: A single L4 order book diff event.
                      properties:
                        timestamp:
                          type: integer
                          format: int64
                          description: Event time in epoch milliseconds.
                        block_number:
                          type: integer
                          format: int64
                          description: Hyperliquid block number of the event.
                        seq:
                          type: integer
                          description: Within-block sequence number.
                        oid:
                          type: integer
                          format: int64
                          description: Order ID.
                        user_address:
                          type: string
                          description: Address that owns the order.
                        coin:
                          type: string
                        side:
                          type: string
                          enum:
                          - B
                          - A
                          description: B = bid, A = ask.
                        price:
                          type: number
                        diff_type:
                          type: string
                          enum:
                          - new
                          - update
                          - remove
                          description: new = order joined the book, update = resting size changed, remove = filled or canceled.
                        new_size:
                          type:
                          - number
                          - 'null'
                          description: Resting size after the event; null on remove.
                        insert_before:
                          type:
                          - integer
                          - 'null'
                          format: int64
                          description: 'ALO queue priority: the resting order ID this new order is inserted ahead of within its price level. null or absent means the order was appended at the queue tail. Populated on data from 2026-07-21 onward; absent on earlier history.'
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                      next_cursor:
                        type: string
                      request_id:
                        type: string
                        format: uuid
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /v1/hyperliquid/hip3/orderbook/{symbol}/l4/history:
    get:
      tags:
      - HIP-3 Builder Perps - L4 Order Book
      summary: Get HIP-3 L4 orderbook history
      description: Get historical L4 orderbook checkpoint list for a HIP-3 symbol. Each checkpoint is a full L4 snapshot that can be used as a starting point for replay. Within each price level, bids and asks are ordered by true queue priority (ALO priority insertions included), not by placement time. Depth truncation is by order count, so the orders at a depth cut can differ from responses served before 2026-07-21.
      operationId: getHip3L4History
      parameters:
      - name: symbol
        in: path
        required: true
        description: HIP-3 symbol (case-sensitive, e.g., hyna:BTC, km:US500)
        schema:
          type: string
          example: hyna:BTC
        example: km:US500
      - name: start
        in: query
        description: Start of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
        schema:
          type: integer
          format: int64
          example: 1767225600000
      - name: end
        in: query
        description: End of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
        schema:
          type: integer
          format: int64
          example: 1767312000000
      - name: cursor
        in: query
        description: Timestamp cursor in Unix milliseconds from the previous response metadata.
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: 'Maximum number of results (default: 100, max: 1000)'
        schema:
          type: integer
          default: 100
          maximum: 1000
          format: int64
      responses:
        '200':
          description: Typed L4 orderbook checkpoint array
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseL4OrderBookArray'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    ApiMeta:
      type: object
      description: Response metadata
      properties:
        count:
          type: integer
          description: Number of records returned
        next_cursor:
          type:
          - string
          - 'null'
          description: Cursor for pagination (timestamp). Use this value as the `cursor` parameter to fetch the next page of results.
        request_id:
          type: string
          format: uuid
          description: Unique request ID for support
        coverage_from:
          type: string
          format: date-time
          description: Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
        notice:
          type: string
          description: Human-readable advisory about the response. Currently used when the requested window ends before coverage begins for the symbol; may carry other advisories in future.
    ApiResponseL4OrderBookArray:
      type: object
      required:
      - success
      - data
      - meta
      properties:
        success:
          type: boolean
          example: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/L4OrderBookSnapshot'
        meta:
          $ref: '#/components/schemas/ApiMeta'
    ApiResponseL4OrderBook:
      type: object
      required:
      - success
      - data
      - meta
      properties:
        success:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/L4OrderBookSnapshot'
        meta:
          $ref: '#/components/schemas/ApiMeta'
    Error:
      type: object
      description: Error response
      properties:
        code:
          type: integer
          description: HTTP status code
        error:
          type: string
          description: Error message
        error_code:
          type: string
          description: 'Machine-readable error code. Common values: `invalid_query_params` (a query parameter failed to parse or validate) and `invalid_path_params` (a path parameter failed to parse). Other endpoint-specific codes exist; treat unknown codes as generic errors of the given HTTP status.'
        request_id:
          type: string
          format: uuid
          description: Unique request ID for support
    L4Order:
      type: object
      description: Individual resting order in a Hyperliquid-family L4 snapshot.
      required:
      - oid
      - user_address
      - side
      - price
      - size
      - timestamp
      properties:
        oid:
          type: integer
          format: int64
          description: Hyperliquid order identifier.
          example: 18499128731
        user_address:
          type: string
          description: Address attributed to the resting order.
          example: '0x0000000000000000000000000000000000000000'
        side:
          type: string
          enum:
          - B
          - A
          description: 'Book side: B for bid or A for ask.'
          example: B
        price:
          type: number
          description: Venue-native resting order price.
          example: 105384.5
        size:
          type: number
          description: Venue-native remaining order size.
          example: 0.824
        timestamp:
          type: integer
          format: int64
          description: Queue-join timestamp in Unix epoch milliseconds; 0 when unknown.
          example: 1773273600123
    L4OrderBookSnapshot:
      type: object
      description: Current or reconstructed Hyperliquid-family L4 orderbook snapshot.
      required:
      - coin
      - timestamp
      - checkpoint_timestamp
      - diffs_applied
      - last_block_number
      - bids
      - asks
      - bid_count
      - ask_count
      - total_bid_size
      - total_ask_size
      properties:
        coin:
          type: string
          description: Trading pair or market symbol.
          example: BTC
        timestamp:
          type: string
          format: date-time
          description: Snapshot timestamp in UTC.
          example: '2026-03-12T00:00:00.000Z'
        checkpoint_timestamp:
          type: string
          format: date-time
          description: Timestamp of the checkpoint used for this snapshot.
          example: '2026-03-12T00:00:00.000Z'
        diffs_applied:
          type: integer
          description: Number of L4 diffs applied after the checkpoint.
          example: 0
        last_block_number:
          type: integer
          format: int64
          description: Last Hyperliquid block represented by this snapshot.
          example: 1023882395
        bids:
          type: array
          description: Bid-side resting orders, best price first.
          items:
            $ref: '#/components/schemas/L4Order'
        asks:
          type: array
          description: Ask-side resting orders, best price first.
          items:
            $ref: '#/components/schemas/L4Order'
        bid_count:
          type: integer
          description: Number of bid orders in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
          example: 12
        ask_count:
          type: integer
          description: Number of ask orders in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
          example: 15
        total_bid_size:
          type: number
          description: Aggregate venue-native bid size in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
          example: 102.34
        total_ask_size:
          type: number
          description: Aggregate venue-native ask size in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
          example: 98.76
        is_crossed:
          type: boolean
          description: True only when a reconstructed historical book has best bid greater than or equal to best ask; omitted for clean snapshots.
          example: true
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 401
            error: Missing or invalid API key. Provide X-API-Key header.
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 400
            error: 'Failed to deserialize query string: limit: invalid digit found in string'
            error_code: invalid_query_params
            request_id: 3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05
    RateLimited:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          schema:
            type: integer
          description: Requests per second limit
        X-RateLimit-Remaining:
          schema:
            type: integer
          description: Remaining requests this second
        X-RateLimit-Reset:
          schema:
            type: integer
          description: Unix timestamp when limit resets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 429
            error: Rate limit exceeded
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication. Get yours at https://0xarchive.io/dashboard
externalDocs:
  description: 0xArchive Developer Docs
  url: https://docs.0xarchive.io/
x-0xarchive-docs-language-overlay:
  name: data-quality-supported-venue-language
  reason: Public OpenAPI language must describe supported venue-family coverage instead of broad exchange coverage.
  updated_at: '2026-05-24'
  remove_when: Public source OpenAPI uses supported venue-family wording for data-quality coverage and latency descriptions.
x-0xarchive-docs-overlay:
  name: hyperliquid-spot
  reason: Hyperliquid Spot routes are included in the local REST contract.
  source: live endpoint behavior and public CLI/MCP/Skill surface truth
  updated_at: '2026-05-08'
  remove_when: Public source contract includes the same Spot route family.