SMS, WhatsApp, and RCS from one endpoint
Send a message once and Siddhira handles the formatting differences between channels — media attachments, quick-reply buttons, and read receipts each map to the right fields automatically.
- Two-way conversations with a single webhook for inbound replies
- Approved WhatsApp templates managed from your dashboard
- Rich media: images, PDFs, and location pins where the channel supports it
await siddhira.messages.send({ to: "+14155550142", channel: "whatsapp", template: "order_shipped", variables: { order: "4821" } });
await siddhira.calls.create({ to: "+14155550142", say: "Your delivery arrives in 10 minutes.", voice: "en-US-female-1" });
Calls and text-to-speech for the moments text can't cover
Programmable voice for time-critical alerts, IVR menus, and OTP fallback — with recordings, call transfer, and real-time transcription available on the same call object.
- Text-to-speech in 30+ languages, or bring your own audio
- Simple IVR menus defined in JSON, no telephony experience required
- Call recordings and status webhooks (ringing, answered, voicemail, no-answer)
One-time codes that don't die with a missed text
Start with SMS, and if the code isn't entered within your time window, Siddhira automatically calls with a spoken code instead of leaving the user stuck.
- Configurable code length, expiry, and retry limits
- Built-in fraud checks to block known disposable-number abuse
- A single verify() call handles sending, escalation, and checking
const otp = await siddhira.verify.start({ to: "+14155550142", channels: ["sms", "voice"], escalateAfter: "30s" });
The routing engine underneath everything above
This is what actually makes Siddhira a fallback platform rather than five separate APIs. Every product above is really just a channel plugged into this engine.
Detect
A failed send, a timeout, or a message left unread past the window you configured.
Reroute
The next channel in your chain picks up the same message — no new request from your side.
Deliver
Siddhira stops the chain the moment it lands, and logs exactly which channel got there.
190+ countries, provisioned by API
Local presence without the paperwork
Provision local, toll-free, and short code numbers directly through the API. Siddhira handles the regulatory registration required in each country.
- Local caller ID improves answer rates on outbound voice
- Number pooling so high-volume senders avoid carrier filtering
See where messages actually land
Every hop — attempted, failed, rerouted, delivered — is logged with a timestamp. Filter by channel, country, or campaign to see where your fallback rules are triggering most.
- Exportable delivery logs, or query them directly through the API
- Alerts when a channel's failure rate spikes in a given country
See it work with your own numbers.
Spin up a sandbox account and send a real message through a fallback chain in the next five minutes.