API changelog
Changes to the PlaySpace Partner Platform API. The API is versioned in the path; everything below is additive within /v1 unless explicitly marked otherwise.
Subscribe to release notes at https://developers.playspace.health/changelog.rss, or watch the Deprecation and Sunset headers — every deprecation is announced there and by direct email to every organisation calling the affected endpoint, twelve months ahead.
Nothing on /v1 has ever been deprecated.
Unreleased
Visible in the sandbox, not yet in production.
GET /v1/artifactsgainsupdated_after. Lets a poller find edited artifacts, not only new ones.- Session participants may exceed one. Sibling and family sessions.
participantsalready accepts an array; the ceiling rises from one to four. POST /v1/exportsgainsformat: "fhir". A read-only projection of Patient, Practitioner, DocumentReference and QuestionnaireResponse alongside the native bundle, for organisations whose procurement asks for it. The native schema remains the contract.
1.0.0 — 2026-08-12
General availability. /v1 is stable and the compatibility commitments in conventions apply from this date.
Added
- Practice hierarchy above the clinic —
GET /v1/organisation/groups, plusgroupon clinics and agroupfilter onGET /v1/clinics. GET /v1/organisation/surfaces, so a partner can render entry points from the licensed set rather than discovering a refusal at mint.can_request_exporton caregiver links, and the corresponding standing check onPOST /v1/exports.
Changed
POST /v1/tokensnow validates every origin at mint. An origin no browser will honour as a frame source returns422 origin-not-allowednaming the value, where it previously minted a token that produced a blank frame.403on a scope failure now carriesrequired_scopesandgranted_scopes, so the diagnosis is in the response.
0.9.0 — 2026-07-28
Beta. Contract frozen pending general availability.
Added
- Exports:
POST /v1/exports, status, download, and the bundle format with its manifest and human-readable index. - Clinical notes, read-only:
GET /v1/notes,/{id},/{id}/versions,/templates. Gated on the notes capability, off by default. GET /v1/usage/by-clinicianandGET /v1/usage/history.
Changed
- Breaking, pre-general-availability. Generation endpoints moved from
POST /v1/{resource}with agenerateflag to a dedicatedPOST /v1/{resource}/generatereturning202and a job. The flag form is gone. Idempotency-Keybecame required on every mutation. It was optional through 0.8.
0.8.0 — 2026-07-06
Added
- The change feed:
GET /v1/changes, with a monotonic sequence, opaque cursor and thirty-day retention. - Generation quota:
GET /v1/usage, and429 quota-exceededwithresets_aton every generation endpoint. POST /v1/forms/extract— build a structured form from an uploaded intake document.
Changed
- Job payloads gained
estimated_seconds. - A failed job no longer consumes quota. Retries after a failure are free.
0.7.0 — 2026-06-15
Added
- The artifact index:
GET /v1/artifacts,/{id},/{id}/download. The attribution triple —created_by,subject,session— is now carried on every produced object. POST /v1/studio/generateandPOST /v1/models/generate.- Worksheet and form assignment, with
route_to_caregiveron forms.
Changed
subjectbecame optional on generation. Omitting it produces library content rather than personal content; it was previously required.
0.6.0 — 2026-05-20
Added
- Content library: playrooms, toolkits, the game catalog, storybooks, worksheets and forms.
POST /v1/storybooks/generatewith named characters and cross-page visual consistency.- Caregiver links:
POST /v1/caregivers/link,GET /v1/patients/{id}/caregivers.
0.5.0 — 2026-04-28
Added
- Sessions as a first-class resource, replacing appointment-link minting as a side effect.
POST /v1/sessionsreturns both role-scoped hosted links;GET /v1/sessions/{id}/summaryreturns what happened. POST /v1/tokens— short-lived, role-scoped, single-person session tokens.
Changed
- Breaking, pre-general-availability.
POST /v1/appointments/{id}/session-linksbecamePOST /v1/sessions/{id}/links. Appointments are no longer a partner-facing resource; your platform is the schedule and PlaySpace holds your identifier for it.
0.4.0 — 2026-03-31
Added
ext:identifier addressing on every path that takes an identifier.- Upsert semantics on clinics, practitioners and patients, keyed on
external_id. POST /v1/patients/search.
Removed
- Breaking, pre-general-availability.
GET /v1/patients?q=is gone with no replacement of that shape. A person's name in a query string is captured by platform request logs before anything at the application layer can act on it, so free-text person search moved to a request body. This is a routing decision, not a redaction one, and it will not be reversed.
0.1.0 — 2026-02-10
First preview. Clinics, practitioners, patients, appointments. Cursor pagination, RFC 9457 problem documents, per-organisation rate limiting, and the per-request audit log.