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).
Request
- Base URL: https://api.mnemom.ai/v1
- URL: https://api.mnemom.ai/v1/billing/mu/ledger
- Auth: HTTP bearer
Query parameters
Target org id. Defaults to the caller's primary org. A caller who is not a member of this org is denied 403.
Opaque sequence cursor from a previous page's nextCursor.
Inclusive lower bound on entry creation time (ISO-8601).
Inclusive upper bound on entry creation time (ISO-8601).
Page size. Upstream clamps to 1..500 (default 100).
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).
Changes
No recorded changes to this operation across all 1 revision of this API.