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; documenteddatafields 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
datafields. - Adding values to open sets (lead
status, callstatus, 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.