Skip to main content

Documentation Index

Fetch the complete documentation index at: https://orbit-docs.devotel.io/llms.txt

Use this file to discover all available pages before exploring further.

Verify API

One-time-password (OTP) issuance and validation across SMS, voice (TTS), email, and WhatsApp. Two patterns:
  • Direct — issue an OTP to a phone / email; validate the code the user enters.
  • Profile-based — define a verify profile (channel, code length, expiration, locale, sender), then reference it by name from your app. Lets you tune behavior without redeploying.
Base path: /v1/verify Authentication: API key (X-API-Key) or session JWT.

Send & check

MethodPathPurpose
POST/v1/verify/sendIssue an OTP
POST/v1/verify/checkValidate an OTP code

Verifications

MethodPathPurpose
GET/v1/verify/List verifications
GET/v1/verify/{id}Get a verification
POST/v1/verify/{id}/cancelCancel an in-flight verification

Profiles

MethodPathPurpose
GET/v1/verify/profilesList profiles
POST/v1/verify/profilesCreate a profile
GET/v1/verify/profiles/{id}Get a profile
PATCH/v1/verify/profiles/{id}Update
DELETE/v1/verify/profiles/{id}Delete

Example — send and validate an SMS OTP

# 1. Send
curl -X POST https://orbit-api.devotel.io/api/v1/verify/send \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "channel": "sms",
    "code_length": 6,
    "expires_in_seconds": 600,
    "locale": "en-US"
  }'

# Response: { data: { verification_id: "ver_abc123" } }

# 2. Check
curl -X POST https://orbit-api.devotel.io/api/v1/verify/check \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "verification_id": "ver_abc123", "code": "482517" }'
The check endpoint returns { data: { status: "verified" } } on success or { status: "invalid" | "expired" | "exhausted" } on failure. Codes have a small fixed number of attempts (default 5) before they’re exhausted.

See also