How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

SendPulse Contacts API

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

SendPulse Contacts API is one of 85 APIs that SendPulse publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Contacts. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 57 operations across 51 paths, and defines 36 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

Requests are made against 9 base URLs: https://api.sendpulse.com/crm/v1, https://api.sendpulse.com/messenger, https://api.sendpulse.com/instagram, https://api.sendpulse.com/live-chat, https://api.sendpulse.com, https://api.sendpulse.com/telegram, https://api.sendpulse.com/tiktok, https://api.sendpulse.com/viber/chatbots, https://api.sendpulse.com/whatsapp.

57 operations 51 paths 36 schemas 4 DELETE14 GET33 POST6 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
Base URL
https://api.sendpulse.com
Authentication
HTTP Bearer, OAuth 2.0, OAuth 2.0
Resource Areas
1

Authentication & Security 3

SendPulse Contacts API declares 3 security schemes for authenticating requests. It accepts HTTP bearer tokens (API Key) (apiKey). It supports OAuth 2.0 (outh2) using the clientCredentials flow. It supports OAuth 2.0 (oauth2) using the clientCredentials flow. By default, every request must be authenticated.

  • apiKey — Static API Key authentication. A long-lived token generated manually in the SendPulse account settings.
  • outh2 — OAuth 2.0 Client Credentials flow for temporary access tokens.
  • oauth2 — OAuth 2.0 Client Credentials flow for temporary access tokens.

Paths & Operations 57

Across 51 paths, the API surfaces 57 operations — 4 DELETE, 14 GET, 33 POST, 6 PUT. Each is listed below with its method, path, parameters, and response codes.

Contacts 57
POST
/contacts/get-list
Get contacts list
getContactsList body → 200
POST
/contacts/get-list-by-email
Search contacts by email
getContactListByEmail body → 200
POST
/contactsdeprecated
(Deprecated). Use POST /contacts/create instead to create a new contact
createContact body → 200
POST
/contacts/create
Create a new contact
createContact body → 200
GET
/contacts/{contactId}
Get information about a contact by ID
getContactById 1 param → 200
PUT
/contacts/{contactId}
Update information about the contact
updateContact 1 param body → 200
DELETE
/contacts/{contactId}
Remove contact by ID
deleteContactById 1 param → 204
GET
/contacts/{contactId}/deals
Get all deals that related to contact
getContactDeals 1 param → 200
POST
/contacts/{contactId}/comments
Add a note to a contact
addContactComment 1 param body → 200
PUT
/contacts/{contactId}/comments/{commentId}
Update contact note
updateContactComment 2 params body → 200
DELETE
/contacts/{contactId}/comments/{commentId}
Remove contact note
deleteContactComment 2 params → 204
GET
/contacts/{contactId}/edu-payments
Get EDU payments by contact
getContactEduPayments 1 param → 200
GET
/contacts/{contactId}/edu-statistic
Get EDU statistics for a contact
getContactEduStatistic 1 param → 200
GET
/contacts/external/{externalContactId}
Get contact exists by external contact Id
getContactByExternalId 1 param → 200
GET
/contacts/messenger-external/{messengerContactId}
Get contact by messenger contact id
getContactByMessengerExternalId 1 param → 200
POST
/contacts/{contactId}/relation/{companyId}
Add contact to a company
addContactCompanyRelation 2 params → 200
DELETE
/contacts/{contactId}/relation/{companyId}
Delete a contact from the company
deleteContactCompanyRelation 2 params → 200
GET
/contacts/get
Get contact info via a contact ID
getContact 1 param → 200
GET
/contacts/getByTag
Get a list of contacts by tag
getContactsByTag 4 params → 200
GET
/contacts/getByVariable
Get a list of contacts by variable
getContactsByVariable 6 params → 200
POST
/contacts/sendText
Send a text message to a contact
sendTextToContact body → 200
POST
/contacts/send
Send message to a contact
sendContactMessage body → 200
POST
/contacts/sendTyping
Send typing indicator
sendTypingIndicator body → 200
POST
/contacts/setVariable
Assign a variable to contact
setContactVariable body → 200
POST
/contacts/deleteVariable
Delete a variable the selected contact
deleteContactVariable body → 200
PUT
/contacts/mark-read
Mark messages as read
markContactMessagesAsRead 1 param → 200
PUT
/contacts/mark-unread
Mark a chat with the contact as unread
markContactUnread 1 param → 200
POST
/contacts/setTag
Assign a tag to a contact
setContactTag body → 200
POST
/contacts/deleteTag
Remove a tag from a contact
deleteContactTag body → 200
POST
/contacts/disable
Disable contact
disableContact body → 200
POST
/contacts/enable
Enable contact
enableContact body → 200
POST
/contacts/delete
Delete contact
deleteContact body → 200
GET
/contacts/getPauseAutomation
Get remaining time for automation pause
getContactPauseAutomation 1 param → 200
POST
/contacts/setPauseAutomation
Pause autoflows for a contact
setContactPauseAutomation body → 200
POST
/contacts/deletePauseAutomation
Resume autoflows for a contact
deletePauseAutomation body → 200
GET
/contacts/notes
Get a list of contact's operator notes
getContactNotes 2 params → 200
POST
/contacts/createNote
Send operator note
createContactNote body → 200
POST
/contacts/updateNote
Update operator note
updateContactNote body → 200
POST
/contacts/deleteNote
Update operator note
body → 200
POST
/contacts/operators/assign
Assign a responsible for the chat.
assignContactOperator body → 200
POST
/contacts/operators/unAssign
Unassign responsible operators for the chat.
unAssignContactOperators body → 200
POST
/contacts/openChat
Open chat for a contact
openContactChat body → 200
POST
/contacts/closeChat
Close chat for a contact
closeContactChat body → 200
POST
/contacts/setName
Set the contact's name
setContactName body → 200
POST
/sms/numbers
Add phone numbers to a mailing list
addSmsNumbers body → 200401403
PUT
/sms/numbers
Update variables for multiple phone numbers
updateSmsVariablesBatch body → 200401403
DELETE
/sms/numbers
Remove phone numbers from a mailing list
removeSmsNumbers body → 200401403
POST
/sms/numbers/variables
Add phone numbers with complex variables
addSmsNumbersWithVariables body → 200401403
PUT
/addressbooks/{id}/phone
Change a phone number for a contact
updateContactPhone 1 param body → 200401403
POST
/addressbooks/{id}/phones/variable
Change variables for a single phone contact
updateSmsVariablesSingle 1 param body → 200401403
GET
/sms/numbers/info/{addressBookId}/{phoneNumber}
Get information for a specific phone number
getSmsNumberInfo 2 params → 200401403
GET
/contacts/getByTelegramId
Get contact by Telegram ID
getContactByTelegramId 3 params → 200
POST
/contacts/react
React to a message
reactToMessage body → 200
GET
/contacts/getByPhone
Get contact info by phone number
getContactByPhone 2 params → 200
POST
/contacts/sendByPhone
Send a free message to a contact by phone number
sendMessageToContactByPhone body → 200
POST
/contacts/sendTemplate
Send a template message to the specified contact
sendTemplateToContact body → 200
POST
/contacts/sendTemplateByPhone
Send a template message to a contact by phone number
sendTemplateByPhone body → 200

Schemas 36

The contract defines 36 schemas that model the data the API accepts and returns. The most detailed are Deal (22 properties), Contact (19 properties), Contact_4 (11 properties), Message (11 properties). Each schema is shown below with its type and property counts.

ContactAttributeValue
object
10 properties
DealHistory
object
6 properties
ContactMessenger
object
8 properties
Contact
object
19 properties
ContactEmail
object
3 properties
ContactHistory
object
6 properties
FilterExpressionProperty
string
| Possible values: - eq (=) - neq (!=) - gt () - gte (=) - lt (<) - lte (<=) - like - in (check among list of values).
ContactPhone
object
3 properties
EntityAttachment
object
6 properties
ContactTag
object
6 properties
Deal
object
22 properties
DealSourceType
object
2 properties
ContactComment
object
8 properties
DealAttributeValue
object
9 properties
MessengerTypeProperty
integer
| Messenger type. Possible values: 1 — Telegram 2 — Facebook 4 — Instagram 5 — WhatsApp 6 — Viber
AttributesProperty
array
Filter by attributes only
DealExpiration
object
7 properties
DealStatusProperty
integer
| Step status 0 — inactive (deleted by user) 1 — active 2 - completed deal as “Unsuccessful” 3 - completed deal as “Successful”
DealComment
object
10 properties
Contact_2
object
11 properties
Campaign
object
8 properties
SuccessResponse
object
2 properties
Message
object
11 properties
Contact_3
object
10 properties
Message_2
object
8 properties
Contact_4
object
11 properties
SuccessResponse_2
object
2 properties
Message_3
object
11 properties
Contact_5
object
11 properties
Message_4
object
11 properties
Contact_6
object
10 properties
Message_5
object
8 properties
Contact_7
object
10 properties
Message_6
object
8 properties
Contact_8
object
10 properties
Message_7
object
10 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

sendpulse-contacts-api-openapi.yml Raw ↑

Other APIs SendPulse publishes across the network.

SendPulse Account API
SendPulse Attachments API
SendPulse Automation Flows API
SendPulse Balance API
SendPulse Blacklist API
SendPulse Board attributes API
SendPulse Bots API
SendPulse Bounces API
SendPulse Campaigns API
SendPulse Chats API
SendPulse Checklist Items API
SendPulse Company API
Where this information came from

This is an independent, third-party profile of SendPulse Contacts API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.