Developers
API reference

API Reference

The API returns data, not presentation. A formatted string is not replayable, and replay is the whole point of the record, so numbers arrive as integers with an explicit decimals, never as display text.

Money is an integer plus decimals

⛔ Never a float, and never a pre-formatted string. GIWA USDC is 6 decimals; so is Maru USDC. and they are different tokens. A bare number with the decimals inferred is how those two get confused.

{ "amount": "1500000", "decimals": 6, "symbol": "USDC" }

Shapes come from one place

packages/schema is the single source of truth for every payload. Downstream clients generate from it and CI fails on a non-empty diff, so a shape cannot drift between the backend and the surfaces that read it.

The receipt

Any decision endpoint returns apyInputs, the inputs a third party replays to reach the same verdict independently. See Verify for doing that without asking Heron for anything.

⚠️ dataSource is required, never defaulted to "live". A response carrying recorded data while looking live is the precise dishonesty this system exists to remove.

This page is being regenerated from packages/schema. Endpoint-level detail lands with that generator; the invariants above are stable and hold today.