---
title: "Estimate Cost"
method: POST
path: "/v1/organizations/billing/estimate"
tags: ["Organization Billing"]
---

# Estimate Cost

`POST /v1/organizations/billing/estimate`

Quote the v2 cost of planned ingestion before submitting it.

Forgiving by design: unknown MIME types quote at the cheapest band;
wrong unit fields and inapplicable features return teaching errors.

## Request body

- EstimateRequest
  - `items` EstimateItem[], required — Planned content to ingest
    - `mime_type` string, required — MIME type (or registry input type) of the planned content
    - `count` number, nullable — Unit count (images, web pages)
    - `minutes` number, nullable — Duration (video/audio)
    - `pages` number, nullable — Page count (documents)
    - `tokens` number, nullable — Token count (text)
    - `units` number, nullable — Generic unit count (accepted for any modality)
  - `features` string[] — Feature keys to apply (see GET /v1/collections/features)
  - `full_res` boolean — Opt out of mezzanine normalization (2x multiplier)

## Response `200`

Successful Response

- EstimateResponse
  - `pricing_model` string
  - `placeholder_rates` boolean, required — True until the rate card locks — quote is provisional
  - `line_items` object[], required
  - `total_usd` number, required
  - `batch_minimum_applied` boolean, required
  - `allowance_pool_usd` number, nullable — The tier's monthly usage pool, if any
  - `allowance_covered_usd` number, required — How much of this estimate falls inside the remaining pool (directional pre-cutover: the pool is not drawn down yet)
  - `estimated_overage_usd` number, required — Overage beyond the pool, NET of any plan-level overage discount — matches what the invoice will charge
  - `overage_discount_pct` number — Plan-level overage discount applied (MF-309: Scale 20%); 0 when the plan has none
  - `overage_discount_usd` number — Dollar amount the overage discount saved this estimate

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/revisions/04b379bdbb7c/schema)
