API reference
TelAPI emits two OpenAPI documents depending on the deployment's API/WebRTC feature set. At each platform release we check in both snapshots as self-contained Redoc HTML pages plus raw JSON:
| Profile | Feature flags | Typical paths |
|---|---|---|
| WebRTC enabled | FEATURE_API_ACCESS=true, FEATURE_WEBRTC=true | /api/v1/sessions/*, /api/v1/runtime/*, /api/v1/endpoints, /api/v1/usage/*, /api/v1/webhooks/*, /health, /health/sip-trunks |
| WebRTC disabled | FEATURE_API_ACCESS=false (webhook-only export) | /api/v1/webhooks/*, /health, /health/sip-trunks |
When FEATURE_API_ACCESS=false, deployments behave like the webhook-only profile even if WebRTC containers are present: health, SIP trunk health, and webhooks remain available, while SDK session/runtime routes are not registered.
Export each profile from a TelAPI instance running with the matching flag (GET /documentation/json), then sync with:
pnpm openapi:sync --from https://<api-host>/documentation/json --profile webhooks --tag 0.9.16
pnpm openapi:sync --from https://<api-host>/documentation/json --profile webrtc --tag 0.9.16
Add --insecure when exporting from a local stack with self-signed TLS (e.g. api.delphi.local).
Why this isn't the live /documentation
TelAPI's /documentation route is excellent for the platform you happen to be hitting. It's not stable for versioned docs because:
- It updates the moment the platform updates.
- It isn't searchable or cross-linked with the concept pages in this section.
- It isn't reachable from outside the deployment.
The release-time export makes the same schema reachable, searchable, and pinned to the docs version users selected in the version switcher.
See also
- Authentication · Scopes · Call tokens · Errors
- Version sources — how to confirm what your platform is running.