Changelog
Every change to the published API contract, pricing and SDKs. Generated from the committed contract itself, so it cannot drift from what the API actually does.
# Outcome Assurance changelog
What changed in the public API — endpoints, request and response schemas,
authentication, error codes, plans, quotas and the base URL. Generated from the
contract itself; edit the contract, never this file.
A release that moved none of those things moved nothing you can observe, so it
gets no entry here.
2026-09-01 — Reference documentation revised
Documentation
GET /v1/usagedescription revised.
2026-09-01 — 5 request and response changes, authentication changes and SDK updates
Requests and responses
POST /v1/keysnow answers202on success (was201).POST /v1/keys/claimnow answers201on success (was200).POST /v1/keys/{id}/rotatenow answers201on success (was200).GET /v1/subscriptionresponse:planChangesGoThroughacceptsprovider_managed.POST /v1/subscription/cancelresponse: addedfinalInvoice.
Authentication
POST /api/billing/webhooknow requires a signed request. Callers without one are rejected.GET /v1/subscriptionnow requires a signed-in dashboard session. Callers without one are rejected.POST /v1/subscription/plannow requires a signed-in dashboard session. Callers without one are rejected.POST /v1/subscription/cancelnow requires a signed-in dashboard session. Callers without one are rejected.GET /v1/invoicesnow requires a signed-in dashboard session. Callers without one are rejected.GET /v1/paymentsnow requires a signed-in dashboard session. Callers without one are rejected.
SDKs
- Python client SDK updated.
- TypeScript client SDK updated.
Documentation
POST /v1/checkoutdescription revised.GET /v1/subscriptiondescription revised.POST /v1/subscription/plandescription revised.POST /v1/subscription/canceldescription revised.
2026-09-01 — 5 new endpoints and SDK updates
Endpoints
- Added
GET /v1/subscription— Your current plan, billing window and available changes (dashboard session required) (no API key required) - Added
POST /v1/subscription/plan— Upgrade or downgrade to another plan (dashboard session required) (no API key required) - Added
POST /v1/subscription/cancel— Cancel this plan and end metered access (dashboard session required) (no API key required) - Added
GET /v1/invoices— Every invoice issued against this account, newest first (dashboard session required) (no API key required) - Added
GET /v1/payments— Every payment attempted against this account and how it went (dashboard session required) (no API key required)
SDKs
- Python client SDK updated.
- TypeScript client SDK updated.
2026-08-31 — 4 new endpoints, 2 request and response changes and new base URL
Endpoints
- Added
GET /v1/keys— List your API keys for this API - Added
POST /v1/keys/claim— Exchange an emailed claim token for the API key (no API key required) - Added
POST /v1/keys/{id}/revoke— Revoke one of your API keys - Added
POST /v1/keys/{id}/rotate— Replace one of your API keys with a new secret
Requests and responses
POST /v1/keysrequest: addedname.POST /v1/keysresponse: addedstatus,email,expiresAt,next,message; removedapiKey,accountId,product,quotaPerPeriod,plan,warning,usage.
Base URL
- Base URL is
https://outcomeassurance-api.com. A client generated from an earlier copy of this contract points elsewhere and must be regenerated.
SDKs
- Python client SDK updated.
- TypeScript client SDK updated.
Documentation
POST /v1/keyssummary and description revised.
2026-08-31 — 1 new endpoint
Endpoints
- Added
GET /v1/usage— Your consumption and remaining allowance for this period
2026-08-31 — Plans published
Plans and quotas
- Plans published. Billed per assured run.
| Plan | Per month | Included assured runs | Additional | Overage cap |
| --- | --- | --- | --- | --- |
| Developer | $249 | 10,000 | $0.05 each | $500 |
| Growth | $999 | 60,000 | $0.03 each | $2,000 |
| Scale | $2,499 | 250,000 | $0.02 each | $5,000 |
| Enterprise | $5,000 | 800,000 | $0.01 each | $10,000 |
2026-08-31 — SDK updates
SDKs
- TypeScript client SDK updated.
2026-08-31 — SDK updates
SDKs
- Python client SDK updated.
- TypeScript client SDK updated.
2026-08-31 — First published contract, authentication changes and error-code changes
Endpoints
- First published contract, 8 operations:
GET /health— Liveness and deployed version (no API key required)GET /— Service index — endpoints, auth and error format (no API key required)POST /v1/runs— Assure agent runs — did they achieve the requested outcome?POST /v1/demo/assure— Public demo — assure one agent run without a key (no API key required)GET /v1/assertion-types— Every assertion operator, verdict and reason code the engine emits (no API key required)POST /v1/checkout— Start a hosted Square checkout for a paid tier (no API key required)POST /api/billing/webhook— Square billing events, forwarded by the shared hub (no API key required)POST /v1/keys— Create a free sandbox API key (no API key required)
Authentication
- Keys are sent as
bearerauthorization, or as thex-api-keyheader.
Errors
- Errors return a machine-readable
error.code:invalid_api_key,missing_api_key,quota_exceeded,rate_limited,invalid_request,not_found,method_not_allowed,payload_too_large,conflict,internal_error.
Plans and quotas
- Free sandbox keys allow 500 assured runs per period, no card required.
SDKs
- Python client SDK published.
- TypeScript client SDK published.
Derived from the published API contract, the plan catalog, the free sandbox
allowance and the client SDKs, as each of them changed. Every headline above is
built from the entries beneath it. Dates are the dates the change shipped.
Base-URL entries name only origins the API is actually served on: a loopback or
platform-assigned host is written before the product domain is attached and was
never an address anyone integrated against.