Changelog

Detect protocol capabilities at runtime and treat version changes as contract changes.

GET /protocol is the live capability source. This page records the documentation-facing changelog and how partners should reason about compatibility.

Current protocol1.0.0-headless
DiscoveryGET /protocol
Docs version2026-07-29

Runtime source

Read capabilities from the server.

OpenDoc exposes its service name, protocol version, capability flags, event paths, error shape, permissions, and tool catalog from /protocol. Use it for feature detection instead of hardcoding assumptions.

curl https://api.opendoc.com/protocol

const protocol = await client.protocol();
if (protocol.version !== "1.0.0-headless") {
  console.warn("Review OpenDoc compatibility before deploying");
}

Compatibility

What counts as breaking.

BreakingRemoving a route/tool, changing required auth, renaming stable error codes, changing transaction state semantics, or changing required request fields.
Non-breakingAdding optional response fields, adding new tools, adding new error codes, adding event types, or clarifying human-readable messages.
Client ruleSwitch on stable codes and IDs, ignore unknown optional fields, and feature-detect capabilities from /protocol.

Log

Recent documentation and protocol-facing changes.

2026-07-29Docs status pass: every capability is labeled live-today (sandbox) or opening-with-first-partners (live mode); SDK distribution status corrected.
2026-07-04Sandbox self-serve opened: POST /developers/signup issues instant odk_sandbox_ keys confined to a synthetic provider with simulated payments. Live mode remains partner-gated.
2026-06-03Added live docs for SDK, auth, transactions, provider onboarding/access, events, errors, testing, discovery/offers, environments, security/PHI, changelog, and provider payouts.
2026-06-03Aligned docs branding with the marketplace brand system and static OpenDoc mark.
2026-06-02Protocol discovery points to https://docs.opendoc.com; API root returns minimal service and documentation metadata.
1.0.0-headlessCurrent runtime protocol version exposed by GET /protocol.

Partner process

Before upgrading an integration.

1
Fetch /protocol.Record version, tool list, auth requirements, permissions, and event paths.
2
Run public smoke.Check /health, /protocol, and one route from each public discovery family you use.
3
Run protected smoke in staging.Use synthetic actors, synthetic slots, test payment mode, and stable idempotency keys.
4
Archive evidence.Save commands, correlation IDs, route results, and environment class for support and audit traceability.