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
/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
| Name | Type | Required | Description |
|---|---|---|---|
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page, max 100 (default: 25) |
| search | string | optional | Full-text search across email, first_name, last_name |
| tag | string | optional | Filter contacts by tag value |
| status | string | optional | Filter by subscription status: `all` (default), `subscribed`, `unsubscribed` |
| sort | string | optional | Sort field: `created_at` (default), `email`, `lead_score` |
| order | string | optional | Sort direction: `desc` (default) or `asc` |
Responses
{
"contacts": [...],
"total": 142,
"page": 1,
"limit": 25,
"pages": 6,
"allTags": ["customer", "lead"]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/contacts?page=1&limit=25&search=john" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Responses
{
"contact": { "id": "uuid", "email": "jane@example.com", "first_name": "Jane", ... }
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| before | ISO date | optional | Cursor — page further back in time |
| limit | integer | optional | Results per page, max 100 (default: 30) |
Responses
{
"events": [
{ "type": "sms_reply", "label": "Replied: \"Yes please!\"", "occurredAt": "2026-08-10T14:00:00Z", "metadata": {} }
],
"nextCursor": "2026-08-09T09:15:00Z"
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/timeline?limit=30" \ -H "Authorization: Bearer YOUR_API_KEY"
/api/v1/contacts/:id/sms-consentPro+Read a contact's current SMS opt-in/opt-out status.
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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Responses
{
"optedIn": true,
"optedOutAt": null,
"consentSource": "manual"
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/sms-consent" \ -H "Authorization: Bearer YOUR_API_KEY"
/api/v1/contacts/:id/sms-consentPro+Record explicit SMS consent obtained outside the tool (e.g. verbally, or on a signed form) — the staff-facing counterpart to the web opt-in form checkbox.
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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Request Body
Both fields optional.
| Name | Type | Required | Description |
|---|---|---|---|
| source | string | optional | `manual` (default) or `api` |
Responses
{ "success": true, "optedIn": true }Example Request
cURLcurl -X POST "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/sms-consent" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"source":"manual"}'/api/v1/contacts/:id/sms-consentPro+Record an SMS opt-out for a contact (e.g. a customer calls in and asks to stop).
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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Responses
{ "success": true, "optedIn": false }Example Request
cURLcurl -X DELETE "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID/sms-consent" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
| message | string | required | SMS body text |
Responses
{ "success": true }Example Request
cURLcurl -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."}'/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.
| Name | Type | Required | Description |
|---|---|---|---|
| string | required | Contact email address (lowercased and trimmed) | |
| first_name | string | optional | First name |
| last_name | string | optional | Last name |
| phone | string | optional | Phone number |
| tags | string[] | optional | Array of tag strings |
| company | string | optional | Stored in `custom_fields.company` |
| notes | string | optional | Stored in `custom_fields.notes` |
| contacts | object[] | optional | For bulk import: array of contact objects with the same fields above |
Responses
{
"contacts": [
{ "id": "uuid", "email": "jane@example.com", ... }
]
}Example Request
cURLcurl -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"]}'/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Request Body
All fields are optional — only supplied fields are updated.
| Name | Type | Required | Description |
|---|---|---|---|
| string | optional | New email address | |
| first_name | string | optional | First name |
| last_name | string | optional | Last name |
| phone | string | optional | Phone number |
| tags | string[] | optional | Replaces the entire tags array |
| subscribed | boolean | optional | Subscription status |
| lead_score | integer | optional | Lead score 0–100 (clamped automatically) |
| source | string | optional | One of: `manual`, `csv_import`, `api`, `form` |
| company | string | optional | Stored in `custom_fields.company` |
| notes | string | optional | Stored in `custom_fields.notes` |
Responses
{
"contact": { "id": "uuid", "email": "jane@example.com", ... }
}Example Request
cURLcurl -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"]}'/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | Contact UUID |
Responses
{ "success": true }Example Request
cURLcurl -X DELETE "https://app.cognitivpulse.com/api/v1/contacts/CONTACT_UUID" \ -H "Authorization: Bearer YOUR_API_KEY"
Campaigns
/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
{
"campaigns": [
{
"id": "uuid",
"name": "March Newsletter",
"status": "sent",
"sent_count": 1240,
"open_count": 380,
"click_count": 95,
"created_at": "2026-03-01T10:00:00Z"
}
]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/campaigns" \ -H "Authorization: Bearer YOUR_API_KEY"
CRM
/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
{
"deals": [
{
"id": "uuid",
"title": "Enterprise contract",
"value": 12000,
"currency": "usd",
"stage": "proposal",
"contact": { "email": "ceo@acme.com" },
"created_at": "2026-04-01T00:00:00Z"
}
]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/crm/deals" \ -H "Authorization: Bearer YOUR_API_KEY"
/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).
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | required | Deal title (max 200 characters) |
| contact_id | UUID | optional | UUID of an existing contact to associate with this deal |
| value | number | optional | Deal value (non-negative) |
| currency | string | optional | ISO 4217 currency code (default: `usd`) |
| stage | string | optional | Pipeline stage: `lead` (default), `qualified`, `proposal`, `negotiation`, `won`, `lost` |
| notes | string | optional | Free-form notes about the deal |
| closed_at | ISO 8601 | optional | Expected or actual close date |
Responses
{
"deal": {
"id": "uuid",
"title": "Enterprise contract",
"stage": "lead",
"value": 12000,
"currency": "usd"
}
}Example Request
cURLcurl -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
/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
| Name | Type | Required | Description |
|---|---|---|---|
| start | ISO 8601 | required | Start of the date range (inclusive) |
| end | ISO 8601 | required | End of the date range (inclusive) |
Responses
{
"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
}Example Request
cURLcurl -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"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| start | ISO 8601 | required | Start of the date range |
| end | ISO 8601 | required | End of the date range |
| model | string | optional | `first_touch`, `last_touch` (default), or `linear` |
Responses
{
"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"
}Example Request
cURLcurl -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"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| start | ISO 8601 | required | Start of the date range |
| end | ISO 8601 | required | End of the date range |
| interval | string | optional | `week` or `month` (default) |
Responses
{
"interval": "month",
"cohorts": [{ "label": "2026-01", "size": 40, "periods": [{ "period": 0, "active": 25, "retention_pct": 62.5 }] }]
}Example Request
cURLcurl -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"
/api/v1/analytics/exportBusinessDownloads 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
| Name | Type | Required | Description |
|---|---|---|---|
| start | ISO 8601 | required | Start of the date range |
| end | ISO 8601 | required | End of the date range (max 90 days from start) |
Responses
Example Request
cURLcurl -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
/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
| Name | Type | Required | Description |
|---|---|---|---|
| from | ISO 8601 | optional | Only conversions on/after this date |
| to | ISO 8601 | optional | Only conversions on/before this date |
| limit | integer | optional | Max results, default 50, max 200 |
| summary | boolean | optional | Set `true` to include a `summary` block |
Responses
{
"conversions": [{ "id": "uuid", "eventType": "purchase", "valueUsd": 99.99, "occurredAt": "2026-08-13T10:00:00Z" }],
"summary": { "totalConversions": 14, "totalRevenueUsd": 1300.0 }
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/conversions?summary=true&limit=50" \ -H "Authorization: Bearer YOUR_API_KEY"
/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.
| Name | Type | Required | Description |
|---|---|---|---|
| eventType | string | required | `purchase`, `lead_created`, `appointment_booked`, `quote_requested`, `checkout_started`, `phone_call`, or `custom` |
| valueUsd | number | optional | Conversion value, must be > 0 |
| currency | string | optional | 3-letter currency code |
| contactId | UUID | optional | Contact to associate with this conversion |
| campaignId | UUID | optional | Campaign to associate with this conversion |
| metadata | object | optional | Arbitrary extra data |
| occurredAt | ISO 8601 | optional | When the conversion happened (defaults to now) |
Responses
{
"conversion": { "id": "uuid", "eventType": "purchase", "valueUsd": 99.99, "currency": "USD", "occurredAt": "2026-08-13T10:00:00Z" }
}Example Request
cURLcurl -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
/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
{
"playbooks": [{ "id": "uuid", "slug": "dental-practice", "name": "Dental Practice", "industry": "healthcare", "applied": true, "expiresAt": null }]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/playbooks" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Playbook slug, e.g. `dental-practice` |
Responses
{
"success": true,
"rulesCreated": 3,
"nichePackLinked": true
}Example Request
cURLcurl -X POST "https://app.cognitivpulse.com/api/v1/playbooks/dental-practice/apply" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Playbook slug |
Responses
{ "success": true }Example Request
cURLcurl -X DELETE "https://app.cognitivpulse.com/api/v1/playbooks/dental-practice/apply" \ -H "Authorization: Bearer YOUR_API_KEY"
SMS Messaging
/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
{
"campaigns": [{ "id": "uuid", "name": "Flash Sale", "messageBody": "20% off today only!", "status": "sent", "sentCount": 240, "deliveredCount": 236, "failedCount": 4, "totalCostUsd": 4.8 }]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/messaging/sms" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | required | Campaign name, 1-200 characters |
| messageBody | string | required | SMS text, 1-1600 characters |
| segmentId | UUID | optional | Target a saved segment instead of all opted-in contacts |
| scheduledAt | ISO 8601 | optional | Schedule for later; omit to leave as a draft |
Responses
{
"campaign": { "id": "uuid", "name": "Flash Sale", "status": "draft", "sentCount": 0 }
}Example Request
cURLcurl -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."}'/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
| Name | Type | Required | Description |
|---|---|---|---|
| id | UUID | required | SMS campaign UUID |
Responses
{ "queued": 240 }Example Request
cURLcurl -X POST "https://app.cognitivpulse.com/api/v1/messaging/sms/CAMPAIGN_UUID/send" \ -H "Authorization: Bearer YOUR_API_KEY"
Booking Integrations
/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
{
"integrations": [{ "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }]
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/booking/integrations" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| platform | string | required | `calendly`, `acuity`, or `square` |
| webhookSecret | string | optional | Shared secret used to verify inbound webhook signatures |
Responses
{
"integration": { "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }
}Example Request
cURLcurl -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_..."}'/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
| Name | Type | Required | Description |
|---|---|---|---|
| platform | string | required | `calendly`, `acuity`, or `square` |
Responses
{
"integration": { "id": "uuid", "platform": "calendly", "enabled": true, "webhookUrl": "https://app.cognitivpulse.com/api/v1/booking/webhook/calendly/TOKEN" }
}Example Request
cURLcurl -X GET "https://app.cognitivpulse.com/api/v1/booking/integrations/calendly" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | Type | Required | Description |
|---|---|---|---|
| platform | string | required | `calendly`, `acuity`, or `square` |
Request Body
Both fields optional.
| Name | Type | Required | Description |
|---|---|---|---|
| webhookSecret | string | optional | New shared secret |
| enabled | boolean | optional | Enable or disable the integration |
Responses
{
"integration": { "id": "uuid", "platform": "calendly", "enabled": false }
}Example Request
cURLcurl -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}'/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
| Name | Type | Required | Description |
|---|---|---|---|
| platform | string | required | `calendly`, `acuity`, or `square` |
Responses
{ "success": true }Example Request
cURLcurl -X DELETE "https://app.cognitivpulse.com/api/v1/booking/integrations/calendly" \ -H "Authorization: Bearer YOUR_API_KEY"