Skip to content

API reference

API reference

Every endpoint, object and webhook event of the OmniMessage API. This reference is generated from the OpenAPI 3.1 document, so it always matches the published contract.

Download OpenAPIOpenAPI 3.1.0 · API version 1.0.0

Basics#

The OmniMessage API is JSON over HTTPS. Requests and responses use UTF-8, snake_case field names and ISO-8601 UTC timestamps. Money is an integer number of micro-USD in fields ending _micros (1 USD = 1,000,000), accompanied by currency: "USD".

Authenticate with an API key as a bearer token. Keys prefixed om_live_ deliver and bill; keys prefixed om_test_ run against a sandbox where nothing is delivered or billed.

TopicSummaryGuide
AuthenticationAuthorization: Bearer <api key>. Each operation lists the scope it requires.Authentication
ErrorsNon-2xx responses carry an error object with a type and a stable code.Errors
IdempotencyIdempotency-Key on POST requests makes retries safe for 24 hours.Idempotency
Paginationlimit (1 to 100, default 20) and starting_after on list endpoints.Pagination
Rate limits100 requests per second on POST /v1/messages, 20 elsewhere, per API key.Rate limits
Request IDsEvery response has an X-Request-Id header, repeated as request_id in errors.Errors
Base URL
https://api.omnimessage.co/v1
Authentication
Authorization: Bearer om_live_xxxxxxxxxxxxxxxxxxxxxxxx
curl https://api.omnimessage.co/v1/me \
  -H "Authorization: Bearer om_live_xxxxxxxxxxxxxxxxxxxxxxxx"
Response · 200
{
  "object": "account",
  "id": "acc_8nM3bV6cX9zL2kJ5hG1f",
  "name": "Acme Logistics",
  "mode": "live",
  "api_key": {
    "id": "key_1qW4eR7tY0uI3oP6aS9d",
    "name": "Production backend",
    "scopes": [
      "messages:write",
      "messages:read",
      "channels:read"
    ]
  },
  "capabilities": [
    "automation_events",
    "webhook_filters",
    "test_inbound",
    "events_feed"
  ]
}

Endpoints#

Messages

Send messages on any connected channel, alone or in batches, and read back their status and history.

Channels

Connect and manage your own senders: WhatsApp Business numbers, Telegram bots, SMS numbers and more.

Webhook endpoints

Register the URLs that receive delivery receipts, inbound messages and account events.

Contacts

Keep the people you message, with their consent, tags and custom attributes, and group them in lists and segments.

Campaigns

Send one message to many recipients, on a schedule and at a controlled rate, and follow the progress.

Integration sources

Register the stores and sites that report events, and let a plugin read which events to send.

Automation events

Report what happened in a store or site; the account decides in the console what message follows.

Event feed

Read the events webhooks deliver, for polling and for catching up after an outage.

Billing

Read the prepaid balance, the per-message prices and usage.

Account

Inspect the account and API key behind a request.

OpenAPI document#

Import the document into an API client or feed it to a code generator. It is available at /docs/openapi.json and lists the required scope of each operation under x-scopes.

Download OpenAPI

    Loading