Skip to content

API Versioning

Executive Summary

API Versioning defines how Algosure API contracts should evolve. Versioning must protect mobile, web, AIOS, and integration consumers while allowing Domains to change responsibly.

Why This Exists

APIs are long-lived contracts. Unmanaged changes can break clients, AIOS tool calls, integrations, analytics ingestion, and customer workflows.

Owner

The owner is the Chief Product Officer and Enterprise Architect.

Business Value

Versioning reduces client breakage, supports planned migration, and makes API lifecycle governance explicit.

Versioning Model

flowchart LR
    V1[API v1]
    Compatible[Backward-Compatible Change]
    V1b[API v1 Updated]
    Breaking[Breaking Change]
    V2[API v2]
    Consumers[Mobile, Web, AIOS, Integrations]

    V1 --> Compatible
    Compatible --> V1b
    V1 --> Breaking
    Breaking --> V2
    V1b --> Consumers
    V2 --> Consumers

Versioning Rules

Rule Requirement
Version public contracts Public application and integration APIs require explicit versioning.
Prefer backward compatibility Additive, optional changes are preferred over breaking changes.
Breaking changes require new version Removing fields, changing meaning, changing authorization assumptions, or changing command semantics requires a new version.
Domain owns version impact The owning Domain must assess consumer impact before changing its API.
OpenAPI as future source OpenAPI should become the versioned contract source when endpoint specs are approved.
Deprecation is explicit Deprecated versions require migration guidance, retirement policy, and consumer visibility.

Compatibility Guidance

Change Compatibility
Add optional response field Usually compatible.
Add optional filter Usually compatible.
Add stricter authorization check Potentially breaking; requires security and consumer review.
Remove response field Breaking.
Rename resource Breaking.
Change command behavior Breaking.
Change error shape Breaking.
Change pagination semantics Potentially breaking.

Non-Implementation Boundary

This document does not define URL version placement, header versioning, OpenAPI folder layout, release cadence, or sunset automation.