Evidence infrastructure for CRA Art. 14 and Machinery Reg. 2023/1230
IAAIndustrial Autonomous Assurance
Talk to salesStart free
Menu
PricingPrivacy
FOR AGENTS, CI BOTS, AND HUMANS WITH A TERMINAL

The Assurance API

42 routes over CRA Article 14 and Machinery Regulation Annex III evidence. Bearer auth via one header, JSON in and out, and a real OpenAPI 3 schema you can fetch instead of trusting this page.

Engineer reading FastAPI route notes beside a palletising cell.
⚠
No live base URL yetThis marketing site was built without NEXT_PUBLIC_ASSURANCE_API_URL set. The routes, auth model, and examples below are real — read straight from the code — but there is nothing to call until the founder finishes deploy/assurance/README.md. Run it yourself: uvicorn assurance.api.service:app.
Auth

One header. Bearer token, never a cookie.

Send X-API-Key: <your key>. Get a key from POST /v1/checkout (Register or Cell) or by running the service locally with ASSURANCE_ALLOW_UNAUTHENTICATED=1 for evaluation. A missing key is a 401. A valid key on the wrong plan is a 402, never a 403 — the obstacle is payment, not permission, and every gated route says exactly which plan unlocks it.

Free, no key needed

curl -X POST https://<your-deployment>/v1/spec/validate \
  -H 'content-type: application/json' \
  -d '{"track":"actively_exploited_vulnerability","stage":"early_warning","payload":{}}'
Routes

Free vs. paid, straight from the routers

Every row below is gated in code, in src/assurance/api/deps.py — if it is not gated, it is free. This is a curated view of the 42 routes; the full machine-readable schema (parameters, response shapes, every route including account/billing) is at /openapi.json.

MethodRoutePlanWhat it does
GET/v1/spec/fieldsValidator — freeThe platform field specification for a track/stage
POST/v1/spec/validateValidator — freeValidate a draft submission without recording it
GET/v1/plansValidator — freeWhat is on sale — this table, live
POST/v1/machine/separationValidator — freeISO/TS 15066 protective separation distance
POST/v1/machine/bundle/checkValidator — freeRe-verify someone else's evidence bundle
POST/v1/machinery/diffValidator — freeIs the machine still the configuration you signed off?
POST/v1/machinery/passport/checkValidator — freeRe-verify someone else's machine passport
POST/v1/fleet/advisory/checkValidator — freeIs this one machine affected by this advisory?
POST/v1/fleet/declaration/checkValidator — freeDoes this declaration still describe the machine?
POST/v1/check/machineValidator — freeMachine Assurance Check — one manifest, one advisory, no account
GET/v1/ledger/attest/keyValidator — freeThe public key this service counter-signs with
POST/v1/ledger/attest/verifyValidator — freeCheck an attestation log
GET/v1/supplier/feed/{id}Validator — freeRead a hosted supplier advisory feed
GET/v1/registerRegister — €390/moThe Article 14 register for your account
GET/v1/register/breachesRegister — €390/moCases past a deadline clock
GET/v1/casesRegister — €390/moList cases
POST/v1/cases/{id}/triageRegister — €390/moRecord a triage decision
POST/v1/cases/{id}/filingsRegister — €390/moRecord a platform filing
GET/v1/ledger/verifyRegister — €390/moVerify the hash chain
POST/v1/machine/verifyCell — €1,290/moVerify a recorded machine run against its declared envelope
POST/v1/machinery/manifestCell — €1,290/moSeal a safety software manifest
POST/v1/machinery/coverageCell — €1,290/moWhich safety functions still have valid evidence
POST/v1/machinery/passportCell — €1,290/moSeal the machine's evidence position
GET/v1/fleet/machinesCell — €1,290/moEvery enrolled machine, worst coverage first
POST/v1/fleet/advisoryCell — €1,290/moFan an advisory out across the whole fleet
POST/v1/check/fleet-machineCell — €1,290/moMachine Assurance Check — an enrolled machine, its ledger history and the fleet fan-out
POST/v1/fleet/declareCell — €1,290/moBind a Declaration of Conformity to a configuration
POST/v1/ledger/attestCell — €1,290/moCounter-sign the head of your ledger
GET/v1/ledger/attest/logCell — €1,290/moEvery attestation for your account
POST/v1/supplier/advisorySupplier — contact salesPublish a signed advisory to your hosted feed

Wire an agent to this instead of reading it

Cursor, Claude, and CI bots discover this the same way: llms.txt, openapi.json, and this page.