CognitivPulse REST API

The CognitivPulse API lets you programmatically manage contacts, campaigns, social posts, CRM deals, and analytics from any external tool. All endpoints accept and return JSON unless otherwise noted.

Authentication

All requests require a Bearer token:
Authorization: Bearer cp_...

Rate limits

Contact import: 20 requests/min per org. Other endpoints: standard limits apply. Exceeded limits return 429 with a Retry-After header.

Plan requirements

Most endpoints require Pro or above. CSV export and API key generation require the Business plan. Upgrade at Settings → Billing.

Contacts

GET/api/v1/contactsPro+

Returns a paginated list of contacts for your organization. Supports full-text search, tag filtering, and subscription status filtering.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
pageintegeroptionalPage number (default: 1)
limitintegeroptionalResults per page, max 100 (default: 25)
searchstringoptionalFull-text search across email, first_name, last_name
tagstringoptionalFilter contacts by tag value
statusstringoptionalFilter by subscription status: `all` (default), `subscribed`, `unsubscribed`
sortstringoptionalSort field: `created_at` (default), `email`, `lead_score`
orderstringoptionalSort direction: `desc` (default) or `asc`

Responses

200Paginated contacts list
{
  "contacts": [...],
  "total": 142,
  "page": 1,
  "limit": 25,
  "pages": 6,
  "allTags": ["customer", "lead"]
}
401Missing or invalid authentication
403Plan limit reached — upgrade required

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/contacts?page=1&limit=25&search=john" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/api/v1/contacts/:idPro+

Fetch a single contact by ID. The contact must belong to your organization.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredContact UUID

Responses

200The contact object
{
  "contact": { "id": "uuid", "email": "jane@example.com", "first_name": "Jane", ... }
}
400Invalid contact UUID format
401Missing or invalid authentication
404Contact not found in your organization

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/api/v1/contacts/:id/timelinePro+

Unified, paginated activity feed for one contact — merges email sends/opens/clicks, SMS sends/deliveries/replies, form submissions, website visits, lead score changes, conversions, segment changes, and audit events into one chronologically-sorted list.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredContact UUID

Query Parameters

NameTypeRequiredDescription
beforeISO dateoptionalCursor — page further back in time
limitintegeroptionalResults per page, max 100 (default: 30)

Responses

200Chronological event feed
{
  "events": [
    { "type": "sms_reply", "label": "Replied: \"Yes please!\"", "occurredAt": "2026-08-10T14:00:00Z", "metadata": {} }
  ],
  "nextCursor": "2026-08-09T09:15:00Z"
}
400Invalid contact UUID format
401Missing or invalid authentication
404Contact not found in your organization

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/timeline?limit=30" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/contacts/:id/sms-replyPro+

Send a single SMS to a contact — gated by the same TCPA compliance checks as any other send, and recorded on that contact's SMS conversation (visible on the contact timeline and in the SMS Inbox). Replying to an unassigned conversation auto-claims it for the sender.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredContact UUID

Request Body

NameTypeRequiredDescription
messagestringrequiredSMS body text

Responses

200Sent
{ "success": true }
400Invalid contact UUID, or missing `message`
401Missing or invalid authentication
404Contact not found in your organization
422Compliance check failed (opted out, no phone on file, etc.)
500Provider send failed

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/sms-reply" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"Thanks for your interest! A trainer will call you today."}'
POST/api/v1/contactsPro+

Create one or more contacts. Accepts either a single contact object or a `contacts` array for bulk import. Duplicate emails are upserted (email is unique per org).

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

Pass a single object or wrap multiple contacts in a `contacts` array.

NameTypeRequiredDescription
emailstringrequiredContact email address (lowercased and trimmed)
first_namestringoptionalFirst name
last_namestringoptionalLast name
phonestringoptionalPhone number
tagsstring[]optionalArray of tag strings
companystringoptionalStored in `custom_fields.company`
notesstringoptionalStored in `custom_fields.notes`
contactsobject[]optionalFor bulk import: array of contact objects with the same fields above

Responses

201Contacts created / upserted
{
  "contacts": [
    { "id": "uuid", "email": "jane@example.com", ... }
  ]
}
400No valid email addresses in the payload
401Missing or invalid authentication
403Contact limit reached — upgrade required
429Rate limited (20 requests/min per org)

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/contacts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"jane@example.com","first_name":"Jane","tags":["lead"]}'
PATCH/api/v1/contacts/:idPro+

Partially update a contact. Only fields present in the request body are updated. The contact must belong to your organization.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredContact UUID

Request Body

All fields are optional — only supplied fields are updated.

NameTypeRequiredDescription
emailstringoptionalNew email address
first_namestringoptionalFirst name
last_namestringoptionalLast name
phonestringoptionalPhone number
tagsstring[]optionalReplaces the entire tags array
subscribedbooleanoptionalSubscription status
lead_scoreintegeroptionalLead score 0–100 (clamped automatically)
sourcestringoptionalOne of: `manual`, `csv_import`, `api`, `form`
companystringoptionalStored in `custom_fields.company`
notesstringoptionalStored in `custom_fields.notes`

Responses

200Updated contact object
{
  "contact": { "id": "uuid", "email": "jane@example.com", ... }
}
400Invalid contact UUID format
401Missing or invalid authentication
404Contact not found in your organization
500Database error

Example Request

cURL
curl -X PATCH "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lead_score":75,"tags":["hot-lead","demo-requested"]}'
DELETE/api/v1/contacts/:idPro+

Permanently delete a contact. The contact must belong to your organization. This action cannot be undone.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredContact UUID

Responses

200Contact deleted
{ "success": true }
400Invalid contact UUID format
401Missing or invalid authentication
404Contact not found in your organization
500Database error

Example Request

cURL
curl -X DELETE "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Campaigns

GET/api/v1/campaignsPro+

Returns all email campaigns for your organization, ordered by creation date descending. Useful for pulling campaign history into reporting tools.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Responses

200Array of campaign objects
{
  "campaigns": [
    {
      "id": "uuid",
      "name": "March Newsletter",
      "status": "sent",
      "sent_count": 1240,
      "open_count": 380,
      "click_count": 95,
      "created_at": "2026-03-01T10:00:00Z"
    }
  ]
}
401Missing or invalid authentication

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/campaigns" \
  -H "Authorization: Bearer YOUR_API_KEY"

Social Posts

POST/api/v1/social/postsPro+

Schedule or immediately publish a social post to one or more connected accounts. If `scheduledAt` is omitted the post is published immediately. Per-platform content and schedule overrides are supported.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

The base content is used for all platforms unless overridden in the `overrides` map.

NameTypeRequiredDescription
contentstringrequiredPost body text (max 63,206 characters)
platformsstring[]requiredPlatforms to post to: `facebook`, `instagram`, `twitter`, `linkedin`, `pinterest`
accountIdsUUID[]requiredConnected social account UUIDs to post from
scheduledAtISO 8601optionalFuture datetime to schedule the post. Omit to publish immediately.
mediaUrlsstring[]optionalPublic URLs of media attachments
overridesobjectoptionalPer-platform overrides keyed by platform name. Each value may contain `content`, `scheduledAt`, and `mediaUrls`.

Responses

201Posts created
{
  "posts": [
    {
      "id": "uuid",
      "content": "Hello world",
      "status": "scheduled",
      "scheduled_at": "2026-04-25T09:00:00Z"
    }
  ]
}
400Request body failed validation
401Missing or invalid authentication
403Social account not found or does not belong to your organization

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/social/posts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Check out our new feature!",
    "platforms": ["twitter","linkedin"],
    "accountIds": ["ACCOUNT_UUID"],
    "scheduledAt": "2026-04-25T09:00:00Z"
  }'

CRM

GET/api/v1/crm/dealsPro+

Returns all CRM deals for your organization with associated contact details. Results are ordered by creation date descending.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Responses

200Array of deal objects
{
  "deals": [
    {
      "id": "uuid",
      "title": "Enterprise contract",
      "value": 12000,
      "currency": "usd",
      "stage": "proposal",
      "contact": { "email": "ceo@acme.com" },
      "created_at": "2026-04-01T00:00:00Z"
    }
  ]
}
401Missing or invalid authentication
403CRM feature not available on your plan

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/crm/deals" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/crm/dealsPro+

Create a new CRM deal. Deals move through a pipeline: lead → qualified → proposal → negotiation → won / lost.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

All monetary values are in the smallest currency unit (e.g. cents for USD).

NameTypeRequiredDescription
titlestringrequiredDeal title (max 200 characters)
contact_idUUIDoptionalUUID of an existing contact to associate with this deal
valuenumberoptionalDeal value (non-negative)
currencystringoptionalISO 4217 currency code (default: `usd`)
stagestringoptionalPipeline stage: `lead` (default), `qualified`, `proposal`, `negotiation`, `won`, `lost`
notesstringoptionalFree-form notes about the deal
closed_atISO 8601optionalExpected or actual close date

Responses

201Deal created
{
  "deal": {
    "id": "uuid",
    "title": "Enterprise contract",
    "stage": "lead",
    "value": 12000,
    "currency": "usd"
  }
}
400Validation error — check request body
401Missing or invalid authentication
403CRM feature not available on your plan

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/crm/deals" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Enterprise contract",
    "value": 12000,
    "stage": "proposal",
    "contact_id": "CONTACT_UUID"
  }'

Analytics

GET/api/v1/analyticsPro+

Returns aggregated analytics for a date range: traffic overview, email performance, social engagement, conversion funnel, and platform breakdown. Pro plan: max 30-day range. Business plan: max 90-day range.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
startISO 8601requiredStart of the date range (inclusive)
endISO 8601requiredEnd of the date range (inclusive)

Responses

200Analytics payload
{
  "totalVisitors": 1840,
  "pageViews": 5200,
  "trafficData": [{ "date": "2026-04-01", "visitors": 120, "page_views": 380 }],
  "trafficSources": [{ "name": "Email", "value": 620 }, { "name": "Social", "value": 310 }],
  "emailPerformance": [{ "date": "2026-04-01", "sent": 500, "opened": 140, "clicked": 42 }],
  "socialEngagement": [{ "date": "2026-04-01", "likes": 88, "shares": 12, "comments": 5 }],
  "conversionFunnel": [{ "stage": "Visitors", "count": 1200 }, ...],
  "platformPerformance": [{ "platform": "instagram", "posts": 8, "likes": 320 }],
  "emailOpens": 980,
  "clickRate": 3.4
}
400Missing `start`/`end` params, or date range exceeds plan limit
401Missing or invalid authentication
403Advanced analytics not available on your plan

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/analytics?start=2026-04-01T00:00:00Z&end=2026-04-30T23:59:59Z" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/api/v1/analytics/attributionPro+

First-touch/last-touch/linear attribution of conversions to sent email campaigns.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
startISO 8601requiredStart of the date range
endISO 8601requiredEnd of the date range
modelstringoptional`first_touch`, `last_touch` (default), or `linear`

Responses

200Attribution breakdown
{
  "model": "last_touch",
  "campaigns": [{ "campaign_id": "uuid", "campaign_name": "July Promo", "opens": 120, "clicks": 34, "attributed_conversions": 8, "conversion_rate": 1.6 }],
  "total_conversions": 8,
  "top_channel": "July Promo"
}
400Missing `start`/`end`, or invalid `model`
401Missing or invalid authentication
403Advanced analytics not available on your plan

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/analytics/attribution?start=2026-07-01&end=2026-07-31&model=last_touch" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/api/v1/analytics/cohortsPro+

Groups contacts by signup week/month, then computes the % of each cohort that opened at least one email in each subsequent period (capped at 12 months or 26 weeks).

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
startISO 8601requiredStart of the date range
endISO 8601requiredEnd of the date range
intervalstringoptional`week` or `month` (default)

Responses

200Cohort retention table
{
  "interval": "month",
  "cohorts": [{ "label": "2026-01", "size": 40, "periods": [{ "period": 0, "active": 25, "retention_pct": 62.5 }] }]
}
400Missing `start`/`end`, or invalid `interval`
401Missing or invalid authentication
403Advanced analytics not available on your plan

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/analytics/cohorts?start=2026-01-01&end=2026-06-30&interval=month" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/api/v1/analytics/exportBusiness

Downloads a CSV file with email campaign and social post performance for the given date range. Max 90-day range. Business plan only.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
startISO 8601requiredStart of the date range
endISO 8601requiredEnd of the date range (max 90 days from start)

Responses

200`Content-Type: text/csv` — downloadable CSV file with campaign and social performance rows
400Missing params or date range exceeds 90 days
401Missing or invalid authentication
403API access not available on your plan (Business only)

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/analytics/export?start=2026-04-01T00:00:00Z&end=2026-04-30T23:59:59Z" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o analytics-april.csv

Conversions

GET/api/v1/conversionsPro+

Lists recorded conversion events for your organization, optionally with a summary block.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Query Parameters

NameTypeRequiredDescription
fromISO 8601optionalOnly conversions on/after this date
toISO 8601optionalOnly conversions on/before this date
limitintegeroptionalMax results, default 50, max 200
summarybooleanoptionalSet `true` to include a `summary` block

Responses

200Conversions list
{
  "conversions": [{ "id": "uuid", "eventType": "purchase", "valueUsd": 99.99, "occurredAt": "2026-08-13T10:00:00Z" }],
  "summary": { "totalConversions": 14, "totalRevenueUsd": 1300.0 }
}
401Missing or invalid authentication

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/conversions?summary=true&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/track/conversionPro+

Records a goal conversion event (purchase, lead, booking, etc.) and links it to the most recent campaign attribution for that contact+campaign, if one exists.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

Only `eventType` is required.

NameTypeRequiredDescription
eventTypestringrequired`purchase`, `lead_created`, `appointment_booked`, `quote_requested`, `checkout_started`, `phone_call`, or `custom`
valueUsdnumberoptionalConversion value, must be > 0
currencystringoptional3-letter currency code
contactIdUUIDoptionalContact to associate with this conversion
campaignIdUUIDoptionalCampaign to associate with this conversion
metadataobjectoptionalArbitrary extra data
occurredAtISO 8601optionalWhen the conversion happened (defaults to now)

Responses

201Conversion recorded
{
  "conversion": { "id": "uuid", "eventType": "purchase", "valueUsd": 99.99, "currency": "USD", "occurredAt": "2026-08-13T10:00:00Z" }
}
400Validation error (invalid `eventType`, negative `valueUsd`, etc.)
401Missing or invalid authentication

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/track/conversion" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"eventType":"purchase","valueUsd":99.99,"contactId":"CONTACT_UUID"}'

Industry Playbooks

GET/api/v1/playbooksPro+

Lists all available industry playbooks (dentists, salons, fitness studios, etc.), with whether your organization has each one applied.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Responses

200Playbook list
{
  "playbooks": [{ "id": "uuid", "slug": "dental-practice", "name": "Dental Practice", "industry": "healthcare", "applied": true, "expiresAt": null }]
}
401Missing or invalid authentication

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/playbooks" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/playbooks/:slug/applyPro+

Applies an industry playbook to your organization — seeds lead-scoring rules and, if the playbook has one, links its niche pack to your Autopilot settings.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
slugstringrequiredPlaybook slug, e.g. `dental-practice`

Responses

200Applied
{
  "success": true,
  "rulesCreated": 3,
  "nichePackLinked": true
}
401Missing or invalid authentication
404Playbook not found

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/playbooks/dental-practice/apply" \
  -H "Authorization: Bearer YOUR_API_KEY"
DELETE/api/v1/playbooks/:slug/applyPro+

Deactivates a previously-applied playbook for your organization.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
slugstringrequiredPlaybook slug

Responses

200Removed
{ "success": true }
401Missing or invalid authentication
404Playbook not applied, or not found

Example Request

cURL
curl -X DELETE "https://app.cognitivpulse.com/api/v1/playbooks/dental-practice/apply" \
  -H "Authorization: Bearer YOUR_API_KEY"

SMS Messaging

GET/api/v1/messaging/smsPro+

Returns up to 50 of your organization's most recent SMS campaigns.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Responses

200SMS campaign list
{
  "campaigns": [{ "id": "uuid", "name": "Flash Sale", "messageBody": "20% off today only!", "status": "sent", "sentCount": 240, "deliveredCount": 236, "failedCount": 4, "totalCostUsd": 4.8 }]
}
401Missing or invalid authentication

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/messaging/sms" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/messaging/smsPro+

Creates a new SMS campaign, optionally targeted at a saved segment and/or scheduled for later. Does not send — use the `send` endpoint below.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

NameTypeRequiredDescription
namestringrequiredCampaign name, 1-200 characters
messageBodystringrequiredSMS text, 1-1600 characters
segmentIdUUIDoptionalTarget a saved segment instead of all opted-in contacts
scheduledAtISO 8601optionalSchedule for later; omit to leave as a draft

Responses

201Campaign created
{
  "campaign": { "id": "uuid", "name": "Flash Sale", "status": "draft", "sentCount": 0 }
}
400Validation error
401Missing or invalid authentication

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/messaging/sms" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Flash Sale","messageBody":"20% off today only! Reply STOP to opt out."}'
POST/api/v1/messaging/sms/:id/sendPro+

Enqueues delivery jobs for all eligible, opted-in contacts on an SMS campaign.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
idUUIDrequiredSMS campaign UUID

Responses

200Enqueued
{ "queued": 240 }
400Campaign not found, or already sent
401Missing or invalid authentication

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/messaging/sms/CAMPAIGN_UUID/send" \
  -H "Authorization: Bearer YOUR_API_KEY"

Booking Integrations

GET/api/v1/booking/integrationsPro+

Lists your organization's connected booking integrations (Calendly, Acuity, Square).

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Responses

200Integration list
{
  "integrations": [{ "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }]
}
401Missing or invalid authentication
403Booking integrations not available on your plan

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/booking/integrations" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/api/v1/booking/integrationsPro+

Connects (or reconnects) a booking platform, returning a webhook URL to configure on the platform side.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Request Body

NameTypeRequiredDescription
platformstringrequired`calendly`, `acuity`, or `square`
webhookSecretstringoptionalShared secret used to verify inbound webhook signatures

Responses

201Connected
{
  "integration": { "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }
}
400Invalid payload
401Missing or invalid authentication
403Booking integrations not available on your plan

Example Request

cURL
curl -X POST "https://app.cognitivpulse.com/api/v1/booking/integrations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"calendly","webhookSecret":"whsec_..."}'
GET/api/v1/booking/integrations/:platformPro+

Fetch one connected booking integration by platform.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
platformstringrequired`calendly`, `acuity`, or `square`

Responses

200Integration
{
  "integration": { "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }
}
401Missing or invalid authentication
403Booking integrations not available on your plan
404Not connected

Example Request

cURL
curl -X GET "https://app.cognitivpulse.com/api/v1/booking/integrations/calendly" \
  -H "Authorization: Bearer YOUR_API_KEY"
PUT/api/v1/booking/integrations/:platformPro+

Rotate the webhook secret and/or enable/disable an integration.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
platformstringrequired`calendly`, `acuity`, or `square`

Request Body

Both fields optional.

NameTypeRequiredDescription
webhookSecretstringoptionalNew shared secret
enabledbooleanoptionalEnable or disable the integration

Responses

200Updated
{
  "integration": { "id": "uuid", "platform": "calendly", "enabled": false }
}
400Invalid payload
401Missing or invalid authentication
403Booking integrations not available on your plan

Example Request

cURL
curl -X PUT "https://app.cognitivpulse.com/api/v1/booking/integrations/calendly" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":false}'
DELETE/api/v1/booking/integrations/:platformPro+

Disconnects a booking platform.

Authentication

Pass your API key as a Bearer token: Authorization: Bearer cp_...
Generate an API key in Settings → API Access. Requires the Business plan.

Path Parameters

NameTypeRequiredDescription
platformstringrequired`calendly`, `acuity`, or `square`

Responses

200Disconnected
{ "success": true }
401Missing or invalid authentication
403Booking integrations not available on your plan

Example Request

cURL
curl -X DELETE "https://app.cognitivpulse.com/api/v1/booking/integrations/calendly" \
  -H "Authorization: Bearer YOUR_API_KEY"
Need help or want to report an issue? Reach out at hello@cognitivpulse.com.