Skip to main content
The Phosra sandbox is a complete, always-on copy of the API, seeded with a demo family and a set of accredited reference providers. It exists so you can build and verify a full integration — connect a platform, set up a family, enforce a policy, sign a request — before you ever provision a key. This guide is the map: what is seeded, what is open, and how to get yourself onto the Trust List. Every response below is verbatim live output, captured while writing this page.

The base URL

Nothing you do in the sandbox touches a real family or production data. When you are ready for production, swap the base URL for https://prodapi.phosra.com and add a phosra_live_… key — the request shapes are identical.

What’s already seeded

1

Confirm the sandbox is up

The /health endpoint needs no key and is the fastest liveness check:
2

Read the signed Trust List

The Trust List is the source of truth for who is accredited. It is served at a well-known path and the entire document is Ed25519-signed by the sandbox root key — verify the signature before you trust any entry inside it.
Real response (200):
The entries count is a live, growing number — every self-registration (below) adds an entry, so expect a value at or above the one shown here. Verify the signature and each entry’s tier rather than asserting on the total.
The top-level object wraps a signed document: { "document": "…", "key_id": "…", "alg": "ed25519", "sig": "…" }. Parse document (itself JSON) to read the entries array — each entry carries a did, an entity name, its published jwks signing keys, and an accreditation tier. The @openchildsafety/ocss SDK verifies the signature and resolves keys for you.
No parameters, no auth. Returns the signed Trust List document.Top-level response fields (200)Fields on each entry (inside the parsed document.entries)
3

Self-register a provisional DID

You do not need anyone’s approval to start testing signed flows. Post your DID and a raw Ed25519 public key (base64url, unpadded) to POST /api/v1/advisors/self-register, and the census adds you to the sandbox Trust List at the provisional tier.First, mint a keypair and extract the raw 32-byte public key:
Then register:
Real response (200):
You are now on the sandbox Trust List. The key_id (did#kid) is what you sign your requests with; the census publishes your public key so counterparties can verify you.
provisional is enough to test the full signed flow in the sandbox. Moving to verified or accredited — the tiers that carry weight in production — is a governance step, not an API call. See Production accreditation.
Request body (application/json)Response fields (200)Errors

The sandbox host

Everything partner-facing points at one host — the same base URL used throughout these guides. It’s open, seeded, and requires no key:

Now build something

Connect a platform

Run the OAuth connect ceremony against the seeded reference provider.

Set up a family & kids

Build a family and an active policy in one call.

Quickstart

Zero to an enforced policy in under five minutes.