Skip to main content
Source OpenAPI: 0xArchive API 1.5.0; 122 paths; 97 component schemas. Get tick-level aggregate L2 diffs derived from L4 deltas for Hyperliquid. Requires Pro tier or higher.

Route Metadata

FieldValue
MethodGET
Path/v1/hyperliquid/orderbook/{symbol}/l2/diffs
operationIdgetHyperliquidFullDepthL2Diffs
TagHyperliquid - Full-Depth L2 Order Book
FamilyHyperliquid Core
Deprecated or legacyno

Request Parameters

Path Parameters

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs path parameters",
  "type": "object",
  "required": [
    "symbol"
  ],
  "properties": {
    "symbol": {
      "description": "Trading pair symbol (e.g., BTC, ETH, SOL)",
      "type": "string",
      "example": "BTC",
      "x-parameter-location": "path"
    }
  }
}

Query Parameters

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs query parameters",
  "type": "object",
  "properties": {
    "start": {
      "description": "Start timestamp in Unix milliseconds. Defaults to 24h ago.",
      "type": "integer",
      "format": "int64",
      "example": 1767225600000,
      "x-parameter-location": "query"
    },
    "end": {
      "description": "End timestamp in Unix milliseconds. Defaults to now.",
      "type": "integer",
      "format": "int64",
      "example": 1767229200000,
      "x-parameter-location": "query"
    },
    "cursor": {
      "description": "Cursor for pagination in `timestamp_ms_block_number` form from the previous response's `next_cursor`.",
      "type": "string",
      "example": "1767225600000_1023882395",
      "x-parameter-location": "query"
    },
    "limit": {
      "description": "Maximum number of diff events (default: 100, max: 1000)",
      "type": "integer",
      "default": 100,
      "maximum": 1000,
      "x-parameter-location": "query"
    }
  }
}

Response Contracts

Status 200

Full-depth L2 diff events

application/json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs response 200",
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "description": "Full-depth L2 aggregate diff event derived from L4 deltas",
        "type": "object",
        "required": [
          "block_number",
          "count",
          "price",
          "side",
          "size",
          "timestamp"
        ],
        "properties": {
          "block_number": {
            "description": "Hyperliquid block number for the diff event",
            "type": "integer",
            "format": "int64",
            "example": 1023882395
          },
          "count": {
            "description": "Number of orders at the price level after the diff",
            "type": "integer",
            "example": 3
          },
          "price": {
            "description": "Price level changed by this diff",
            "type": "number",
            "example": 61088
          },
          "side": {
            "description": "Book side: B for bid, A for ask",
            "type": "string",
            "enum": [
              "B",
              "A"
            ],
            "example": "B"
          },
          "size": {
            "description": "Aggregate size at the price level after the diff",
            "type": "number",
            "example": 0.40603
          },
          "timestamp": {
            "description": "Diff timestamp (UTC)",
            "type": "string",
            "format": "date-time",
            "example": "2026-06-05T13:53:33.971Z"
          }
        }
      }
    },
    "meta": {
      "description": "Response metadata",
      "type": "object",
      "properties": {
        "count": {
          "description": "Number of records returned",
          "type": "integer"
        },
        "next_cursor": {
          "description": "Cursor for pagination (timestamp). Use this value as the `cursor` parameter to fetch the next page of results.",
          "type": "string",
          "nullable": true
        },
        "request_id": {
          "description": "Unique request ID for support",
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "success": {
      "type": "boolean",
      "example": true
    }
  }
}

Status 400

Invalid request

application/json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs response 400",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    }
  }
}
OpenAPI example
{
  "code": 400,
  "error": "Invalid request parameters"
}

Status 401

Authentication required

application/json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs response 401",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    }
  }
}
OpenAPI example
{
  "code": 401,
  "error": "Missing or invalid API key. Provide X-API-Key header."
}

Status 404

Resource not found

application/json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs response 404",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    }
  }
}
OpenAPI example
{
  "code": 404,
  "error": "Resource not found"
}

Status 429

Rate limit exceeded

application/json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "getHyperliquidFullDepthL2Diffs response 429",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    }
  }
}
OpenAPI example
{
  "code": 429,
  "error": "Rate limit exceeded"
}
Last modified on June 11, 2026