Versioning policy

The version is in the path: https://api.lojiq.ai/v1. Everything under /v1 follows the rules on this page.

What stays stable in /v1#

  • Documented endpoints keep their path, method, authentication, request fields and the meaning of their documented response fields.
  • Documented error codes keep their meaning and HTTP status.
  • Webhook envelopes keep { id, type, organization_id, occurred_at, data }, the signature scheme and the retry schedule; documented data fields keep their meaning.
  • Scopes keep their names.

Changes we make without notice (non-breaking)#

  • Adding endpoints, optional request fields, response fields, headers, event types and data fields.
  • Adding values to open sets (lead status, call status, error codes for new failure modes).
  • Loosening validation (accepting something that used to be a 400).
  • Changing undocumented internal fields that appear in full-record reads (GET /leads/{id}, GET /calls/{id}, GET /campaigns/{id}). Read only documented fields.
  • Raising limits (rate limits, page sizes, CSV sizes).

Write clients that ignore unknown fields, unknown event types and unknown enum values.

Changes that are breaking#

Removing or renaming a documented endpoint, field, header, scope or event; changing a field's type or meaning; tightening validation on previously accepted input; changing the signature scheme. These ship only in a new major version (/v2) with at least six months of overlap during which /v1 keeps working, announced in the changelog, in the Developer page of the app, and by email to every organization with an active key.

Exceptions#

  • Security. A fix that closes a vulnerability may tighten behaviour immediately. It is documented in the changelog the same day.
  • Endpoints marked "Not yet available". Until their first working release they may change shape; they carry the badge in the reference for that reason.
  • Managed Agents and Zapier are pre-release and outside this policy until their launch entries appear in the changelog.

Spec and changelog#

The OpenAPI document at /openapi.yaml is the contract (info.version is 1.2.0; it bumps the minor number on additions, the patch number on documentation-only fixes). Every change, breaking or not, is listed in the changelog with a date.