/v1/* endpoint.
Allow-listed responses
Every public response is built from an explicit allow-list of documented fields. A response contains the fields shown in that endpoint’s reference page — and nothing else. Concretely, this means:- Internal fields are never returned. We do not expose identifiers for our sub-processors or infrastructure (telephony, voice, LLM, RAG/knowledge-base, email, payment, and verification providers), internal feature flags, internal tokens or secrets, or our region-specific provider identifiers. These are implementation details that can change at any time without notice.
- What you see is the whole contract. If a field is not documented on the endpoint’s reference page, do not depend on it — even if you observe it in a response during a transition. Treat undocumented fields as absent.
- New fields may be added. We may add new documented fields to a response at any time. Write clients that ignore unknown fields rather than rejecting them.
Because internal provider identifiers are never exposed, you can build on the Nedzo
API without coupling to the specific vendors we use behind the scenes. We can change
providers — including using different processors per region for data-residency
reasons — without breaking your integration.
Field stability
Deprecation & removal
Removing or renaming a documented field, or removing an endpoint, is a breaking change. We follow a fixed process:- Pre-announcement in the changelog and to affected integrations.
- A deprecation window of at least 60 days during which the field or endpoint keeps working unchanged.
- Removal only after the sunset date passes.
Deprecation(per the IETF deprecation-header draft) — when the deprecation took effect.Sunset(RFC 8594) — the date on or after which the field/endpoint will be removed.Link; rel="deprecation"— the changelog entry with migration guidance.
Sunset header so deprecations
surface during your normal monitoring.
How we enforce this
The allow-list is enforced in code, not by review alone: every/v1/* response is
serialized through a central allow-list, and a CI gate fails any build that
introduces an internal-only field name into a public response, re-opens a response
schema to arbitrary fields, or bypasses the allow-list serializer. This is why you
can trust that the documented fields are exhaustive.