Home/Developers
Build on WhatsApp with the BotPulsar API
Send messages, manage contacts and conversations, and get notified the moment a customer replies — a scoped REST API with signed webhooks, the same one the BotPulsar app itself runs on.
The BotPulsar API lets an integration create contacts, start conversations, and
send WhatsApp messages using a scoped API key, and subscribe a webhook to receive
delivery status and inbound replies in real time. Every request is HTTPS, versioned under
/api/v1/, and answers {"error":{"code":...,"details":...}} on
failure.
From zero to a delivered message
-
Create or find a contact
POST /api/v1/contacts/with a phone number. Calling it twice with the same number returns the existing contact instead of duplicating it. -
Start a conversation
POST /api/v1/conversations/with that contact and the channel to send from. Calling it twice returns the existing open conversation. -
Send the message
POST /api/v1/conversations/{id}/messages/with the text, or a template name if it's the first message in a new 24-hour window.
What's live today
BotPulsar is opening its API surface in stages. Here's exactly what an API key can and can't do right now.
Live with an API key
Contacts (create, read, update) · Conversations (create, read) · Messages (send, read history) · Templates (read approved templates and parameters) · Webhooks (subscribe, rotate secret, replay) · Automation triggers.
Dashboard-only for now
Campaigns, media upload/download, analytics, and template creation don't accept API keys yet — they're scoped names already reserved (see Authentication) but no endpoint checks them today. Manage those from the BotPulsar dashboard.
Where to go next
Quickstart
Get an API key and send your first message, with copy-pasteable curl.
Authentication
The Authorization header, X-Tenant-ID, and every scope explained.
Webhooks
Subscribe to events and verify the signature on every delivery.
Errors & rate limits
The error envelope, status codes, and how throttling responds.
Full API reference
Every endpoint and field, generated from the live OpenAPI schema.
Talk to us
Need a scope that isn't live yet, or higher rate limits? Ask.
Common questions
Do I need my own Meta Business Account to use the API?
Yes. BotPulsar connects to a WhatsApp Business Account (WABA) you or your customer owns in Meta Business Manager — the API sends and reads messages through that connection, it does not replace it. Connect a channel from the dashboard before calling the API against it.
Can external partners send WhatsApp messages through the API today?
Yes, with a scoped API key: create or look up a contact, create a conversation, then send a message. See the Quickstart for the three calls in order.
Is this the same API the BotPulsar app itself uses?
It's the same endpoints, authenticated a different way. The product UI signs in as a person and gets a session; an API integration authenticates as a scoped API key tied to one workspace, with only the scopes you grant it.
What can't I do with an API key yet?
Campaigns, media upload, analytics, and template creation are not opened to API keys yet — those stay dashboard-only for now. Contacts, conversations, messages, template reads, webhooks, and automation triggers are live.
Is there a sandbox or test mode?
No separate sandbox — API keys are scoped to a real workspace and a real connected WhatsApp number. Meta's own 24-hour session window and template rules apply the same way they do in the dashboard, so test with a number you control before going live.
Where do I get help if a call isn't behaving as documented?
Email support@botpulsar.com with the request's `X-Botpulsar-Delivery` or response `error.code`, and which endpoint — that's enough for us to find the exact request server-side.