---
title: "List market windows"
method: GET
path: "/preview/v2/orderbook/windows"
tags: ["Orderbook"]
---

# List market windows

`GET /preview/v2/orderbook/windows`

> ⚠️ This endpoint is in [public preview](/preview/roadmap).

List every instance SKU and delivery window with resting orders matching the requirements, within the given time range. Each row is a summary; use /quote or /depth for detail on a specific SKU window.

## Query parameters

- `requirements` string
- `range_start_at` integer, required — Unix timestamp.
- `range_end_at` integer, required — Unix timestamp.
- `limit` integer
- `starting_after` string

## Response `200`

Active windows in the range.

- ListOrderbookWindowsResponse — Paginated list of active SKU windows, sorted by `(start_at, end_at, instance_sku)` ascending.
  - `object` 'list', required
  - `requirements` Requirements, required — Key/value filters on instance SKU properties. Valid keys and values are published at `GET /v2/instance_sku_property_catalog`. Empty map = no constraints.
  - `range_start_at` integer, required — Unix timestamp.
  - `range_end_at` integer, required — Unix timestamp.
  - `cursor` string
  - `has_more` boolean, required
  - `data` OrderbookWindow[], required
    - `instance_sku` union, required — Accepts the canonical prefix below; additional legacy prefixes are aliased for read compatibility. Writes always emit the canonical form.
      - string
      - string — Legacy alias prefix; accepted on read, never emitted on write.
    - `start_at` integer, required — Unix timestamp.
    - `end_at` integer, required — Unix timestamp.
    - `duration_hours` integer, required — Duration of the window in whole hours.
    - `total_bid_order_count` integer, required — Number of resting bid orders at this window.
    - `total_ask_order_count` integer, required — Number of resting ask orders at this window.
    - `best_bid` PriceLevel — One price level in the order book — orders sharing the same instance SKU and per-node-hour rate are summed into a single entry.
      - `instance_sku` union, required — Accepts the canonical prefix below; additional legacy prefixes are aliased for read compatibility. Writes always emit the canonical form.
        - string
        - string — Legacy alias prefix; accepted on read, never emitted on write.
      - `dollars_per_node_hour` string, required — Price in dollars per node-hour, encoded as a decimal string. Prices are rounded to the nearest $0.000060/node-hour market tick. This is one microdollar per node-minute. Responses contain the rounded value with six decimal places. Inputs must contain a decimal point, be non-negative, and not exceed $500/node-hour.
      - `allocation_schedule_delta` ScheduleEntry[], required — Node count over time, as a list of `[start_at, end_at)` time ranges. Example: 5 nodes from t=0 to t=3600 is `[{"start_at": 0, "end_at": 3600, "node_count": 5}]`. `start_at` and `end_at` must be 60-second aligned, `node_count` must be non-negative. On non-final entries, `end_at` may be omitted (inferred from the next entry's `start_at`); gaps fill with `node_count: 0`.
        - `start_at` integer, required — Unix timestamp.
        - `end_at` integer — Unix timestamp.
        - `node_count` integer, required
    - `best_ask` PriceLevel — One price level in the order book — orders sharing the same instance SKU and per-node-hour rate are summed into a single entry.
      - `instance_sku` union, required — Accepts the canonical prefix below; additional legacy prefixes are aliased for read compatibility. Writes always emit the canonical form.
        - string
        - string — Legacy alias prefix; accepted on read, never emitted on write.
      - `dollars_per_node_hour` string, required — Price in dollars per node-hour, encoded as a decimal string. Prices are rounded to the nearest $0.000060/node-hour market tick. This is one microdollar per node-minute. Responses contain the rounded value with six decimal places. Inputs must contain a decimal point, be non-negative, and not exceed $500/node-hour.
      - `allocation_schedule_delta` ScheduleEntry[], required — Node count over time, as a list of `[start_at, end_at)` time ranges. Example: 5 nodes from t=0 to t=3600 is `[{"start_at": 0, "end_at": 3600, "node_count": 5}]`. `start_at` and `end_at` must be 60-second aligned, `node_count` must be non-negative. On non-final entries, `end_at` may be omitted (inferred from the next entry's `start_at`); gaps fill with `node_count: 0`.
        - `start_at` integer, required — Unix timestamp.
        - `end_at` integer — Unix timestamp.
        - `node_count` integer, required

## Other responses

- `401` — Unauthorized.
- `422` — Validation failed.
- `500` — Internal server error.

---

[API](https://skmtc.dev/sfcompute/apis/sfc-api.md) · [All operations](https://skmtc.dev/sfcompute/apis/sfc-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sfcompute/sfc-api/revisions/f3ff1539c0d9/schema)
