Mu

Read the caller's org mu ledger entries

The customer's own mu account statement: every ledger entry (grant / hold / settle / release / burn / refund / adjustment) with its lot_allocations provenance and entry hash. This is what makes purchase RECEIPTS and itemized usage possible — a balance without it is a number with no explanation behind it. Identical org-context + RBAC discipline to GET /billing/mu: RBAC is enforced before any read, and the account id is the SERVER-RESOLVED billing_account_id, never client-supplied (a NULL one is 409, matching the balance route rather than falling back to a personal account the way the internal resolver does). cursor / from / to / limit pass through verbatim to the frozen mnemom-mu upstream GET /v1/accounts/{accountId}/ledger, which bounds limit itself (default 100, max 500). Read-only by construction: api presents its own mu:check service key, which carries no spend or grant scope. 503 when the mnemom-mu binding/URL is unconfigured (fail-closed).

get/billing/mu/ledger

Request

  • Base URL: https://api.mnemom.ai/v1
  • URL: https://api.mnemom.ai/v1/billing/mu/ledger
  • Auth: HTTP bearer

Query parameters

org_idstring

Target org id. Defaults to the caller's primary org. A caller who is not a member of this org is denied 403.

cursorstring

Opaque sequence cursor from a previous page's nextCursor.

fromstring date-time

Inclusive lower bound on entry creation time (ISO-8601).

tostring date-time

Inclusive upper bound on entry creation time (ISO-8601).

limitinteger

Page size. Upstream clamps to 1..500 (default 100).

product'research' | 'design' | 'develop' | 'operate' | 'canon' | 'unattributed' | 'all'

Optional product scope (sub-projects, contract C5). Omitted → today's response, unchanged. research|design|develop|operate|canon|unattributed narrows the page's entries to that product and adds a product_scope summary; all returns { total, by_product: [{ product, entry_count, net_mmu, unparsed_mmu_count }], product_scope } computed in one pass. An entry belongs to a product only when its ref.product is exactly a known slug — every other entry (incl. all historical rows) is unattributed; attribution is never inferred. The rollup basis is the returned page (product_scope.basis = "page"); follow next_cursor to cover a range. Applied AFTER org/RBAC checks, so it can only narrow. Any other value → 400 invalid_product.

Response

A page of ledger entries plus nextCursor (mnemom-mu response, passed through verbatim unless product is supplied).

object required

Changes

No recorded changes to this operation across all 1 revision of this API.