REST API v1

Pulse Developer API.
JSON REST Endpoints.

Automate conversation replies, download transcripts, sync visitor listings, and integrate CRM feeds with our robust developer-centric JSON endpoints.

API Authentication

All Pulse API requests require a Secret API key sent inside the Authorization HTTP header.

Header structure

Authorization: Bearer pls_secret_YOUR_KEY

Example cURL Auth Check

curl https://pulse.chat/api/v1/auth-check \
  -H "Authorization: Bearer pls_secret_827ab1n"
POST/api/v1/messages

Send Message

Send a live chat message from an agent, visitor, or automated bot inside a specific conversation thread.

HTTP Headers

Authorization: Bearer <YOUR_API_KEY>Your Pulse account secret API Key.
Content-Type: application/jsonRequired application type.

JSON Body Attributes

conversationIdstring required

The unique ID of the conversation thread.

contentstring required

Text content of the message.

senderTypestring required

Must be one of: 'visitor', 'agent', or 'system'.

senderNamestring optional

Custom name override for the sender.

Request cURL
curl -X POST https://pulse.chat/api/v1/messages \
  -H "Authorization: Bearer pls_secret_827ab1n" \
  -H "Content-Type: application/json" \
  -d '{
    "conversationId": "conv_827f31n",
    "content": "Hello! Our support team is looking into this.",
    "senderType": "agent",
    "senderName": "Pulse Assistant"
  }'
Response JSON
{
  "success": true,
  "data": {
    "messageId": "msg_90a823b",
    "conversationId": "conv_827f31n",
    "content": "Hello! Our support team is looking into this.",
    "senderType": "agent",
    "senderName": "Pulse Assistant",
    "createdAt": "2026-06-14T11:26:00Z"
  }
}
GET/api/v1/conversations

List Conversations

Retrieve a paginated list of conversations associated with your widgets, optionally filtered by tags or status.

HTTP Headers

Authorization: Bearer <YOUR_API_KEY>Your Pulse account secret API Key.

URL Query Parameters

widgetIdstring optional

Filter threads by widget ID.

statusstring optional

Filter by status: 'open', 'resolved', or 'snoozed'.

limitinteger optional

Number of rows to return (default 20, max 100).

Request cURL
curl -G https://pulse.chat/api/v1/conversations \
  -H "Authorization: Bearer pls_secret_827ab1n" \
  -d "status=open" \
  -d "limit=2"
Response JSON
{
  "success": true,
  "data": [
    {
      "id": "conv_827f31n",
      "widgetId": "wid_01hqb7z",
      "status": "open",
      "visitorName": "Jane Doe",
      "visitorEmail": "jane.doe@company.com",
      "lastMessage": "I need help configuring my API webhook keys.",
      "updatedAt": "2026-06-14T11:24:50Z"
    },
    {
      "id": "conv_611e99c",
      "widgetId": "wid_01hqb7z",
      "status": "open",
      "visitorName": "John Smith",
      "visitorEmail": "john.smith@gmail.com",
      "lastMessage": "Is support online?",
      "updatedAt": "2026-06-14T11:22:15Z"
    }
  ],
  "pagination": {
    "total": 2,
    "limit": 2,
    "hasMore": false
  }
}
GET/api/v1/widgets

List Widgets

Query all active widget configurations available on your workspace (e.g. customized themes, online status).

HTTP Headers

Authorization: Bearer <YOUR_API_KEY>Your Pulse account secret API Key.
Request cURL
curl https://pulse.chat/api/v1/widgets \
  -H "Authorization: Bearer pls_secret_827ab1n"
Response JSON
{
  "success": true,
  "data": [
    {
      "id": "wid_01hqb7z",
      "name": "Main Website Widget",
      "primaryColor": "#3b82f6",
      "online": true,
      "greetingMessage": "Welcome! Let us know how we can help.",
      "createdAt": "2026-06-14T09:00:00Z"
    }
  ]
}