All endpoints
Every HTTP endpoint CampaignOS exposes, grouped by area. Workspace-scoped endpoints take a workspaceId and need a signed-in session or an API key whose scopes cover the area; public endpoints are listed last. The pages in the sidebar describe the request and response bodies; this page is the index.
Generated from the route files in app/api (183 endpoints).
Workspaces
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId} | session or API key |
Contacts
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/contacts | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/contacts/{contactId} | session or API key |
GET, PUT | /api/workspaces/{workspaceId}/contacts/{contactId}/consent | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/{contactId}/duplicates | session or API key |
GET, POST | /api/workspaces/{workspaceId}/contacts/{contactId}/export | session or API key |
DELETE | /api/workspaces/{workspaceId}/contacts/{contactId}/gdpr/delete | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/{contactId}/gdpr/export | session or API key |
GET, POST | /api/workspaces/{workspaceId}/contacts/{contactId}/notes | session or API key |
GET, POST | /api/workspaces/{workspaceId}/contacts/{contactId}/scores | session or API key |
GET, POST | /api/workspaces/{workspaceId}/contacts/{contactId}/stages | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/{contactId}/telegram-link | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/{contactId}/timeline | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/attribute-keys | session or API key |
GET, POST | /api/workspaces/{workspaceId}/contacts/automation | session or API key |
POST | /api/workspaces/{workspaceId}/contacts/bulk | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/contacts/dnc | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/duplicates | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/export | session or API key |
GET | /api/workspaces/{workspaceId}/contacts/geo | session or API key |
POST | /api/workspaces/{workspaceId}/contacts/import | session or API key |
POST | /api/workspaces/{workspaceId}/contacts/ingest | session or API key |
POST | /api/workspaces/{workspaceId}/contacts/merge | session or API key |
Segments
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/segments | session or API key |
GET, PATCH, DELETE, POST | /api/workspaces/{workspaceId}/segments/{segmentId} | session or API key |
GET | /api/workspaces/{workspaceId}/segments/{segmentId}/growth | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/segments/{segmentId}/members | session or API key |
POST | /api/workspaces/{workspaceId}/segments/preview | session or API key |
Campaigns
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/abtests | session or API key |
GET, POST | /api/workspaces/{workspaceId}/campaigns | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/campaigns/{campaignId} | session or API key |
GET | /api/workspaces/{workspaceId}/campaigns/{campaignId}/ab-tests | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/ab-tests/{nodeId}/winner | session or API key |
GET, POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/actions | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/campaigns/{campaignId}/actions/{actionId} | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/batch | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/clone | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/dry-run | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/enroll | session or API key |
GET | /api/workspaces/{workspaceId}/campaigns/{campaignId}/enrollments | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/execute | session or API key |
GET | /api/workspaces/{workspaceId}/campaigns/{campaignId}/logs | session or API key |
GET, POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/triggers | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/campaigns/{campaignId}/triggers/{triggerId} | session or API key |
GET, POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/versions | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/versions/{versionId}/restore | session or API key |
PUT, POST | /api/workspaces/{workspaceId}/campaigns/{campaignId}/workflow | session or API key |
POST | /api/workspaces/{workspaceId}/campaigns/broadcast | session or API key |
Templates
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/templates | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/templates/{templateId} | session or API key |
GET, PUT | /api/workspaces/{workspaceId}/templates/{templateId}/ab | session or API key |
POST | /api/workspaces/{workspaceId}/templates/{templateId}/ab/winner | session or API key |
POST | /api/workspaces/{workspaceId}/templates/{templateId}/preview | session or API key |
POST | /api/workspaces/{workspaceId}/templates/{templateId}/send-test | session or API key |
POST | /api/workspaces/{workspaceId}/templates/{templateId}/translate | session or API key |
GET, POST | /api/workspaces/{workspaceId}/templates/{templateId}/translations | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/templates/{templateId}/translations/{locale} | session or API key |
POST | /api/workspaces/{workspaceId}/templates/preview | session or API key |
Messages
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/messages | session or API key |
GET | /api/workspaces/{workspaceId}/messages/{messageId} | session or API key |
Events
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/events | session or API key |
Forms
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/forms | session or API key |
GET, PUT, DELETE | /api/workspaces/{workspaceId}/forms/{formId} | session or API key |
GET | /api/workspaces/{workspaceId}/forms/{formId}/analytics | session or API key |
GET | /api/workspaces/{workspaceId}/forms/{formId}/submissions | session or API key |
Inbox
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/inbox | session or API key |
GET, POST, PATCH | /api/workspaces/{workspaceId}/inbox/{threadId} | session or API key |
POST | /api/workspaces/{workspaceId}/inbox/{threadId}/replies/{replyId}/deliver | session or API key |
GET, POST | /api/workspaces/{workspaceId}/inbox/assignment-rules | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/inbox/assignment-rules/{ruleId} | session or API key |
GET, POST | /api/workspaces/{workspaceId}/inbox/auto-replies | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/inbox/auto-replies/{ruleId} | session or API key |
GET, POST | /api/workspaces/{workspaceId}/inbox/canned-responses | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/inbox/canned-responses/{responseId} | session or API key |
Push subscriptions
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/push | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/push/{subscriptionId} | session or API key |
POST | /api/workspaces/{workspaceId}/push/test | session or API key |
Channel providers
| Methods | Path | Auth |
|---|---|---|
GET, PUT | /api/workspaces/{workspaceId}/channel-commands | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/providers/apns | session or API key |
GET, POST | /api/workspaces/{workspaceId}/providers/email | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/providers/email/{providerId} | session or API key |
POST | /api/workspaces/{workspaceId}/providers/email/{providerId}/domain-check | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/providers/fcm | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/providers/push | session or API key |
POST | /api/workspaces/{workspaceId}/providers/push/generate | session or API key |
GET, POST | /api/workspaces/{workspaceId}/providers/sms | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/providers/sms/{providerId} | session or API key |
GET, PATCH, POST, DELETE | /api/workspaces/{workspaceId}/providers/telegram | session or API key |
GET, POST, DELETE | /api/workspaces/{workspaceId}/providers/whatsapp | session or API key |
GET | /api/workspaces/{workspaceId}/providers/whatsapp/templates | session or API key |
POST | /api/workspaces/{workspaceId}/providers/whatsapp/templates/sync | session or API key |
Webhooks
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/webhooks | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/webhooks/{webhookId} | session or API key |
GET | /api/workspaces/{workspaceId}/webhooks/deliveries | session or API key |
POST | /api/workspaces/{workspaceId}/webhooks/deliveries/{deliveryId}/retry | session or API key |
Analytics
| Methods | Path | Auth |
|---|---|---|
GET | /api/workspaces/{workspaceId}/analytics | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/attribution | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/campaigns/{campaignId} | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/cohorts | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/deliverability | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/domains | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/funnel | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/realtime | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/revenue | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/sources | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/activity | session or API key |
GET | /api/workspaces/{workspaceId}/analytics/timeseries | session or API key |
Reports
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/reports | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/reports/{reportId} | session or API key |
GET | /api/workspaces/{workspaceId}/reports/{reportId}/export.csv | session or API key |
POST | /api/workspaces/{workspaceId}/reports/{reportId}/run | session or API key |
GET, POST | /api/workspaces/{workspaceId}/reports/schedules | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/reports/schedules/{scheduleId} | session or API key |
POST | /api/workspaces/{workspaceId}/reports/schedules/{scheduleId}/run | session or API key |
Scoring
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/scoring-rules | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/scoring-rules/{ruleId} | session or API key |
POST | /api/workspaces/{workspaceId}/scoring-rules/recalculate | session or API key |
Deals
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/deals | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/deals/{dealId} | session or API key |
PATCH | /api/workspaces/{workspaceId}/deals/{dealId}/stage | session or API key |
GET | /api/workspaces/{workspaceId}/deals/stats | session or API key |
GET, POST | /api/workspaces/{workspaceId}/pipelines | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/pipelines/{pipelineId} | session or API key |
Companies
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/companies | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/companies/{companyId} | session or API key |
Lifecycle stages
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/stages | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/stages/{stageId} | session or API key |
Tasks
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/tasks | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/tasks/{taskId} | session or API key |
PATCH | /api/workspaces/{workspaceId}/tasks/{taskId}/complete | session or API key |
Notifications
| Methods | Path | Auth |
|---|---|---|
GET | /api/workspaces/{workspaceId}/notifications | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/notifications/{notificationId} | session or API key |
PATCH | /api/workspaces/{workspaceId}/notifications/mark-all-read | session or API key |
Custom fields
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/custom-fields | session or API key |
GET, POST | /api/workspaces/{workspaceId}/custom-fields/groups | session or API key |
Dynamic content
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/dynamic-content | session or API key |
On-site widgets
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/focus-items | session or API key |
GET, PATCH, DELETE | /api/workspaces/{workspaceId}/focus-items/{focusItemId} | session or API key |
Landing pages
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/landing-pages | session or API key |
GET, PUT, DELETE | /api/workspaces/{workspaceId}/landing-pages/{landingPageId} | session or API key |
Assets
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/assets | session or API key |
GET, POST | /api/workspaces/{workspaceId}/assets/categories | session or API key |
Saved views
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/saved-views | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/saved-views/{viewId} | session or API key |
Dashboard
| Methods | Path | Auth |
|---|---|---|
GET | /api/workspaces/{workspaceId}/activity | session or API key |
GET, POST | /api/workspaces/{workspaceId}/dashboard-widgets | session or API key |
GET | /api/workspaces/{workspaceId}/search | session or API key |
Integrations
| Methods | Path | Auth |
|---|---|---|
POST | /api/workspaces/{workspaceId}/integrations/mautic/contacts | session or API key |
POST | /api/workspaces/{workspaceId}/integrations/mautic/import | session or API key |
POST | /api/workspaces/{workspaceId}/integrations/mautic/preview | session or API key |
Members
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/members | session or API key |
PATCH, DELETE | /api/workspaces/{workspaceId}/members/{memberId} | session or API key |
API keys
| Methods | Path | Auth |
|---|---|---|
GET, POST | /api/workspaces/{workspaceId}/keys | session or API key |
DELETE | /api/workspaces/{workspaceId}/keys/{keyId} | session or API key |
Audit logs
| Methods | Path | Auth |
|---|---|---|
GET | /api/workspaces/{workspaceId}/audit-logs | session or API key |
Compliance
| Methods | Path | Auth |
|---|---|---|
POST | /api/workspaces/{workspaceId}/data-retention | session or API key |
Background jobs
| Methods | Path | Auth |
|---|---|---|
GET | /api/cron/tick | Authorization: Bearer <CRON_SECRET> |
GET | /api/workspaces/{workspaceId}/jobs | session or API key |
Tracking
| Methods | Path | Auth |
|---|---|---|
GET | /api/messages/{messageId}/track | none (public) |
GET | /api/workspaces/{workspaceId}/short-links | session or API key |
Authentication
| Methods | Path | Auth |
|---|---|---|
— | /api/auth/{nextauth} | none (public) |
POST | /api/auth/forgot-password | none (public) |
POST | /api/auth/register | none (public) |
POST | /api/auth/reset-password | none (public) |
Public: forms
| Methods | Path | Auth |
|---|---|---|
GET | /api/forms/{formId}/embed | none (public) |
POST | /api/forms/{formId}/submit | none (public) |
Public: preferences
| Methods | Path | Auth |
|---|---|---|
GET, PUT | /api/preferences | none (public) |
GET | /api/preferences/confirm | none (public) |
GET, POST | /api/unsubscribe | none (public) |
Public: website script
| Methods | Path | Auth |
|---|---|---|
GET | /api/script/config | none (public) |
POST | /api/script/event | none (public) |
GET | /api/script/prefill | none (public) |
POST | /api/script/push | none (public) |
GET | /api/script/stream | none (public) |
Inbound webhooks
| Methods | Path | Auth |
|---|---|---|
POST | /api/webhooks/inbound/{endpointId} | endpoint signing secret |
Provider webhooks (inbound)
| Methods | Path | Auth |
|---|---|---|
POST | /api/providers/email/webhooks | provider signature |
POST | /api/providers/sms/webhooks | provider signature |
POST | /api/providers/telegram/webhooks | provider signature |
POST, GET | /api/providers/whatsapp/webhooks | provider signature |
System
| Methods | Path | Auth |
|---|---|---|
GET | /api/assets/{assetId}/download | none (public) |
GET | /api/health | none (public) |
GET | /api/openapi | none (public) |
The hosted form page GET /f/{formId} is a web page rather than an API endpoint; it is listed under Forms.
A machine-readable description of the main endpoints is served at GET /api/openapi (OpenAPI 3.1).
Last updated on