Get started
Pulsr documentation
Pulsr is one HTTP API for SMS, RCS, voice calls and phone number verification. Every channel shares the same key, the same JSON conventions and the same webhook format.
Start here
New to Pulsr? The quickstart takes you from an API key to a delivered text message in about five minutes. Then pick the channel you need.
- QuickstartGet a key, set two environment variables and send your first SMS.
- AuthenticationHow API keys work and how to keep them out of your code.
- Send SMSText messages to one number or thousands, scheduled or right now.
- Send RCSBranded messages with cards, carousels, buttons and SMS fallback.
- Voice callsPlace calls, speak text, play audio and follow every call state.
- Verify phone numbersSend one-time codes and check them in two requests.
How the API works
- REST over HTTPS. Requests and responses are JSON. Send
Content-Type: application/jsonwith every request body. - One header to authenticate.
Authorization: App <your-api-key>, on every request. See Authentication. - Versioned paths. Each resource carries its own version in the path, like
/sms/3/messagesor/calls/1/calls, so one product can move forward without breaking another. - Asynchronous by default. A send returns as soon as the message is accepted. What happens next (delivered, failed, read, answered) reaches you as a webhook.
- One status format. Messages on every channel report the same status object, described in Errors and statuses.
About the examples
Every example comes in TypeScript and Python. Pick a language on any code sample and the whole documentation follows. The examples use a ten-line pulsr() helper around fetch and requests, defined in the quickstart, so you can copy them into any project without installing an SDK.
Where your data lives
Pulsr is 100% hosted and operated in the European Union and is GDPR compliant. Message content, call data and verification codes are processed and stored in the EU, wherever your recipients are.