SendPulse
Send email campaigns, SMS, and manage mailing lists from InTouch via the SendPulse REST API.
- Base URL:
https://api.sendpulse.com - Auth: Bearer token (static API key or OAuth2 client credentials — see below)
- Credential storage: none —
credentialBased: false; the key is passed inline
What it does
One tool, four operations covering the most common SendPulse workflows:
| operation | Method & endpoint | Purpose |
|---|---|---|
list-books |
GET /addressbooks |
List all mailing lists with their IDs and contact counts |
add-emails |
POST /addressbooks/{bookId}/emails |
Add one or more subscribers to a mailing list |
send-campaign |
POST /campaigns |
Create and send (or schedule) an email campaign to a list |
send-sms |
POST /sms/send |
Send an SMS to one or more phone numbers |
Every call returns:
{ "result": "<SendPulse response body>", "status": "200" }
result is the raw SendPulse response (a JSON string). Only transport failures
(DNS error, timeout) mark the step FAILED; 4xx/5xx errors surface in status
and result so you can branch on them downstream.
apiKey setup
SendPulse supports two credential forms; both work via the apiKey input:
Option 1 — Static API key (simpler, recommended):
1. Log in to SendPulse and go to Settings -> API.
2. Under API keys, click Add API key, copy the key.
3. Pass the key directly as apiKey.
Option 2 — OAuth2 client credentials:
1. Under Settings -> API, find your Client ID and Client Secret.
2. Pass them joined with a colon: apiKey = "your_client_id:your_client_secret".
3. The tool detects the colon, calls POST /oauth/access_token
(grant_type=client_credentials), and uses the resulting access_token
(valid for 1 hour) for the API call.
Operations
list-books
Returns the full list of mailing lists (address books) in the account. No extra inputs required.
{ "apiKey": "YOUR_KEY", "operation": "list-books" }
Sample result fragment:
[{"id": 987654, "name": "Newsletter 2026", "all_email_qty": 1200}, ...]
add-emails
Adds subscribers to a mailing list. bookId is the numeric ID from list-books.
Plain comma-separated addresses:
{
"apiKey": "YOUR_KEY",
"operation": "add-emails",
"bookId": "987654",
"emails": "[email protected], [email protected]"
}
With merge variables (JSON array):
{
"apiKey": "YOUR_KEY",
"operation": "add-emails",
"bookId": "987654",
"emails": "[{\"email\":\"[email protected]\",\"variables\":{\"Name\":\"Alice\",\"Phone\":\"+1555\"}}]"
}
send-campaign
Creates and immediately dispatches an email campaign to a mailing list.
The senderEmail must be a verified sender in your SendPulse account.
The HTML body is automatically Base64-encoded before sending.
{
"apiKey": "YOUR_KEY",
"operation": "send-campaign",
"bookId": "987654",
"senderName": "Acme Corp",
"senderEmail": "[email protected]",
"subject": "June product update",
"bodyHtml": "<h1>Hello!</h1><p>Here is what is new this month.</p>"
}
Sample result: {"id": 112233, "status": 1, "all_email_qty": 1200, ...}
send-sms
Sends an SMS to one or more international phone numbers.
smsSender must be 11 alphanumeric characters or fewer (country-dependent).
{
"apiKey": "YOUR_KEY",
"operation": "send-sms",
"smsSender": "AcmeCorp",
"smsPhones": "+15551234567, +447911123456",
"smsBody": "Your order has shipped! Track at acme.com/track"
}
SMS delivery requires an active SendPulse SMS balance and a registered sender name in the countries you are targeting.