Skip to main content
POST
/
api
/
capacity
/
reservations
Create Reservation
curl --request POST \
  --url https://app.opencomputer.dev/api/capacity/reservations \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "intervals": [
    {}
  ],
  "intervals[].startsAt": "<string>",
  "intervals[].endsAt": "<string>",
  "intervals[].capacityGb": 123
}
'
{
  "reservationId": "9f67b8f7-7b91-4d2d-b1cb-19d0d0a14562",
  "createdAt": "2026-04-28T18:00:05Z",
  "intervals": [
    {
      "startsAt": "2026-04-29T02:00:00Z",
      "endsAt":   "2026-04-29T02:15:00Z",
      "capacityGb": 16
    },
    {
      "startsAt": "2026-04-29T02:15:00Z",
      "endsAt":   "2026-04-29T02:30:00Z",
      "capacityGb": 16
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://opensandbox-feat-cf-dev-cutover.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Coming soon. Reserved capacity is not yet available. See the Reserved Capacity overview.
Commit capacity across one or more 15-minute UTC intervals in a single atomic write. The result is one reservation event with a server-generated reservationId covering all intervals in the request. See Reserving capacity for the full write contract. Send an Idempotency-Key header so retries return the original result. Same key with a different body returns idempotency_key_conflict. Reservations are non-refundable — there is no cancellation, modification, or transfer.
intervals
array
required
One entry per 15-minute interval to reserve.
intervals[].startsAt
string
required
Interval start. RFC 3339, UTC, aligned to 15 minutes (:00, :15, :30, :45).
intervals[].endsAt
string
required
Interval end. Must equal startsAt + 15 minutes. Multi-interval spans are rejected.
intervals[].capacityGb
integer
required
Positive multiple of 4 (the grain is 1 GB-hour = 4 GB × 15 min). Other values are rejected.
{
  "reservationId": "9f67b8f7-7b91-4d2d-b1cb-19d0d0a14562",
  "createdAt": "2026-04-28T18:00:05Z",
  "intervals": [
    {
      "startsAt": "2026-04-29T02:00:00Z",
      "endsAt":   "2026-04-29T02:15:00Z",
      "capacityGb": 16
    },
    {
      "startsAt": "2026-04-29T02:15:00Z",
      "endsAt":   "2026-04-29T02:30:00Z",
      "capacityGb": 16
    }
  ]
}