Developers

One API and one provider for every channel

SMS, RCS, Email and Voice through a single API and a single provider — with visibility into each and every message in the SendLab console.

import { SendLab } from "@sendlab/node";

const sendlab = new SendLab(process.env.SENDLAB_API_KEY);

await sendlab.messages.send({
  channel: "sms",
  to: "+61412345678",
  body: "Your booking is confirmed for Thu 10:30.",
  // your own ID — retrying with it never sends twice
  reference: "booking-4821",
});
Delivery timeline

Every message, visible in the console

Search any message in the SendLab console and see each step it took — the checks it passed, when it reached the carrier and when it was delivered or read. If it failed, you’ll see why and what to do next.

Delivery timeline
  1. Accepted00:00.000
    Request received and validated
  2. Policy checks00:00.041
    Consent ✓ Suppression ✓ Sender active ✓
  3. Submitted00:00.180
    Handed to the carrier, first attempt
  4. Delivered00:02.904
    Carrier receipt confirmed
Built for developers

The details that make an integration easy to run

One API, every channel

SMS, RCS, Email and Voice share the same keys, references, events and console.

Honest message states

Accepted, submitted and delivered are separate. Unknown outcomes stay visible — never rounded up.

Safe retries

Pass your own reference and a retry never sends twice — even if the network drops mid-request.

Signed webhooks you can replay

Delivery, inbound and call events, signed and retried, with failed attempts you can inspect and replay.

Scoped API keys

Server-side keys with clear scope, last use and rotation — per environment and per team.

Test without sending

Validate requests and simulate delivery events before a single live message goes out.

Ready to take your messaging further

Tell us what you want your customers to be able to do. We’ll scope it with you and help you launch.