Skip to main content
The OMNI API is how your own systems use OMNI. Everything a person does in the panel — reach someone on whichever channel gets there, look up and change contacts, answer in the Inbox, ring someone into an IVR, read what was sent and what it cost — your servers can do with one key. Behind it are every channel your account has. You never hold a provider’s credentials and never learn a provider’s API: OMNI connects to SMS, WhatsApp, RCS and Voice for you, whether through FireFlo’s shared connections or your own.

What it covers

Messages with failover

One message to one person, tried on each channel of a route until one gets there.

Webhooks

Signed events for messages, every channel’s deliveries and replies, and calls.

Contacts and consent

Find people by any number they’ve had, keep their fields and tags, record consent.

Conversations

The Inbox: read threads, reply, close, assign and label them.

Calls

The call log, and ringing someone into an IVR or to a voice agent.

Channel extensions

Each channel’s own features: WhatsApp templates, SMS sender IDs and DLT templates.
Also: senders (every sender ID, number and bot your messages can come from) and usage (what was sent and received, calls, and what was charged).

The basics

The API needs your plan to include it. If it doesn’t, every request is refused with plan_excludes_api — ask whoever runs your OMNI service.

Where to begin

1

Make a key

In the panel, open Developers → API keys, choose what the key may do, and copy it — it is shown once. Start with a test key. See Keys and scopes.
2

Ask who you are

GET /v1/me answers with your account, your plan and the key’s scopes.
3

Send a message

POST /v1/messages with a number and a little content. With a test key nothing reaches a phone. See the developer quickstart.
4

Try anything in the panel

API & playground, at the bottom of the side menu, runs every endpoint as one of your keys on your own data, and gives you the code. See Playground.