---
title: "Unit margin, realized margin, and FX effect as three lines (admin only)"
method: GET
path: "/v1/admin/margin-report"
---

# Unit margin, realized margin, and FX effect as three lines (admin only)

`GET /v1/admin/margin-report`

## Request

- Base URL: `https://api.clichefactory.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.clichefactory.com/v1/admin/margin-report`
- Auth: none declared

The three margins of §6, computed separately and never mixed.

Unit margin is product economics at a frozen price — it moves when a model
gets pricier or a prompt gets fatter. Realized margin is the accounting
number, at booking rates, net of VAT and provider fees. FX effect is the
gap. Folded together, a pricing problem and a currency problem look
identical.

## Query parameters

- `start` string, nullable: ISO datetime, inclusive.
- `end` string, nullable: ISO datetime, inclusive.

## Headers

- `X-API-KEY` string, nullable

## Response `200`

Successful Response

- MarginReportResponse: The three margins of §6, kept apart on purpose. Mixing them means a pricing problem and a currency problem become indistinguishable.
  - `from_date` string, date-time, nullable
  - `to_date` string, date-time, nullable
  - `functional_currency` string
  - `credits_burned` integer
  - `unit_margin` UnitMarginBlock, required
    - `currency` string
    - `charged_at_list` number
    - `llm_cogs` number
    - `gross_margin_at_list` number
    - `gross_margin_at_list_pct` number
    - `excludes` string[]
  - `realized_margin` RealizedMarginBlock, required
    - `currency` string
    - `recognized_revenue` number
    - `cogs` number
    - `gross_margin` number
    - `attribution` string
    - `cogs_translation_rate` number, nullable
    - `fx_rate_available` boolean
  - `fx_effect` FxEffectBlock, required
    - `currency` string
    - `amount` number
    - `note` string
  - `revenue_by_currency` RevenueByCurrencyItem[]
    - `currency` string, required
    - `credits` integer
    - `gross_minor` integer
    - `tax_minor` integer
    - `net_minor` integer
    - `gross` number
    - `tax` number
    - `net` number
    - `functional_currency` string
    - `functional_net_minor` integer
    - `functional_net` number
    - `provider_net_minor` integer
    - `grant_count` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/clichefactory/apis/aio-server.md) · [All operations](https://skmtc.dev/clichefactory/apis/aio-server/llms.txt) · [OpenAPI document](https://skmtc.dev/clichefactory/apis/aio-server/revisions/9bd59f9bbb31?raw)
