---
title: "Price an extension of hosted evidence retention"
method: POST
path: "/v1/retention/quotes"
tags: ["Retention"]
---

# Price an extension of hosted evidence retention

`POST /v1/retention/quotes`

## Request

- Base URL: `https://api.ironfang.com/audit`
- URL: `https://api.ironfang.com/audit/v1/retention/quotes`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Prices keeping the hosted evidence of the chosen audits (every hosted
artifact of each) and artifacts for `months` whole months past each one's
current deadline. New audits are promised the standard retention (30 days
in the draft catalogue); an extension is how evidence stays hosted longer.
The quantity is in the `audit.retention_extension` meter's unit: the
selection's bytes rounded up to that unit's share of a decimal gigabyte,
times the months, never below ten GB-months. `amount` is the fixed price of
that quantity at the organisation's position this month, exact and before
tax, charged on the month's invoice through the billing account. A quote
can be bought until `expires_at` (about fifteen minutes), in the month and
at the catalogue version it was made in; it moves nothing and charges
nothing by itself, and nothing ever renews. Expired (deleted) evidence
cannot be extended. An extension that would take the storage held under
extended retention past the deployment's capacity is refused, paid or not.
Needs audit.read: a quote is a price, not a purchase.

## Request body

- object
  - `artifact_ids` string[]
  - `audit_ids` string[]
  - `months` integer, required: Whole months of extra retention past each current deadline.

## Response `201`

The quote, with each artifact's deadline before and after.

- RetentionQuote
  - `amount` string, required: The fixed price, exact, before tax, in pounds.
  - `amount_minor` integer, required: The price rounded to pence.
  - `artifacts` integer, required
  - `audit_ids` string[], required
  - `bytes` integer, required: Hosted bytes the quote covers.
  - `catalogue_version` string, required
  - `created_at` string, date-time, required
  - `currency` 'GBP', required
  - `deadlines` object[]
    - `artifact_id` string, uuid, required
    - `audit_id` string, uuid, required
    - `byte_length` integer, required
    - `expires_after` string, date-time, required
    - `expires_before` string, date-time, required
  - `expires_at` string, date-time, required: The quote can be bought until then.
  - `id` string, uuid, required
  - `meter` 'audit.retention_extension', required
  - `months` integer, required
  - `prices_exclude_tax` true, required
  - `purchased_at` string, date-time
  - `quantity` integer, required: In the meter's unit (unit): the bytes rounded up to the unit's share of a decimal gigabyte, times months, at least ten GB-months.
  - `status` 'open' | 'expired' | 'purchased', required
  - `unit` string, required: The meter's unit, for example 0.1 GB-month.

## Other responses

- `400`: Problem response
- `401`: Problem response
- `403`: Problem response
- `404`: Problem response
- `409`: Problem response
- `413`: Problem response
- `422`: Problem response
- `503`: Problem response

---

[API](https://skmtc.dev/ironfang/apis/ironfang-audit-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-audit-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-audit-api/revisions/7430deff2cbd?raw)
