SendPulse Contacts API

The Contacts API from SendPulse — 51 operation(s) for contacts.

Business capability
Customer Data Management BC-420.10

Operations 57

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /contacts/get-list Filter and list CRM contacts · Get contacts list #
Ask an LLM
“Which CRM contacts were created in a given date range?”
“Can I filter my CRM contacts by tag, responsible manager or source?”
Tell an agent
List CRM contacts created between {from} and {to}.
Filter CRM contacts tagged {tagIds} and owned by {responsibleIds}.
POST /contacts/get-list-by-email Find CRM contacts by email address · Search contacts by email #
Ask an LLM
“Is there already a CRM contact with this email address?”
“Can I search CRM contacts by a partial email instead of the full address?”
Tell an agent
Find CRM contacts with email {email}.
Search CRM contacts by email {email}, exact match set to {isEmailFullSearch}.
POST /contacts Create a CRM contact (deprecated endpoint) · (Deprecated). Use POST /contacts/create instead to create a new contact #
Ask an LLM
“Does the older deprecated create-contact endpoint still accept phones, emails and tags in one call?”
“Can I use the legacy POST /contacts route to add a contact with attachments?”
Tell an agent
Using the deprecated endpoint, create a contact owned by {responsibleId} with emails {emails} and phones {phones}.
Via the legacy create route, add contact {firstName} for {responsibleId} with tags {tags}.
POST /contacts/create Create a CRM contact · Create a new contact #
Ask an LLM
“What's the current way to add a new contact to my CRM?”
“Can I store my own external ID on a contact when creating it?”
Tell an agent
Create CRM contact {firstName} {lastName} assigned to {responsibleId}.
Add a new CRM contact for {responsibleId} with external ID {externalContactId}.
GET /contacts/{contactId} Get a CRM contact's details · Get information about a contact by ID #
Ask an LLM
“What does the CRM know about a contact, including phones, emails and deal count?”
“Can I fetch a single CRM contact record by its ID?”
Tell an agent
Show CRM contact {contactId}.
Get phones, emails and deal count for CRM contact {contactId}.
PUT /contacts/{contactId} Update a CRM contact · Update information about the contact #
Ask an LLM
“How do I change the name on an existing CRM contact?”
“Can I reassign a CRM contact to a different team member?”
Tell an agent
Rename CRM contact {contactId} to {firstName} {lastName}, owner {responsibleId}.
Make {responsibleId} responsible for CRM contact {contactId}.
DELETE /contacts/{contactId} Delete a CRM contact · Remove contact by ID #
Ask an LLM
“How do I permanently remove a contact from my CRM?”
“Can I delete a duplicate CRM contact record?”
Tell an agent destructive · confirm first
Delete CRM contact {contactId}.
Remove contact record {contactId} from the CRM.
GET /contacts/{contactId}/deals List a contact's deals · Get all deals that related to contact #
Ask an LLM
“Which deals is a CRM contact involved in?”
“Can I see every deal related to one person?”
Tell an agent
List the deals for CRM contact {contactId}.
Show all deals linked to contact {contactId}.
POST /contacts/{contactId}/comments Add a note to a CRM contact · Add a note to a contact #
Ask an LLM
“How do I leave a note on a CRM contact's card?”
“Can I log a comment against a contact record?”
Tell an agent
Add the note {message} to CRM contact {contactId}.
Log a comment on contact {contactId}: {message}.
PUT /contacts/{contactId}/comments/{commentId} Edit a note on a CRM contact · Update contact note #
Ask an LLM
“Can I edit a note I already left on a CRM contact?”
“How do I correct the text of an existing contact comment?”
Tell an agent
Change note {commentId} on contact {contactId} to {message}.
Rewrite existing comment {commentId} on CRM contact {contactId} as {message}.
DELETE /contacts/{contactId}/comments/{commentId} Delete a note from a CRM contact · Remove contact note #
Ask an LLM
“How do I remove a note from a CRM contact?”
“Can I delete one comment on a contact's card?”
Tell an agent destructive · confirm first
Delete note {commentId} from contact {contactId}.
Remove comment {commentId} on CRM contact {contactId}.
GET /contacts/{contactId}/edu-payments List a contact's course payments · Get EDU payments by contact #
Ask an LLM
“What has a student contact paid for my online courses?”
“Can I see the EDU payment records tied to one contact?”
Tell an agent
List the EDU course payments for contact {contactId}.
Show what student contact {contactId} has paid for courses.
GET /contacts/{contactId}/edu-statistic Get a contact's course learning statistics · Get EDU statistics for a contact #
Ask an LLM
“How is a student contact progressing through my courses?”
“Can I pull EDU learning statistics for a single contact?”
Tell an agent
Get the EDU statistics for contact {contactId}.
Show course progress stats for student contact {contactId}.
GET /contacts/external/{externalContactId} Find a CRM contact by my external ID · Get contact exists by external contact Id #
Ask an LLM
“Does a CRM contact already exist for the ID from my own system?”
“Can I look up a contact using the external contact ID I stored?”
Tell an agent
Find the CRM contact with external ID {externalContactId}.
Check whether external contact {externalContactId} exists in the CRM.
GET /contacts/messenger-external/{messengerContactId} Find a CRM contact by messenger contact ID · Get contact by messenger contact id #
Ask an LLM
“Which CRM contact matches a chatbot messenger contact?”
“Can I map a messenger contact ID back to its CRM record?”
Tell an agent
Find the CRM contact for messenger contact {messengerContactId}.
Look up the CRM record linked to chatbot contact {messengerContactId}.
POST /contacts/{contactId}/relation/{companyId} Link a contact to a company · Add contact to a company #
Ask an LLM
“How do I associate a CRM contact with the company they work for?”
“Can I add a person to a company record?”
Tell an agent
Link contact {contactId} to company {companyId}.
Add person {contactId} to company {companyId}.
DELETE /contacts/{contactId}/relation/{companyId} Unlink a contact from a company · Delete a contact from the company #
Ask an LLM
“How do I remove a contact from a company they've left?”
“Can I break the link between a person and a company without deleting either?”
Tell an agent destructive · confirm first
Unlink contact {contactId} from company {companyId}.
Take person {contactId} off company {companyId}.
GET /contacts/get Get a chatbot contact by ID · Get contact info via a contact ID #
Ask an LLM
“What tags, variables and activity does a chatbot subscriber have?”
“Can I fetch a bot contact's profile and date added by its ID?”
Tell an agent
Get chatbot contact {id}.
Show the tags, variables and activity of bot subscriber {id}.
GET /contacts/getByTag List chatbot contacts with a tag · Get a list of contacts by tag #
Ask an LLM
“Which chatbot subscribers have a specific tag?”
“Can I page through the bot contacts carrying a tag?”
Tell an agent
List contacts of bot {bot_id} tagged {tag}.
Show {size} subscribers of bot {bot_id} with tag {tag}, skipping {skip}.
GET /contacts/getByVariable List chatbot contacts by variable value · Get a list of contacts by variable #
Ask an LLM
“Which bot subscribers have a variable set to a certain value?”
“Can I find chatbot contacts by variable name instead of variable ID?”
Tell an agent
Find contacts of bot {bot_id} where {variable_name} equals {variable_value}.
List subscribers whose variable {variable_id} is {variable_value}.
POST /contacts/sendText Send a plain text chatbot message to a contact · Send a text message to a contact #
Ask an LLM
“How do I send a simple text message to a chatbot subscriber?”
“Can I attach a message tag when texting a contact outside the messaging window?”
Tell an agent
Text contact {contact_id} the message {text} as type {message_type}.
Send plain text {text} to contact {contact_id} as {message_type} with tag {message_tag}.
POST /contacts/send Send a structured chatbot message to a contact · Send message to a contact #
Ask an LLM
“Can I send a rich message object, not just text, to a chatbot subscriber by contact ID?”
“What's the endpoint for sending a full message payload to a bot contact?”
Tell an agent
Send the message payload {message} to contact {contact_id}.
Deliver structured message {message} to bot subscriber {contact_id}.
POST /contacts/sendTyping Show a typing indicator to a contact · Send typing indicator #
Ask an LLM
“Can my bot show the 'typing…' indicator to a subscriber?”
“How do I make a chat look like an agent is typing a reply?”
Tell an agent
Show a typing indicator to contact {contact_id}.
Display 'typing' in the chat with {contact_id}.
POST /contacts/setVariable Set a variable value on a chatbot contact · Assign a variable to contact #
Ask an LLM
“How do I store a custom variable value on a bot subscriber?”
“Can I update several variables on a chatbot contact at once?”
Tell an agent
Set variables {variables} on contact {contact_id}.
Save variable values {variables} for bot subscriber {contact_id}.
POST /contacts/deleteVariable Clear a variable value from a chatbot contact · Delete a variable the selected contact #
Ask an LLM
“How do I erase a variable value stored on a bot subscriber?”
“Can I delete a contact's variable by name rather than ID?”
Tell an agent destructive · confirm first
Delete variable {variable_name} from contact {contact_id}.
Clear the value of variable {variable_id} on bot subscriber {contact_id}.
PUT /contacts/mark-read Mark a contact's chat messages as read · Mark messages as read #
Ask an LLM
“Can I reset the unread count on a subscriber's chat to zero?”
“How do I mark all of a contact's messages as read?”
Tell an agent
Mark all messages from contact {contact_id} as read.
Clear the unread counter for the chat with {contact_id}.
PUT /contacts/mark-unread Mark a contact's chat as unread · Mark a chat with the contact as unread #
Ask an LLM
“Can I flag a chat as unread so I remember to come back to it?”
“Is there a way to mark a subscriber's last message unread again?”
Tell an agent
Mark the chat with contact {contact_id} as unread.
Flag the last message from {contact_id} as unread.
POST /contacts/setTag Tag a chatbot contact · Assign a tag to a contact #
Ask an LLM
“How do I add tags to a chatbot subscriber?”
“Can I assign several tags to a bot contact in one call?”
Tell an agent
Tag contact {contact_id} with {tags}.
Assign tags {tags} to bot subscriber {contact_id}.
POST /contacts/deleteTag Remove a tag from a chatbot contact · Remove a tag from a contact #
Ask an LLM
“How do I untag a chatbot subscriber?”
“Can I take one tag off a bot contact?”
Tell an agent destructive · confirm first
Remove tag {tag} from contact {contact_id}.
Untag bot subscriber {contact_id} from {tag}.
POST /contacts/disable Stop campaigns and autoflows to a contact · Disable contact #
Ask an LLM
“Can I stop sending campaigns and autoflows to a chatbot subscriber without deleting them?”
“How do I disable a contact in my bot audience?”
Tell an agent
Disable contact {contact_id} so campaigns and autoflows skip them.
Turn off all bot messaging to subscriber {contact_id}.
POST /contacts/enable Re-enable a disabled contact · Enable contact #
Ask an LLM
“How do I resume campaigns to a subscriber I previously disabled?”
“Can I re-enable a chatbot contact in my audience?”
Tell an agent
Enable contact {contact_id} again.
Resume campaigns and autoflows for disabled subscriber {contact_id}.
POST /contacts/delete Delete a chatbot contact from the audience · Delete contact #
Ask an LLM
“What happens if I delete a chatbot subscriber — can they come back?”
“Can I remove a contact from my bot's audience and subscriber list?”
Tell an agent destructive · confirm first
Delete bot contact {contact_id} from the audience.
Remove subscriber {contact_id} from my chatbot's audience list.
GET /contacts/getPauseAutomation Check how long autoflows are paused for a contact · Get remaining time for automation pause #
Ask an LLM
“How much time is left on an autoflow pause for a subscriber?”
“Are autoflows currently paused for this chatbot contact?”
Tell an agent
Show the remaining autoflow pause time for contact {contact_id}.
Check whether automation is paused for subscriber {contact_id}.
POST /contacts/setPauseAutomation Pause autoflows for a contact · Pause autoflows for a contact #
Ask an LLM
“Can I pause a bot's automated flows while a human agent talks to a subscriber?”
“How do I stop autoflows for a contact for a set number of minutes?”
Tell an agent
Pause autoflows for contact {contact_id} for {minutes} minutes.
Hold all automation for subscriber {contact_id} for {minutes} minutes.
POST /contacts/deletePauseAutomation Resume paused autoflows for a contact · Resume autoflows for a contact #
Ask an LLM
“How do I end an autoflow pause early for a subscriber?”
“Can I turn the bot's automation back on for a contact right away?”
Tell an agent
Resume autoflows for contact {contact_id}.
Cancel the automation pause on subscriber {contact_id}.
GET /contacts/notes List operator notes on a chatbot contact · Get a list of contact's operator notes #
Ask an LLM
“What operator notes have agents left about a chat subscriber?”
“Can I read the internal notes on a bot contact?”
Tell an agent
List operator notes for contact {contact_id} on bot {bot_id}.
Show the internal agent notes about subscriber {contact_id} in bot {bot_id}.
POST /contacts/createNote Add an operator note to a chatbot contact · Send operator note #
Ask an LLM
“How can an agent leave an internal note on a chat subscriber?”
“Can I add an operator note that the contact won't see?”
Tell an agent
Add operator note {text} to contact {contact_id} on bot {bot_id}.
Leave an internal agent note for subscriber {contact_id} in bot {bot_id}: {text}.
POST /contacts/updateNote Edit an operator note on a chatbot contact · Update operator note #
Ask an LLM
“Can I edit an operator note that's already on a chat subscriber?”
“How do I fix the text of an existing agent note?”
Tell an agent
Change operator note {note_id} on contact {contact_id} in bot {bot_id} to {text}.
Rewrite agent note {note_id} for subscriber {contact_id} on bot {bot_id} as {text}.
POST /contacts/deleteNote Delete an operator note from a chatbot contact · Update operator note #
Ask an LLM
“Can I remove an operator note I no longer need from a chat subscriber?”
“What do I need to delete one agent note from a bot contact?”
Tell an agent destructive · confirm first
Delete operator note {note_id} from contact {contact_id} on bot {bot_id}.
Remove agent note {note_id} from subscriber {contact_id} in bot {bot_id}.
POST /contacts/operators/assign Assign an operator to a contact's chat · Assign a responsible for the chat #
Ask an LLM
“How do I hand a chat over to a specific team member?”
“Can I make one operator responsible for a subscriber's conversation?”
Tell an agent
Assign operator {operator_id} to the chat with contact {contact_id}.
Make {operator_id} responsible for subscriber {contact_id}'s chat.
POST /contacts/operators/unAssign Unassign operators from a contact's chat · Unassign responsible operators for the chat #
Ask an LLM
“Can I remove whoever is assigned to a subscriber's chat?”
“How do I put a chat back into the unassigned queue?”
Tell an agent
Unassign all operators from the chat with contact {contact_id}.
Clear the responsible agent on subscriber {contact_id}'s conversation.
POST /contacts/openChat Open a contact's chat · Open chat for a contact #
Ask an LLM
“Can I mark a subscriber's chat as open to raise its priority?”
“How do I reopen a conversation so agents see it first?”
Tell an agent
Open the chat with contact {contact_id}.
Raise the priority of subscriber {contact_id}'s conversation by opening it.
POST /contacts/closeChat Close a contact's chat · Close chat for a contact #
Ask an LLM
“How do I close a conversation once it's resolved?”
“Can I lower a chat's priority by marking it closed?”
Tell an agent
Close the chat with contact {contact_id}.
Mark subscriber {contact_id}'s conversation as closed.
POST /sms/numbers Add phone numbers to an SMS mailing list · Add phone numbers to a mailing list #
Ask an LLM
“How do I add phone numbers to a mailing list for SMS campaigns?”
“Can I load a batch of plain phone numbers into an address book?”
Tell an agent
Add phones {phones} to mailing list {addressBookId}.
Import these numbers into address book {addressBookId}: {phones}.
PUT /sms/numbers Update variables for many SMS numbers in a list · Update variables for multiple phone numbers #
Ask an LLM
“Can I update the same variables on many phone numbers in a mailing list at once?”
“What's the bulk way to change SMS contact variables?”
Tell an agent
Set variables {variables} on phones {phones} in mailing list {addressBookId}.
Bulk-update SMS variables {variables} for numbers {phones} in list {addressBookId}.
DELETE /sms/numbers Remove phone numbers from an SMS mailing list · Remove phone numbers from a mailing list #
Ask an LLM
“How do I take phone numbers out of an SMS mailing list?”
“Can I delete several numbers from an address book at once?”
Tell an agent destructive · confirm first
Remove phones {phones} from mailing list {addressBookId}.
Delete numbers {phones} from address book {addressBookId}.
POST /sms/numbers/variables Add phone numbers with variables to a mailing list · Add phone numbers with complex variables #
Ask an LLM
“Can I add phone numbers to a list together with per-number variables like name?”
“What's the way to import SMS contacts with complex variables attached?”
Tell an agent
Add phones with their variables {phones} to mailing list {addressBookId}.
Import numbers plus personalization data {phones} into address book {addressBookId}.
PUT /addressbooks/{id}/phone Change the phone number tied to an email in a list · Change a phone number for a contact #
Ask an LLM
“How do I change the phone number of a subscriber in a mailing list, matched by their email?”
“Can I update a list subscriber's phone using their email address?”
Tell an agent
Set the phone for {email} in mailing list {id} to {phone}.
In address book {id}, change subscriber {email}'s number to {phone}.
POST /addressbooks/{id}/phones/variable Change variables for one phone number in a list · Change variables for a single phone contact #
Ask an LLM
“Can I update the variables on a single phone contact in a mailing list?”
“How do I edit personalization data for just one SMS number?”
Tell an agent
Set variables {variables} for phone {phone} in mailing list {id}.
Update just number {phone} in address book {id} with {variables}.
GET /sms/numbers/info/{addressBookId}/{phoneNumber} Get details of a phone number in a mailing list · Get information for a specific phone number #
Ask an LLM
“What variables and status are stored for a phone number in my SMS list?”
“Is a particular number in a given address book?”
Tell an agent
Get info on phone {phoneNumber} in mailing list {addressBookId}.
Show what address book {addressBookId} holds for number {phoneNumber}.
GET /contacts/getByTelegramId Find a bot contact by Telegram ID · Get contact by Telegram ID #
Ask an LLM
“Which bot subscriber matches a Telegram user ID?”
“Can I look up a Telegram contact through a business connection?”
Tell an agent
Find the contact with Telegram ID {telegram_id} in bot {bot_id}.
Look up Telegram user {telegram_id} on bot {bot_id} via business connection {business_connection_id}.
POST /contacts/react React to a contact's message with an emoji · React to a message #
Ask an LLM
“Can my bot react to a subscriber's message with an emoji?”
“How do I add a thumbs-up reaction to a specific chat message?”
Tell an agent
React with {reaction} to message {message_id} from contact {contact_id}.
Put a {reaction} reaction on {contact_id}'s message {message_id}.
GET /contacts/getByPhone Find a bot contact by phone number · Get contact info by phone number #
Ask an LLM
“Which chatbot subscriber has a given phone number?”
“Can I pull a bot contact's tags and variables using their phone?”
Tell an agent
Find the contact with phone {phone} in bot {bot_id}.
Look up bot {bot_id}'s subscriber by number {phone}.
POST /contacts/sendByPhone Send a free-form message to a contact by phone · Send a free message to a contact by phone number #
Ask an LLM
“Can I message an active chatbot subscriber using only their phone number?”
“Is it possible to send an image or file to a contact by phone instead of contact ID?”
Tell an agent
Send {message} to phone {phone} through bot {bot_id}.
Message the active contact at {phone} on bot {bot_id} with a free-form {message}.
POST /contacts/sendTemplate Send an approved template message to a contact · Send a template message to the specified contact #
Ask an LLM
“How do I send a pre-approved template message to an existing subscriber by contact ID?”
“Can a template I send include buttons, variables or an image header?”
Tell an agent
Send template {template} to contact {contact_id}.
Deliver approved template message {template} to subscriber {contact_id}.
POST /contacts/sendTemplateByPhone Send an approved template message to a phone number · Send a template message to a contact by phone number #
Ask an LLM
“Can I send a template message to a phone number that isn't a contact yet?”
“What's the way to start a conversation with a new number using an approved template?”
Tell an agent
Send template {template} to phone {phone} via bot {bot_id}.
Reach new number {phone} on bot {bot_id} with approved template {template}.
POST /contacts/setName Set a chatbot contact's display name · Set the contact's name #
Ask an LLM
“Can I change how a chatbot subscriber's name is displayed?”
“How do I rename a bot contact?”
Tell an agent
Set the name of contact {contact_id} to {name}.
Rename bot subscriber {contact_id} as {name}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sendpulse:sendpulse-contacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sendpulse-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sendpulse Contacts API
  x-refined-note:
  - x-ai-description differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Contacts across 5 of this provider''s published API definitions: sendpulse-crm-openapi.yml, sendpulse-facebook-openapi.yml, sendpulse-sms-openapi.yml, sendpulse-telegram-openapi.yml, sendpulse-whatsapp-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sendpulse.com/crm/v1
- description: ''
  url: https://api.sendpulse.com/messenger
- url: https://api.sendpulse.com
- description: ''
  url: https://api.sendpulse.com/telegram
- description: ''
  url: https://api.sendpulse.com/whatsapp
security:
- apiKey: []
- oauth2: []
tags:


# --- truncated at 32 KB (225 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sendpulse/refs/heads/main/openapi/sendpulse-contacts-api-openapi.yml