API & developers

A clean REST API, in any language

Partners send WhatsApp, Email and SMS programmatically with a single bearer token — fully abstracted from gateway credentials. No SDK lock-in, no provider secrets, no platform login required.

quickstart
# Authenticate with a partner bearer token
export TOKEN="ak_live_3f9c…"

curl https://apps.innomessage.com/api/send-sms.php \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"to":"+15551234567","text":"Hi from Inno Message"}'

Bearer authentication

Send the partner access key in the Authorization header. Tokens are validated against active status on every request.

Partner isolation

Each token can only use the gateways assigned to that partner. Credentials never leave the platform.

Balance-aware

Balance & credit are checked before any cost is incurred — a clean 402 is returned if funds are exhausted.

Endpoints

The partner API surface

EndpointMethodAuthPurpose
/api/send-email.phpPOSTBearerSend email via the assigned SendGrid gateway
/api/send-sms.phpPOSTBearerSend SMS via the assigned Twilio gateway
/api/send-whatsapp.phpPOSTBearerSend WhatsApp / Messenger / Instagram message
/api/webhook.phpGETverify_tokenWhatsApp webhook verification handshake
/api/webhook.phpPOSTHMACProcess messages, email events & SMS status
/api/webhook-messenger.phpPOSTHMACProcess Messenger & Instagram messages
Examples

Send in your stack

WhatsApp · Node.js
const res = await fetch(
  "https://apps.innomessage.com/api/send-whatsapp.php", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TOKEN}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    to: "+15551234567",
    type: "text",
    text: "Your order has shipped 📦"
  })
});
const data = await res.json(); // { id, status }
Email · Python
import requests, os

r = requests.post(
  "https://apps.innomessage.com/api/send-email.php",
  headers={"Authorization": f"Bearer {os.environ['TOKEN']}"},
  json={
    "to": "[email protected]",
    "subject": "Welcome aboard",
    "html": "<h1>Hello!</h1>"
  })
print(r.status_code, r.json())  # 200 { id, status }

Response & error codes

CodeMeaning
200Accepted — message queued/sent
400Invalid request payload
401Missing or invalid bearer token
402insufficient_balance — top up or raise the credit limit
403Partner suspended or gateway not assigned
419CSRF token mismatch (UI endpoints)

Webhook events

Configure your provider webhooks to point at the Inno Message endpoint. Inbound events are captured, verified and routed automatically.

  • WhatsApp — inbound messages, delivery & read receipts
  • Email — delivered, open, click, bounce, deferred, dropped
  • SMS — queued, sent, delivered, undelivered, failed
  • Messenger & Instagram — inbound text & media
Integration details