API changelog

There is no release history to publish yet, and this page would rather say so than invent one.


Where the API is

The Partner API specification is at version 0.1.0. It has not been through a public release series: there is no 1.0, no beta line behind it, and no set of dated releases you can diff. Everything currently reachable arrived as part of building the surface, not as numbered releases.

/v1 in the path is the major version of the surface, not a claim that the contract is frozen. Nothing on it has been deprecated, because nothing on it has yet been retired.


What is safe to build on

The rules that keep an integration working across changes are on the conventions page, and two of them carry the weight:

  • Ignore what you do not recognise in a response. New fields, new enumerated values and new problem types are added within /v1 without a version bump. Preserve unknown fields rather than stripping them, and treat an unrecognised enumerated value as unknown rather than throwing.
  • Branch on a problem type, never on title or detail. The slug set only grows and an existing slug never changes meaning; the prose beside it may be reworded at any time.

Follow those two and additive change cannot break you, which is most of what a changelog would otherwise be protecting you from.


How you will hear about a change

The specification is the artifact to watch. The machine-readable contract is published alongside this site at /openapi.json, and the endpoint summary is generated from it rather than typed by hand. Both are regenerated whenever the contract changes, and a build that would let them drift from the running implementation fails before it ships. Diff the specification between two dates and you have the real answer, not a summary of one.

Anything that could break you comes from a person, not a page. Until there is a release series to subscribe to, a change that would affect a live integration reaches you through your PlaySpace contact, with the detail and the timing in that conversation. If you need a change window or a stability period written down, raise it and it becomes part of your agreement rather than an assumption from a documentation page.

If something has already surprised you, quote the X-Request-Id from the response. It resolves to a single request in our audit history, which is faster than reconstructing what changed.


Changes worth knowing about anyway

No schema on /v1/partner/* changed here — no field was added, removed or retyped. One of these changes the VALUE you get back, so read that one even if you skip the rest.

  • Session links are now short redirects. patient_video_url and clinician_video_url are https://<host>/join/<22-character code> — no query string — and opening one redirects to the session credential that used to be in the URL itself. Both fields are still nullable strings, so nothing about the contract moved, and everything the links do when opened is unchanged. If you parse a session link — reading the token out of it, matching on /video-session or /partner-session, or assuming a query string is present — that will stop working: treat the value as an opaque credential and hand it over whole. Two properties to keep in mind: the same code comes back on every call and follows a reschedule, so there is no second link to retire; and the code has no expiry of its own — it stops working once the appointment is cancelled or deleted, or its window has closed. Do not put one through an email provider's click tracking; the tracked rewrite is a plain-http redirect that link scanners pre-fetch, and the pre-fetch follows through to the credential.
  • In-session worksheets gained the desktop editor's controls. A clinician who opens a worksheet from the activity shelf during a session can now add and delete slides and generate AI artwork, and the patient's seat follows those pages live. Pages reach the record only when the clinician files a copy, and page order is fixed for the duration of a session. Nothing about POST /v1/partner/appointments/{id}/session-links changed.

This page will become a dated release log once there is a release series to log. It will not be backfilled with a history that did not happen.