Skip to content
Guides: all pages

Guides

Resolver integration

Integrate the Resolver correctly: the right host, the right status handling, child identifiers, the publish kit, and the errors that are not verdicts.

Live · public

Live in production and publicly readable, with no account and no key. Measured read-only on 2026-10-10.

Accountability Chain:Current stateRe-verify

Addresses

The child badge and QR routes are the publish kit the families contract defines for every family, served by TrustOps. Measured 2026-10-09: an unknown child answers a JSON 404.
PurposeAddress
Machine record (automate against this)https://api.ecocitizenz.com/api/p/{ecz_id}.json
Human record (send people here)https://resolver.ecocitizenz.org/p/{ecz_id}
Child badge (an image, not proof)https://trustops.ecocitizenz.com/api/passports/child/{ecz_id}/badge.svg
Child QR (routes to the live record)https://trustops.ecocitizenz.com/api/passports/child/{ecz_id}/qr.png

One route serves the parent and every family. A child identifier contains ::; pass it as it is, URL-encoded where your HTTP client requires. Normalise input by trimming and upper-casing, and nothing else.

Handle statuses as states, not errors

ResponseMeaningDo
200 application/jsonA public recordRead resolver_v2; apply your policy
404No public recordReport absence. Never report it as unsafe.
429 · 503Unreadable right nowRetry with backoff. Unreadable is not absent.
Timeout or network errorUnreadableFail closed for high-risk actions; retry otherwise

Caching

Records are served Cache-Control: no-store, must-revalidate, measured on 2026-10-09. Do not add a cache in front of a reliance decision. If you keep a copy for audit, keep it as an observation with the time you read it, never as current state.

This page is explanation, not authority. Current state is only ever the live Resolver record. Live facts on this page were measured read-only on 2026-10-10.