Pure CallerID provides a robust suite of APIs that allow you to easily manage the configuration and status of your Engage Messaging campaigns. With these endpoints, you are able to retrieve current campaign status, update messaging, and activate or pause approved campaigns and lists.
Campaign Object
{
"events": [
{
"timestamp": "2025-02-17T21:18:50.891Z",
"type": "INFO",
"message": "Initialized"
}
],
"id": "67b3a7bb0fcd117088ca5020",
"orgId": 1,
"workspaceId": 14,
"name": "New campaign",
"shardingHashCode": 126739791,
"created": "2025-02-17T21:18:50.891Z",
"updated": "2025-04-01T12:35:51.532Z",
"campaignStatus": "READY",
"sendingStatus": "IDLE",
"sendingStatusDescription": null,
"nextRunTime": null,
"senderSourceType": "SHORT_CODE",
"senderSourceId": "b1223d69-714f-4525-aae0-4c2e1dd36fbe",
"aegisWorkflowId": null,
"carrierDailyLimits": [],
"schedule": {
"monday": [
{
"start": 480,
"end": 1260
}
],
"tuesday": [
{
"start": 480,
"end": 1260
}
],
"wednesday": [
{
"start": 480,
"end": 1260
}
],
"thursday": [
{
"start": 480,
"end": 1260
}
],
"friday": [
{
"start": 480,
"end": 1260
}
],
"saturday": [],
"sunday": [],
"exceptions": []
},
"messages": {
"outgoingMessage": "Hi {{FirstName}}, this Pure CallerId reaching out to you to see if you would like to participate in our upcoming webinar on trust and compliance in 2025. Would you like to join us?",
"responseMessage": "",
"helpMessage": "If you need assistance, please visit https://support.purecallerid.com",
"stopMessage": "No problem, you have been opted out. If you wish to receive messages again, just reply START.",
"startMessage": "Awesome. Welcome back!"
},
"webhooks": {
"deliveryResult": null,
"conversationStarted": null,
"incomingMessage": null,
"disposition": null,
"optOut": null,
"optIn": null
},
"notifications": {
"sendConversationEmail": false,
"conversationEmail": {
"to": [],
"cc": [],
"bcc": [],
"from": null,
"replyTo": null,
"subject": null,
"htmlBody": null,
"textBody": null
}
},
"customFields": [],
"dispositions": [
{
"id": "6e0bf119-c8a1-402f-83c1-318bb6414c7a",
"disposition": "SALE",
"success": true,
"doNotContact": false
},
{
"id": "f741a3af-0beb-465b-8cf9-099eef567f45",
"disposition": "OPT OUT",
"success": false,
"doNotContact": true
},
{
"id": "25930991-5d57-49bd-a6a1-593f7ac1ea99",
"disposition": "CALL BACK",
"success": false,
"doNotContact": false
}
],
"zendeskApprovalTicketId": null,
"allCampaignFields": [
"Phone",
"Zip",
"FirstName",
"LastName",
"Address1",
"Address2",
"City",
"State"
]
}
- events: Array of event objects; each with timestamp (ISO 8601 datetime), type (string), and message (string).
- id: String; unique identifier for the campaign.
- orgId: Number; organization identifier.
- workspaceId: Number; workspace identifier for managing the campaign.
- name: String; name of the campaign.
- shardingHashCode: Number; numeric code for sharding distribution.
- created: String (ISO 8601 datetime); campaign creation timestamp.
- updated: String (ISO 8601 datetime); last update timestamp.
- campaignStatus: Enum (DRAFT, PENDING_APPROVAL, READY, ACTIVE); current campaign lifecycle stage.
- sendingStatus: Enum (IDLE, SENDING); current state of message dispatch.
- sendingStatusDescription: String (nullable); additional details regarding sending status.
- nextRunTime: String (ISO 8601 datetime, nullable); scheduled timestamp for the next run.
- senderSourceType: Enum (SHORT_CODE, LONG_CODE, TOLL_FREE); type of sender source.
- senderSourceId: String; identifier for the chosen sender source.
- aegisWorkflowId: String (nullable); identifier for any associated Aegis workflow.
- carrierDailyLimits: Array; list of daily sending limits per carrier.
- schedule: Object; defines permitted messaging times (in minutes past midnight in the lead’s local timezone) for each day and exceptions.
- messages: Object; contains outgoingMessage, responseMessage, helpMessage, stopMessage, and startMessage templates.
- webhooks: Object; URLs or callbacks for events like delivery, conversation start, incoming messages, disposition changes, opt-out, and opt-in.
- notifications: Object; configuration for sending conversation emails including recipient details and email parameters.
- customFields: Array; list of custom fields defined for the campaign.
- dispositions: Array of objects; each includes id, disposition label, a success flag, and a doNotContact flag.
- zendeskApprovalTicketId: String (nullable); Zendesk ticket identifier for campaign approval.
- allCampaignFields: Array of strings; lists all campaign data fields (e.g., Phone, Zip, FirstName, etc.).
Retrieve Campaign List
Retrieves a complete list of all text messaging campaigns within your Pure CallerID Engage Messaging account. This endpoint returns essential campaign details—such as unique identifiers, status, schedule settings, and statistical summaries—helping developers quickly enumerate available campaigns and assess their configurations.
URL: https://core.purecallerid.app/api/public/engage/campaigns
Method: GET
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Return: A JSON array of campaign objects in the workspace
Retrieve Single Campaign
Fetches detailed information for a specific text messaging campaign. Use this endpoint to obtain comprehensive data including campaign metadata, current status, configuration settings, message content, and performance metrics, which is ideal for troubleshooting or review before updates.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}
Method: GET
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Return: A single campaign objects in the workspace
Update Campaign Messaging (and request approval)
Enables modifications to the message content or settings associated with an existing campaign. This endpoint supports updating the body of text messages, sender information, scheduling parameters, and other dynamic content, ensuring that campaigns remain aligned with evolving communication strategies and compliance requirements.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}/messages
Method: POST
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Request Body: Leave blank or null anything that does not require updating:
{
"outgoingMessage": "Hi {{FirstName}}, this Pure CallerId reaching out to you to see if you would like to participate in our upcoming webinar on trust and compliance in 2025. Would you like to join us?",
"responseMessage": "",
"helpMessage": "",
"stopMessage": "",
"startMessage": ""
}
Return: The single campaign object that was activated via the request.
Activate Campaign
Transitions a campaign’s status from inactive or paused to active, allowing messages to start being sent. It is used when you are ready to roll out the messaging initiative or resume a temporarily halted campaign.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}/activate
Method: POST
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Return: The single campaign object that was activated via the request.
Pause Campaign
Temporarily suspends an active messaging campaign. When invoked, the endpoint halts all message dispatches while preserving the campaign’s configuration and historical data. This is useful for situations where a campaign requires adjustments, compliance reviews, or temporary market suspension without complete termination.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}/pause
Method: POST
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Return: The single campaign object that was paused via the request.
Active Lead List (by Name)
Activates a specific lead list using its descriptive name as an identifier. This endpoint is designed to streamline lead management by enabling you to quickly bring a named lead list into an active state for message distribution, ensuring that the latest contact data is engaged in your campaigns.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}/lists/activate
Method: POST
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Input:
- listName -URL Encoded query param - the verbatim list name that was loaded into the messaging campaign
Return: The single campaign object that was paused via the request.
Pause Lead List (by Name)
Pauses message processing for a designated lead list identified by its name. This action is beneficial when you need to halt communications with a segment of leads temporarily—for instance, during list maintenance, updates, or segmentation adjustments—while retaining the association and configuration for future reactivation.
URL: https://core.purecallerid.app/api/public/engage/campaigns/{id}/lists/pause
Method: POST
Content-Type: application/json
Security: A custom HTTP header must be included in the POST request. The Header name is "X-API-KEY" and the value passed within this header is one of the encrypted API keys associated with your workspace.
Input:
- listName -URL Encoded query param - the verbatim list name that was loaded into the messaging campaign
Return: The single campaign list object that was paused via the request.
Webhooks
There are two webhook events that are available for registration. These webhooks can alert your system to changes in the status of Campaigns or Lists.
- MessagingCampaignStatus - Triggers every time the status of a campaign changes. This includes transitions between DRAFT, PENDING_APPROVAL, READY, ACTIVE, etc. The entire Campaign object will be provided as the body of the webhook event.
- MessagingListStatus - Triggers every time the status of a campaign list changes. This includes transitions between ACTIVE and READY. The entire Campaign List object will be provided as the body of the webhook event.