Developers

Built by engineers who've been paged at 2am.

Predictable REST, HMAC-signed webhooks, and SDKs for iOS, Android and Flutter. Build against the sandbox before you touch a live number.

SDKs

Native where it matters.

Each SDK handles auth and token refresh, session calls, call verification and the event stream. Check the docs for the current release version.

iOS · Swift

RelavoiSDK · SPM
Docs

Android · Kotlin

com.relavoi.sdk
Docs

Flutter · Dart

relavoi_sdk
Docs
Webhooks

Every event, HMAC-signed.

Verify X-Relavoi-Signature against your webhook secret. It's an HMAC of timestamp.body. Dedupe on X-Relavoi-Delivery and respond 200. Reject anything whose X-Relavoi-Timestamp is more than five minutes from your own clock, so a leaked payload cannot be replayed at you later. We retry with exponential backoff and log every attempt to your dashboard.

That signature is on the webhooks Relavoi sends you. Carrier callbacks travel the other way, into Relavoi, and are authenticated by a secret callback address the gateway holds. You never handle those.

session.createdProxy allocated, session live
call.incomingA party dialed the proxy
call.answeredBridge established
call.endedDuration and status
session.expiredNumber returned to pool
POST /your/webhook X-Relavoi-Event: call.answered X-Relavoi-Delivery: 3b91c02a-… X-Relavoi-Timestamp: 1790691692 X-Relavoi-Signature: sha256=9f2a… { "event": "call.answered", "timestamp": "2026-09-29T14:21:32.104Z", "data": { "sessionId": "67701c43-…", "direction": "B_TO_A" } }