Versioning & deprecation
How the ActuallyCare REST API is versioned, what counts as a breaking change, and how deprecations are communicated.
The API is path-versioned. There is currently one version: /v1 — every endpoint lives under https://api.actuallycare.com/v1.
What we change without notice (non-breaking)#
These can happen at any time and your integration must tolerate them:
- New endpoints, and new optional request parameters
- New fields in response objects (parse what you need; ignore unknown fields)
- New enum values in fields that are documented as open-ended (e.g. new
statusvalues on new features) - New webhook event types (subscribe explicitly; ignore types you don't handle)
- Documentation-only changes to the OpenAPI spec (descriptions, examples)
What counts as breaking#
Anything that would make a working integration stop working:
- Removing or renaming an endpoint, request parameter, or response field
- Changing a field's type or meaning
- Tightening validation so previously-valid requests fail
- Removing an enum value or changing error
codestrings
Breaking changes ship under a new version path (/v2), not in place. /v1 keeps working while any published version is supported.
How deprecations are communicated#
No /v1 endpoint is deprecated today. When a deprecation is scheduled it will be announced in the changelog, marked deprecated: true in the OpenAPI spec, and given an explicit sunset date in both places — with a migration path documented before the clock starts.
MCP tools#
MCP tools follow the same philosophy at the tool level: tool inputs only gain optional parameters in place, and renamed tools keep their old name callable as an alias (see the aliasOf field in tools.json). New tools appear without notice — enumerate them via tools/list or the discovery tools rather than hardcoding the tool set.