Give your agent a phone number

They text a number. Your agent is on the other end. Nothing to install.

your agentiMessage
what's on my plate today?
three things. the Kearny review is the only one with a deadline 👀
push it to friday

They text. You're already there.

No app, no sign-up. It starts in the thread they already have open.

your agentiMessage
hey, is this the support line?
it is. what's going on?
my order never showed up

Your agent answers like a person would.

Typing dots while it thinks. A tapback when that's enough. Replies threaded to what they answer.

your agentiMessage
found it — out for delivery, landing before 6
🙏
i'll text when the driver's a stop away

Your agent stays put

API, SDK, CLI, signed webhooks. Mapier is the pipe and the numbers — not another runtime.

// signed webhook → your agent
const event = await mapier.webhooks.verify(req);

await mapier.messages.send({
  conversationId: event.data.conversationId,
  text: await runAgent(event.data.text),
});

Four channels. One API.

You send one message. Mapier picks the channel and tells you which one carried it.

iMessage

Blue bubbles on a real Apple line. The whole surface — tapbacks, threads, groups, effects.

your agentiMessage
found it — out for delivery, landing before 6
🙏
i'll text when the driver's a stop away
RCS + SMS

RCS where the phone supports it, SMS where it doesn't. Same call either way.

WhatsApp

Templates, media and the session window, handled for you.

Voice

The same agent on a call. Text to voice and back without losing the thread.

Tapbacks

Send them, read them, remove them.

Typing indicators

Dots on while the model thinks.

Polls

Real buttons instead of parsing "b i guess".

Group chats

Create, name, add and remove people. Run a room, not just a DM.

Three steps to a live thread

  1. 01

    Install and provision

    The CLI provisions a line and prints your keys. No ticket, no waiting.

    npm i -g @mapier/cli && mapier login
  2. 02

    Point a webhook

    Messages, reactions and delivery updates arrive as signed JSON. Replay any event while you build.

    mapier webhooks add https://your-app.com/api/mapier
  3. 03

    Send

    From wherever your agent lives. No queue to run, no Mac to babysit, no carrier paperwork.

    await mapier.messages.send({ to, text })
import { Mapier } from "@mapier/sdk";

const mapier = new Mapier({ apiKey: process.env.MAPIER_API_KEY! });

const sent = await mapier.messages.send({
  to: "+14155550123",
  text: "your standup summary is ready — want the short version?",
});

// You don't pick the channel. You get told which one carried it.
console.log(sent.channel); // "imessage" | "rcs" | "sms"

The boring parts, done properly

Messaging looks easy right up until you send the same message twice.

Retries never double-send

Retry a send and you get the recorded result back — never a second message in someone's thread.

Delivered means proved

A send settles on evidence. When the outcome is unknown, the API says so instead of guessing.

Test can't reach production

Separate keys, lines and stores. A test send cannot reach a real number.

Encrypted where it rests

Content and attachments are encrypted in every store that holds them.

Least-privilege keys

Scope a key to one environment and a set of lines. Every use is attributable to it.

A human in the loop

Mark an action as needing approval. It waits, bound to the exact payload, and expires if nobody acts.

What this is not for

A personal thread defends itself. Here is where Mapier stops.

  • Not for cold outboundMessages go to people who asked to hear from your agent.
  • Not for one-way broadcastIf nobody is expected to reply, use email or a push.
  • Not for marketing campaignsPromotions and drip sequences belong on channels built for them.
  • Not a consent workaroundYou need prior express consent, and you must honour STOP.
  • Not for pretending to be a personYour agent says what it is when asked.

On certifications

We don't hold SOC 2 or HIPAA attestations today, and we won't imply we do. If procurement needs one, talk to us before you build. Talk to us.

Questions we actually get

Do I need a Mac?

No. We run the hosts. That was the part we didn't want you to have to do.

Can I self-host?

Not today. The SDK is open source and MIT-licensed; the hosted fleet, routing and delivery evidence are the service.

What does my user actually see?

A text from a phone number. No app, no account, no permission prompt.

Is this a framework or a service?

A service. Your agent stays where it is. Mapier is the numbers, the pipe and the proof.

Which channels are live right now?

Ask us, or watch the docs. We will not put a status on this page we cannot back.

Send the first message

Thirty minutes with the people who built it.