Skip to main content

Tenant Config API

These endpoints expose your tenant's configuration: default session behavior, expired-call handling, support routing, push settings, and call-recording policy.

Auth: Bearer JWT. Reads work with any tenant token; PATCH /config requires a dashboard user token with an OWNER or ADMIN role.

Endpoints​

MethodPathSummary
GET/v1/configGet the tenant config
PATCH/v1/configUpdate the tenant config (OWNER/ADMIN)
GET/v1/tenants/meGet the current tenant (wrapped)

GET /v1/config​

Returns the full tenant configuration object.

Request

curl https://api.relavoi.com/v1/config \
-H "Authorization: Bearer $RELAVOI_JWT"

Response

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Chowdeck",
"tier": "GROWTH",
"status": "ACTIVE",
"webhookUrl": null,
"defaultGracePeriod": 15,
"expiredCallBehavior": "DEAD_LINE",
"supportPhone": null,
"recordingEnabled": false,
"recordingConsentMode": "DEFAULT",
"recordingConsentAudioUrl": null,
"pushConfig": {},
"createdAt": "2026-07-11T20:44:05.776Z",
"updatedAt": "2026-07-11T20:44:05.776Z"
}

Field reference

FieldTypeDescription
idstringTenant UUID
namestringTenant display name
tierstringSTARTER, GROWTH, or ENTERPRISE
statusstringTenant status, e.g. ACTIVE
webhookUrlstring | nullRegistered client webhook URL
defaultGracePeriodintegerDefault grace period (minutes) for new sessions
expiredCallBehaviorstringDEAD_LINE, REDIRECT_SUPPORT, or PLAY_MESSAGE
supportPhonestring | nullSupport number (used by REDIRECT_SUPPORT)
recordingEnabledbooleanWhether call recording is enabled
recordingConsentModestringDEFAULT, CUSTOM, or NONE
recordingConsentAudioUrlstring | nullURL of custom consent audio (for CUSTOM)
pushConfigobjectPer-tenant push notification config
createdAtstringISO-8601 timestamp
updatedAtstringISO-8601 timestamp

PATCH /v1/config​

Updates one or more configuration fields. Only the fields you send are changed. Requires a dashboard user token with OWNER or ADMIN role.

FieldTypeDescription
namestringTenant display name
webhookUrlstringClient webhook URL
defaultGracePeriodintegerDefault grace period (minutes)
expiredCallBehaviorstringDEAD_LINE, REDIRECT_SUPPORT, or PLAY_MESSAGE
supportPhonestringSupport number in E.164
recordingEnabledbooleanEnable/disable call recording
recordingConsentModestringDEFAULT, CUSTOM, or NONE
recordingConsentAudioUrlstringURL of custom consent audio
pushConfigobjectPush notification config

:::warning Recording consent is enforced If recordingEnabled is true, recordingConsentMode cannot be NONE. This is an NDPR compliance requirement — a consent announcement must play before calls are bridged. A request that would leave recording enabled with consent disabled is rejected with 400. :::

Request

curl -X PATCH https://api.relavoi.com/v1/config \
-H "Authorization: Bearer $RELAVOI_DASHBOARD_JWT" \
-H "Content-Type: application/json" \
-d '{
"webhookUrl": "https://client.example.com/hook",
"expiredCallBehavior": "REDIRECT_SUPPORT",
"supportPhone": "+2348000000001",
"recordingEnabled": true,
"recordingConsentMode": "DEFAULT"
}'

Response

Returns the full, updated config object (same shape as GET /config).

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Chowdeck",
"tier": "GROWTH",
"status": "ACTIVE",
"webhookUrl": "https://client.example.com/hook",
"defaultGracePeriod": 15,
"expiredCallBehavior": "REDIRECT_SUPPORT",
"supportPhone": "+2348000000001",
"recordingEnabled": true,
"recordingConsentMode": "DEFAULT",
"recordingConsentAudioUrl": null,
"pushConfig": {},
"createdAt": "2026-07-11T20:44:05.776Z",
"updatedAt": "2026-07-15T12:15:35.907Z"
}

Errors

StatusCodeWhen
400validation-errorInvalid enum, or recordingEnabled=true with recordingConsentMode=NONE
401unauthorizedMissing or invalid JWT
403forbiddenNot an OWNER/ADMIN dashboard token

GET /v1/tenants/me​

Returns the same tenant fields as GET /config, wrapped in a tenant object. Useful for dashboard clients that resolve the signed-in tenant on load.

Request

curl https://api.relavoi.com/v1/tenants/me \
-H "Authorization: Bearer $RELAVOI_JWT"

Response

{
"tenant": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Chowdeck",
"tier": "GROWTH",
"status": "ACTIVE",
"webhookUrl": null,
"defaultGracePeriod": 15,
"expiredCallBehavior": "DEAD_LINE",
"supportPhone": null,
"recordingEnabled": false,
"recordingConsentMode": "DEFAULT",
"recordingConsentAudioUrl": null,
"pushConfig": {},
"createdAt": "2026-07-11T20:44:05.776Z",
"updatedAt": "2026-07-11T20:44:05.776Z"
}
}