Reliability
Versions and compatibility
API v1 versioning policy, compatible changes, date format and specification changelog.
Every /api/public/v1 response carries the X-Api-Version: 1 header. The OpenAPI specification is at version 1.3.0 (SemVer); the official packages at 1.2.0.
Compatible additions#
They arrive without notice in v1: response field, header, optional parameter, error code, webhook event. An integration must ignore what it does not know.
Breaking changes#
Any breaking change (field removed or renamed, type or meaning changed, parameter made required, HTTP code changed) goes to a new /api/public/v2 version. v1 stays served during an announced deprecation period.
Dates#
ISO 8601 with offset, to the second: 2026-11-06T09:39:11+00:00. Webhooks also carry a Unix timestamp (seconds).
What's new in 1.3.0#
- New
503 FEATURE_DISABLEDcode on every operation (feature turned off by the platform):details={ feature, blocked_by, message, until },Retry-Afterheader when a reactivation is scheduled. 503 OTP_SERVICE_DISABLEDnow carries the samedetailsandRetry-After.
What's new in 1.2.0#
X-Request-IdandX-Api-Version: 1headers;error.detailsalways an object.- Numbers: without
+, 11 digits or more not starting with 0 = already international. - Idempotency on
POST /otp/send; fingerprint after normalization; new409 IDEMPOTENCY_REQUEST_IN_PROGRESS. POST /otp/send:code_length,code_type,resend_after_seconds,web_otp_domain,strip_accents.POST /otp/verify:attempts_remaining.strip_accentsonPOST /smsand/sms/estimate; richermessage.status_changedwebhook; newotp.verifiedandotp.failedwebhooks.