Developers
One call at checkout. Recalled products can’t be sold.
SafeState is a drop-in compliance API for recommerce marketplaces, thrift chains, and resale platforms. Add it to your listing and checkout flows.
Authorize a transfer
POST /api/authorize-transfer
content-type: application/json
{
"instanceId": "33333333-…", // the unit being sold
"toOwnerId": "66666666-…", // the buyer
"idempotencyKey": "a1b2c3d4-…" // safe to retry
}Response
{
"decision": "BLOCKED",
"reason": "Side rail can detach (entrapment hazard).",
"remedy": "Full refund.",
"source": "CPSC",
"guardEpoch": 1,
"attempts": 1
}Issue a directive
POST /api/directives
{
"modelId": "22222222-…",
"kind": "RECALL",
"hazard": "…", "remedy": "…", "source": "CPSC",
"target": { "scope": "SERIAL_RANGE", "rangeLo": "1", "rangeHi": "999" }
}The contract
- Idempotent. Pass an
idempotencyKey; a retried request returns the same decision and never double-applies a transfer. - Retry-safe. Conflicts surface as
SQLSTATE 40001 / OC000and are retried with backoff, the decision always reflects the latest safety state. - Strongly consistent. Reads from any region reflect a recall the instant it commits, no stale-safe window.
Embed a live verdict badge
One iframe drops a live recall verdict onto any listing page. It reads the same source as the gate, so a buyer sees the real answer, not a screenshot. No SDK, no build step.
<iframe
src="https://safestate.vercel.app/api/embed/verify?model=DreamNest+Bassinet&serial=100"
width="380" height="84" style="border:none">
</iframe>Live preview
Pricing scales with usage: per safety lookup, protected listing, and authorized transfer.
Recommerce marketplacesThrift & consignmentManufacturers