---
title: "Price a footprint, or price a budget"
method: POST
path: "/v1/offsets/quote"
tags: ["Offsets"]
---

# Price a footprint, or price a budget

`POST /v1/offsets/quote`

## Request

- Base URL: `https://carbonguru.io`
- URL: `https://carbonguru.io/v1/offsets/quote`
- Auth: HTTP bearer

Name exactly one of carbon_kg (what does this footprint cost) or amount_usd (what does this budget buy). Quoted live on every call and never from a cache. The price is ALL-IN: cost_usd is the one number, and no fee, margin, cost-basis or per-tonne rate is returned beside it. A reverse quote answers whole kilograms, ceiling-rounded to at least one, so cost_usd can exceed amount_usd by that rounding. type picks the supplier as well as the cart: offset is priced on the CNaught products, removal on the Stripe Climate products.

## Request body

- object
  - `type` 'offset' | 'removal', required
  - `carbon_kg` number
  - `amount_usd` number
  - `product_id` union: A product_id from /v1/offset-products, or the product's numeric id. A named product sets the type. Default: the account's own default product for the type.
    - string
    - integer

## Response `200`

The live quote.

- object
  - `quote` object, required: One live quote. The price is all-in: no fee, margin, cost-basis or per-tonne rate appears anywhere on it.
    - `carbon_kg` number, nullable
    - `type` 'offset' | 'removal'
    - `cost_usd` number, nullable: What this costs, all-in. The one price.
    - `amount_usd` number: On a reverse quote, the budget that was asked about.
    - `product_name` string, nullable
    - `requested_tons` number, nullable
    - `orderable_tons` number, nullable: The quantity actually priced. A provider sells in whole units, so a tiny footprint is charged the smallest orderable quantity.
    - `provider_min_tons` number, nullable
    - `orderable_kg` number: orderable_tons in kilograms.
    - `product_id` string: The /v1/offset-products id of the product quoted on.
    - `unit` 'kg' | 'tonne': The unit the product is bought in.
    - `unit_kg` number: The unit in kilograms: 1 or 1000.
    - `purchase_kg` number: What an order for carbon_kg would buy: rounded up to a whole number of the product's units, at least one. The quote itself prices carbon_kg exactly.
    - `purchase_cost_usd` number, nullable: The all-in price of purchase_kg.

## Other responses

- `401`: No valid credential. Every authentication failure returns this one document.
- `402`: The account's plan does not include this capability. Carries min_tier and upgrade_url.
- `403`: A missing scope, an exhausted analysis allowance, or an object that is not the caller's.
- `404`: No such resource.
- `422`: The request's fields are wrong. errors[] names them.
- `502`: The platform did not complete the request.

---

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