---
title: "Get contract"
method: GET
path: "/v0/contracts/{id}"
tags: ["Contracts"]
---

# Get contract

`GET /v0/contracts/{id}`

Get a contract

## Path parameters

- `id` string, required

## Response `200`

Contract details

- MarketApiContractResponse
  - `object` 'contract', required
  - `status` 'active' | 'pending', required
  - `id` string, required
  - `created_at` string, date-time, required — An ISO 8601 datetime string
  - `instance_type` string, required
  - `shape` MarketApiExternalShape, required — A schedule representing a change of a quantity over time. The schedule changes at intervals[i] to quantity[i]. Intervals are sorted from first to last change.
    - `intervals` MarketApiISO8601DateTime[], required — The times at which changes in quantity occur
    - `quantities` integer[], required — The quantity changed to at that time
  - `colocate_with` MarketApiContractId[]
  - `cluster_id` string
  - `zone` string
  - `state` 'Upcoming' | 'Active' | 'Expired', required
  - `is_node` boolean, required — Specifies whether this contract is managed by the Nodes API
  - `procurement_id` string, nullable — The procurement which ordered this contract, if any

## Other responses

- `401` — Unauthorized - missing or invalid authentication token
- `403` — Forbidden - account frozen
- `404` — Contract not found
- `500` — Internal server error

## Changes

- **2026-05-15** `b819ba3108b3` — 12 breaking, 4 info
  - removed the required property `details` from the response with the `401` status
  - removed the required property `details` from the response with the `403` status
  - removed the required property `details` from the response with the `404` status
  - removed the required property `details` from the response with the `500` status
  - …12 more
- **2026-02-11** `73ad90aa5d19` — 1 warning, 3 info
  - changed the pattern of the `path` request parameter `id` from `"cont"_[0-9a-zA-Z]+` to `cont_[0-9a-zA-Z_-]{1,21}`
  - the `cluster_id/oneOf[#/components/schemas/market-api_ClusterId]/` response's property pattern was changed from `"clus"_[0-9a-zA-Z]+` to `clus_[0-9a-zA-Z_-]{1,21}` for the status `200`
  - the `colocate_with/items/` response's property pattern was changed from `"cont"_[0-9a-zA-Z]+` to `cont_[0-9a-zA-Z_-]{1,21}` for the status `200`
  - the `id` response's property pattern was changed from `"cont"_[0-9a-zA-Z]+` to `cont_[0-9a-zA-Z_-]{1,21}` for the status `200`
- **2025-12-09** `00ce4132845e` — 1 breaking, 1 info
  - added `#/components/schemas/market-api_ZoneName` to the `zone` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/market-api_ClusterName` from the `zone` response property `oneOf` list for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/sfcompute/apis/san-francisco-compute-documentation/changes/v0/contracts/:id/get.md)

---

[API](https://skmtc.dev/sfcompute/apis/san-francisco-compute-documentation.md) · [All operations](https://skmtc.dev/sfcompute/apis/san-francisco-compute-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sfcompute/san-francisco-compute-documentation/revisions/93dd7661e9bb/schema)
