Buddy

WhatsApp in your product with one API call.

Building on the WhatsApp Cloud API means templates, consent, retries and webhooks before you send anything useful. The Buddy API handles all of it, so you add subscribers and send messages in an afternoon.

POST /api/v1/subscribers
Authorization: Bearer bd_live_…
 
{ "phone": "+44 7700 900123",
"name": "Amira",
"tags": ["trial", "web-signup"] }
 
201 Created · consent recorded
201 Created
Subscriber added
Automation started
Trial welcome
Delivered
1.2 seconds later
Technology fromMeta
Built on the official WhatsApp Business Platform
Inside REST API
SubscribersTagsMessagesCampaignsTemplatesTest keysIdempotencyClear errors

"Just add WhatsApp" is never just adding WhatsApp.

Sending one message is easy. Running it in production means consent records, template rules, rate limits, retries and status callbacks. The Buddy API gives you all of that behind a few clean endpoints.

Today

Weeks of plumbing before the first message.

  • Template submissions and rejections to manage yourself.
  • Consent and opt-out records you have to build and prove.
  • Rate limits and retries to handle without double-sending.
  • Status callbacks to store, match and make sense of.
  • A marketing team asking for a UI you don't have time to build.
With REST API

A few endpoints, and the rest is handled.

  • Add subscribers and tags with one call.
  • Consent checked on every send, opt-outs respected.
  • Idempotency keys so a retry never sends twice.
  • Delivery, read and reply status, ready to use.
  • The Buddy App for your marketing team, on the same data.

Key, call, done.

From sign-up to your first subscriber added and messaged in minutes. Test keys never send a real message.

1

Create a key

Make a test key and a live key in Buddy settings, each scoped to the actions it needs.

bd_test_4f9a…Test
bd_live_c21e…Live
subscribers:writemessages:send
2

Make a call

Add a subscriber who opted in, tag them, or send an approved template. Buddy checks consent first.

POST /api/v1/messages
Idempotency-Key: ord_1042
{ "to": "+33 6 12 34 56 78",
"template": "order_shipped" }
202 Accepted
3

Use the result

Get the message ID back, then follow its status by webhook or by asking the API.

message.sent · 16:40:02
message.delivered · 16:40:03
message.read · 16:42:07

Everything inside the API.

The endpoints and guarantees you need to run WhatsApp from your own product.

One model for subscribers, consent and messages, shared with the Buddy App.

What your code adds, your marketing team sees in Buddy, ready for segments, campaigns and automations. What they change, your code can read. No sync jobs.

"

Anyone who opted out stays opted out, whatever your code sends. The API won't let a mistake become spam.

Subscribers

Create, update and list subscribers. Existing people are matched by phone number and new tags are merged in.

Tags

Add or remove tags so your product's events shape audiences in Buddy.

Messages

Send an approved template to one subscriber, with variables, and get a message ID back.

Campaigns

Create and send a WhatsApp campaign to a segment, and read its results.

Templates

List your approved templates and their variables, so your code always sends a valid one.

Test keys

Real responses and webhooks, without a message ever reaching a phone.

Idempotency

Send an Idempotency-Key and a retried request never sends twice.

Scoped keys

Each key does only what you allow, shows when it was last used, and can be revoked in one click.

Clear errors

Errors say what went wrong and how to fix it, like subscriber_opted_out or template_not_approved.

What the Buddy API does for your team.

Ship the WhatsApp feature this sprint.

No template pipeline, no consent tables, no retry queue. Add subscribers and send messages with a handful of calls, and get back to your roadmap.

RESTJSONBearer keys
curl https://usebuddy.app/api/v1/subscribers \
-H "Authorization: Bearer $BUDDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phone":"+1 415 555 0142",
"tags":["trial"]}'
A product team working around a table with laptops
In the Buddy App
Noah FischerAdded by API · 2 min ago
trialweb-signup
In segment New trials this week

Your marketing team stops waiting on you.

Subscribers your product adds appear in the Buddy App straight away. Marketing builds segments and campaigns there, without a ticket in your backlog.

Mistakes don't become spam.

Every send is checked against consent. If someone opted out, the API refuses and tells you why, so a bug in your code never messages the wrong person.

409 Conflict
{ "error": "subscriber_opted_out",
"message": "This person replied STOP.",
"details": { "since": "2026-09-12" } }

What developers build with the API.

Sign-up opt-in

A WhatsApp checkbox in onboarding sends new users to Buddy, tagged.

SaaS

Order updates

Your backend sends order_shipped the moment a label prints.

Commerce

Booking reminders

A reminder template the day before every appointment.

Booking apps

Account alerts

Payment failed, plan renewing, usage limit close.

Fintech and SaaS

Lifecycle tags

Tag users as active, at-risk or churned so marketing can act.

Product teams

Three things people ask about REST API.

Why not use the Cloud API directly?

You can. Buddy runs on the same official platform and adds what you'd otherwise build: consent, templates, retries, audiences, analytics and an app for your marketing team.

Whose number sends the messages?

Yours. You connect your own WhatsApp Business number, so messages arrive under your business name.

Can I test safely?

Yes. Test keys return the same responses and webhooks as live keys and never deliver a message.

Questions about REST API.

Anything else, ask Sarah.She reads every message and writes back herself.
Ask a question
How do I authenticate?

Send your API key as a Bearer token in the Authorization header. Keys belong to one workspace and can be scoped and revoked in Buddy settings.

What happens if I add a subscriber who already exists?

Buddy matches them by phone number, merges any new tags, and keeps anyone who opted out opted out.

How do I avoid sending a message twice?

Send an Idempotency-Key header. If the same key arrives again, Buddy returns the original result instead of sending again.

Can I send free-form messages?

Within 24 hours of a customer messaging you, yes. Outside that window, WhatsApp requires an approved template, and the API tells you which ones you have.

How do I get access?

Join the waitlist and tell us what you're building. We'll set up your workspace with test and live keys and help with your first integration.

How is the API priced?

API access is part of your Buddy plan. Meta charges for business messages by type and country, billed to your own WhatsApp Business account.

Ship WhatsApp this sprint.

Join the waitlist and tell us what you're building. We'll get you keys and help with your first integration.

Two colleagues celebrating at a desk
201 Created
Subscriber added
202 Accepted
Message queued
Delivered
Webhook received
Read
16:42