---
title: "Get commitment pricing by contract length"
method: GET
path: "/v1/custom-index/commitment-pricing"
tags: ["Custom Index"]
---

# Get commitment pricing by contract length

`GET /v1/custom-index/commitment-pricing`

## Request

- Base URL: `https://api.liquidcompute.co`
- URL: `https://api.liquidcompute.co/v1/custom-index/commitment-pricing`
- Auth: API key in header `X-API-Key`

Recent reserved, non-rolling deals for the selected GPU in us, global+us
and apac+us regions, over 120 UTC dates ending today. Requires BOTH the
selected index scope and private-txns family, included with Enterprise.
Supported IDs are a100-us, h100-us, h200-us, b200-us and b300-us.
Missing index_id follows the key's usual default-index rules. No
historical as-of override is accepted.

Exact stored term bounds form buckets. Midpoints divided by 30 define
months. Bucket means are GPU-weighted. The log-tenor fit minimizes
sum(sqrt(bucket GPUs) * (mean - a - b*ln(1+months))^2). It requires at
least three distinct midpoints and is defined only over observed support.
Twelve months means a 360-day commitment, not delivery twelve months
from today. A 365-day bucket remains distinct. This is neither a
forecast nor an executable quote; regions and contract quality vary.
Insufficient or invalid fits return observations with a null fit.
Fewer than ten deals sets sparse; it is not a confidence measure.
Responses, including errors, are private and no-store.

## Query parameters

- `index_id` string

## Response `200`

Commitment observations and optional fitted curve.

- object
  - `data` CommitmentCurve, required
    - `index_id` string, required
    - `methodology_version` 'commitment-v1', required
    - `units` 'usd_per_gpu_per_hr', required
    - `as_of` string, date, required
    - `calculated_at` string, date-time, required
    - `window_start` string, date, required
    - `window_end` string, date, required
    - `eligible_regions` string[], required
    - `oldest_date` string, date, nullable, required
    - `newest_date` string, date, nullable, required
    - `deal_count` integer, required
    - `bucket_count` integer, required
    - `distinct_tenors` integer, required
    - `gpu_count` integer, required
    - `excluded_invalid` integer, required
    - `state` 'fitted' | 'insufficient_data' | 'invalid_fit', required
    - `reason` '' | 'fewer_than_three_tenors' | 'degenerate_or_nonpositive_fit', required
    - `sparse` boolean, required
    - `buckets` object[], required
      - `term_days_min` integer, required
      - `term_days_max` integer, required
      - `midpoint_days` number, required
      - `deal_count` integer, required
      - `gpu_count` integer, required
      - `average` number, required
      - `low` number, required
      - `high` number, required
      - `fitted` number, nullable, required
    - `fit` object, nullable, required
      - `a` number, required
      - `b` number, required
      - `min_days` number, required
      - `max_days` number, required

## Other responses

- `400`: Invalid or unsupported query parameter.
- `401`: Missing or invalid API key.
- `404`: Unknown endpoint, unavailable resource, or an index or index family outside your authorization.
- `429`: Rate limit exceeded.
- `502`: Upstream service or gateway configuration failure.
- `503`: API-key validation is temporarily unavailable.

---

[API](https://skmtc.dev/liquidcompute/apis/liquidcompute-api.md) - [All operations](https://skmtc.dev/liquidcompute/apis/liquidcompute-api/llms.txt) - [OpenAPI document](https://skmtc.dev/liquidcompute/apis/liquidcompute-api/revisions/f58bc0aabb07?raw)
