FullVision

API Stability

What changes without notice, what never changes without a version, and how to write a client that survives both

FullVision's REST API, CLI, and MCP Server share one stability contract, modeled on Anthropic's API versioning. Additive changes ship continuously without a version bump; breaking changes never do.

Use it when you are writing an integration and want to know what could break it — and what never will without warning.

What may change without notice

These are backward-compatible by definition — a client that ignores what it doesn't recognize is unaffected.

  • New optional request fields
  • New response fields
  • New enum values (report categories, error codes, event types, channel labels, …)
  • New error codes
  • New webhook event types

What we never change without a version

  • Removing or renaming a field or endpoint
  • Changing a field's type or default value
  • Changing what an existing error code means

A breaking change to any of the above ships as a new version, announced ahead of time — never silently on an existing endpoint.

Client rules (tolerant reader)

Write your integration to these three rules and every additive change above is a no-op for you:

  • Ignore unknown fields. Deserialize permissively — don't fail on a response key you don't recognize.
  • Never depend on field order. JSON object key order and array element order (unless explicitly documented, e.g. "ranked by revenue desc") carry no meaning.
  • Treat unknown enum values as "other". New channels, error codes, and event types will appear over time — default to a catch-all branch instead of an exhaustive switch that throws.

This is the same contract webhooks follow — see Webhooks for the event-type rule in practice.

On this page