---
title: "Update procurement"
method: PATCH
path: "/preview/v2/procurements/{id}"
tags: ["Procurements"]
---

# Update procurement

`PATCH /preview/v2/procurements/{id}`

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

Update a procurement's configuration.

## Path parameters

- `id` string, required — A resource path like 'sfc:procurement:acme:prod:my-procurement' _or_ an ID. Resource paths are human-readable but not stable - they change when resources are renamed or moved. IDs are stable and permanent.

## Request body

- PatchProcurementRequest
  - `name` string
  - `instance_sku` union — 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.
  - `min_sell_price_dollars_per_node_hour` string — 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.
  - `max_buy_price_dollars_per_node_hour` string — 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.
  - `managed_window_minutes` integer, nullable — How far ahead (in minutes) the procurement buys and sells compute. Higher values secure compute further in advance but commit to longer windows that may need to be sold when scaling down, potentially at a loss. Lower values reduce waste but risk compute being unavailable. The window contains this many complete minutes, beginning with the next minute. Buying power must cover each order's full duration.
  - `enabled` boolean, nullable

## Response `200`

Procurement updated.

- ProcurementResponse
  - `id` string, required
  - `resource_path` string, required — A resource path for a procurement resource. Format: sfc:procurement:<account>:<workspace>:<name>.
  - `owner` string, required
  - `workspace` string, required
  - `workspace_id` string, required
  - `name` string, required
  - `object` 'procurement', required
  - `target` union, required
    - 'node_count'
    - integer
  - `capacity` CapacitySummary, required
    - `id` 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.
    - `name` string, required
  - `pool` PoolSummary, required — A pool referenced by id and name.
    - `id` string, required
    - `name` string, required
  - `instance_sku` InstanceSkuSummary, required — A summary of an instance SKU - its `id` and human-recognizable `alias` - embedded on resources that reference a SKU.
    - `object` 'instance_sku', required
    - `id` 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.
    - `alias` string, required
  - `min_sell_price_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.
  - `max_buy_price_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.
  - `managed_window_minutes` integer, required — How far ahead (in minutes) the procurement buys and sells compute. Higher values secure compute further in advance but commit to longer windows that may need to be sold when scaling down, potentially at a loss. Lower values reduce waste but risk compute being unavailable. The window contains this many complete minutes, beginning with the next minute. Buying power must cover each order's full duration.
  - `enabled` boolean, required — Enable/disable the procurement. Disabling cancels all standing orders.
  - `status` ReconciliationStatus, required
    - `state` 'info' | 'warning' | 'error', required
    - `message` string, required
  - `created_at` integer, required — Unix timestamp.
  - `updated_at` integer, required — Unix timestamp.

## Other responses

- `400` — Validation error (e.g. duplicate name).
- `401` — Unauthorized.
- `403` — Forbidden.
- `404` — Procurement not found.
- `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)
