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

# List market fills

`GET /preview/v2/orderbook/fills`

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

All contracts that filled on hardware meeting the requirements for the given delivery window, sorted newest first. One row per fill (contract), including the instance SKU. Participant identity is never exposed.

## Query parameters

- `requirements` string
- `start_at` integer, required — Unix timestamp.
- `end_at` integer, required — Unix timestamp.
- `since_at` integer — Unix timestamp.
- `limit` integer
- `starting_after` string

## Response `200`

Paginated list of fills.

- ListOrderbookFillsResponse — Paginated list of historical fills, newest first.
  - `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.
  - `start_at` integer, required — Unix timestamp.
  - `end_at` integer, required — Unix timestamp.
  - `requested_at` integer, required — Unix timestamp.
  - `cursor` string
  - `has_more` boolean, required
  - `data` OrderbookFill[], 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.
    - `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
    - `filled_at` integer, required — Unix timestamp.

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