---
title: "Read one completed usage receipt"
method: GET
path: "/v1/usage/receipts/{receiptId}"
tags: ["Usage"]
---

# Read one completed usage receipt

`GET /v1/usage/receipts/{receiptId}`

## Request

- Base URL: `https://infer.flow7.org`
- URL: `https://infer.flow7.org/v1/usage/receipts/{receiptId}`
- Auth: HTTP bearer

Returns a receipt owned by the API key organization. Requires the usage:read scope. Receipt reads remain available when inference is payment-locked so customers can inspect prior charges.

## Path parameters

- `receiptId` string, required

## Response `200`

Completed usage receipt

- UsageReceipt
  - `id` string, required
  - `object` 'usage.receipt', required
  - `request_id` string, required
  - `requested_model` string, required
  - `resolved_model_class` string, required
  - `tier` 'low-cost' | 'balanced' | 'stable' | 'official', required: Customer-facing Infer service policy selected for this request.
  - `price_version` string, required: Immutable price version reference for the request: an opaque identifier (pv_…) that matches the catalog option and response metadata. It reveals no supplier or cost information.
  - `usage` object, required
    - `input_tokens` integer, required
    - `cached_input_tokens` integer, required
    - `output_tokens` integer, required
    - `cache_write_tokens` integer, required: Input tokens written to prompt cache.
    - `fresh_input_tokens` integer, required: Input tokens charged at the fresh-input rate after cache read/write buckets are removed.
    - `image_inputs` integer, required: Number of image input parts observed in the admitted request.
  - `rates` object, required
    - `input_per_million_usd` number, required
    - `cached_input_per_million_usd` number, required
    - `output_per_million_usd` number, required
    - `cache_write_per_million_usd` number, required
    - `image_input_usd` number, required
  - `customer_cost_usd` number, required
  - `cache_status` 'miss' | 'hit' | 'partial' | 'write' | 'response_hit' | 'not_applicable', required: Prompt/response cache outcome observed for the request.
  - `created_at` string, date-time, required
  - `provider_disclosed` false, required
  - `generation` GenerationUsage, nullable
    - `unit` 'generated_image' | 'generated_second', required
    - `pricing_key` string, required
    - `units` integer, required
    - `customer_unit_usd` number, required

## Other responses

- `401`: A valid Bearer API key is required.
- `403`: The key, organization, environment, or scope cannot perform this operation.
- `404`: No active price exists for the requested selector in this environment.
- `500`: Infer could not complete the operation.

---

[API](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api.md) · [All operations](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api/revisions/e73ecffd3cf3?raw)
