Versioning
Only caller-visible changes are recorded here: endpoints, fields, semantics and limits. Internal refactors are not. Current spec version 0.1.0.
| Change | Breaking? |
|---|---|
| Removing an endpoint or field | Yes |
| Changing a field's type, precision or enum values | Yes |
| Tightening a limit, or making an optional field required | Yes |
| Adding an endpoint, adding an optional field, relaxing a limit | No |
| Adding a value to an existing enum | No — but clients must tolerate unknown values |
Ignore unknown fields and tolerate unknown enum values when parsing responses. Neither is treated as breaking, so a client with a hard-coded allowlist will break on the next addition.
The account, positions, orders, fills, ledger, credit, borrow/repay/lend, liquidation and AI endpoints under `/api/v1/px` were never documented. They are now all covered. The endpoints themselves did not change — what changed is that they finally have a written contract.
Event list, detail, tags, market detail under an event, probability history and the five-minute up/down view. Again documentation catching up, not new capability.
`postOnly` in the place-order body has always been **optional** with a default of `false`. The earlier schema misread the backend's non-nullable type as a required field. Behaviour never changed; the documentation did.
The off-chain engine supports FOK fully, but a FOK order carrying an on-chain signature aborts at settlement and nothing stops it earlier. That divergence was previously undocumented. Use GTC or GTD for signed orders.
Error bodies previously had no examples. They are now filled in from real gateway responses: `auth_required` carries `recoverable: true`, `market_not_found` carries `false`, and the chain-binding endpoints return `{error, status}` rather than the shared error body.
The specification itself is downloadable: the overview page links the OpenAPI (YAML) at the top. This reference is generated from that spec rather than transcribed, and a mismatch between the two fails the build-time drift gate.