Sandbox-first. Recipes run against
https://phosra-api-sandbox-production.up.railway.app with
no credential — nothing you create touches a real family. The request shapes are identical in
production: swap the base URL for https://prodapi.phosra.com and add a phosra_live_… key.Build a family
End-to-end walkthrough
The whole family lifecycle in ten calls — create a family, link two platforms, unlink one, prove
the other survives, and relink. The flagship recipe.
Onboard a multi-child household
One family, two kids of different ages, two distinct age-appropriate policies — generated,
activated, and cross-checked against each child’s rating ceiling.
Change a rule and enforce it
Tighten a screen-time limit, push it to a connected console, and read back exactly which rules
landed, which were guided, and which the platform can’t enforce.
Connect & disconnect a platform
The link → verify → disconnect → reconnect lifecycle for a single service, with per-service
isolation proven at every step.
Operate & recover
The recipes above build a family; these keep it running when things go wrong — a rate limit, a leaked secret, a dropped platform, a roster that drifted out of sync.Back off and retry a 429
Read the live rate-limit headers, drive a real
429, and wrap every call in a reset-aware retry
that waits exactly as long as the server says.Rotate a compromised key
Re-mint your endpoint to rotate the
connect_secret and endpoint_id_label in one signed call —
the old pair dies, your stable endpoint id survives, enforcement never stops.Recover a disconnected platform
Detect a dropped link from the compliance list, re-establish it, re-enforce the current policy,
and confirm the platform is caught up.
Reconcile family drift
Pull the Phosra roster and the platform’s profiles, diff them, and add the children Phosra is
missing so the two families match.
How a recipe is built
Every recipe follows the same shape, so once you have run one you can read the rest at a glance:One base URL, set once
Every recipe opens with
export PHOSRA_BASE="https://phosra-api-sandbox-production.up.railway.app"
so every call below is copy-paste.IDs chain forward
The
id a call returns is carried into the next call. In cURL you export it; in TypeScript
and Python it is a variable. No step references a value it didn’t already receive.Three languages, identical result
Every step has a cURL, TypeScript, and Python tab. All three make the same request
and produce the same response — pick your stack and read one column.
Before you start
You need nothing but a terminal (or a TypeScript / Python runtime). There is no signup, no key, and no install for the sandbox. If you want the seeded family, reference providers, and Trust List these recipes build on, start with Test in the sandbox.The sandbox is shared and public. IDs you see in these pages were real when captured but the rows
are periodically reset — run the calls yourself and use the IDs your own requests return.