---
title: "Reserved / reservation price history of one instance type (AWS standard RIs 1y/3y no-upfront/all-upfront; Azure reservations 1y/3y)."
method: GET
path: "/v1/reserved"
tags: ["list-prices"]
---

# Reserved / reservation price history of one instance type (AWS standard RIs 1y/3y no-upfront/all-upfront; Azure reservations 1y/3y).

`GET /v1/reserved`

## Request

- Base URL: `https://cloud.trycorpus.ai`
- URL: `https://cloud.trycorpus.ai/v1/reserved`
- Auth: one of:
  - API key in header `PAYMENT-SIGNATURE`
  - API key in header `Authorization`
  - API key in header `X-Api-Key`

Effective hourly USD with any upfront amortized over the term, as change-point series per `ri_type` (`ri_1y_no_upfront_standard`, `ri_1y_all_upfront_standard`, `ri_3y_no_upfront_standard`, `ri_3y_all_upfront_standard`; GCP `cud_1y`, `cud_3y`). AWS: Linux, shared tenancy, history back to 2016 for the original three regions, weekly refresh from the AWS Price List API. Azure: all-upfront reservations from the public Retail Prices API, daily, since 2026-09-13. GCP: resource-based committed-use discounts from the Cloud Billing Catalog (vCPU, RAM and GPU commitment SKUs), daily, since 2026-09-13.

## Query parameters

- `provider` 'aws' | 'azure' | 'gcp'
- `region` string, required
- `instance` string, required
- `ri_type` 'ri_1y_no_upfront_standard' | 'ri_1y_all_upfront_standard' | 'ri_3y_no_upfront_standard' | 'ri_3y_all_upfront_standard' | 'cud_1y' | 'cud_3y'

## Response `200`

Reserved history.

- ReservedHistory
  - `provider` 'aws'
  - `region` string
  - `instance` string
  - `note` string
  - `series` object[]
    - `ri_type` string
    - `current` PricePoint
      - `date` string, date, required: Day the price took effect.
      - `price` number, required: USD per hour.
    - `count` integer
    - `changes` PricePoint[]
      - `date` string, date, required: Day the price took effect.
      - `price` number, required: USD per hour.

## Other responses

- `400`: Invalid or missing parameter.
- `402`: Payment required. The x402 v2 payment requirements are in the PAYMENT-REQUIRED header (base64 JSON) and repeated as the JSON body: `accepts[]` lists every offer (USDC on 13 networks: eip155:8453, eip155:143, eip155:1, eip155:43114, eip155:42161, eip155:10, eip155:137, eip155:130, eip155:146, eip155:480, eip155:1329, eip155:999, eip155:5042) with amount and payTo address. Circle Gateway offers cover every listed network; a Coinbase-facilitated offer covers Base. The same response carries an MPP challenge (WWW-Authenticate: Payment, USDC on Tempo). Retry with a PAYMENT-SIGNATURE header or an MPP credential, or let an x402 or MPP client (for example `circle services pay` or `mppx`) handle it; a prepaid key in X-Api-Key is charged instead of a 402.
- `404`: Unknown provider, region or instance type.
- `503`: The store is still warming up after a restart; retry in a minute. No payment is taken.

---

[API](https://skmtc.dev/trycorpus/apis/corpusai-cloud-pricing-api.md) · [All operations](https://skmtc.dev/trycorpus/apis/corpusai-cloud-pricing-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trycorpus/apis/corpusai-cloud-pricing-api/revisions/cb0754f4d151?raw)
