# SkunkCRM REST API Reference
# Format: LLM-optimized plain text
# Generated: 2026-01-23T23:08:43.264Z
## Overview
Total Endpoints: 264
Categories: Activities, Administration, Assignment Rules, Contacts, Dashboard, Deals, Email, Email Campaigns, Menu, Mobile, Notifications, Other, Reports, Segments, Settings, System, Tags, Tasks, Team, Templates, Tour, Tracking, Webhooks
Base URLs:
- Free Plugin: /wp-json/skunkcrm/v1/
- Pro Plugin: /wp-json/skunkcrm-pro/v1/
## Authentication
Method: HTTP Basic Authentication with WordPress Application Passwords
Header: Authorization: Basic base64(username:application_password)
To create an Application Password:
1. Go to WordPress Admin > Users > Profile
2. Scroll to "Application Passwords"
3. Enter a name and click "Add New Application Password"
4. Copy the generated password (shown only once)
Auth Levels:
- Public: No authentication required
- Auth: Requires access_skunkcrm capability (any CRM user)
- Admin: Requires manage_options capability (WordPress admin)
- Team: Requires team member access
---
## Activities
### GET /skunkcrm-pro/v1/reports/activities
Get activity statistics report.
Auth: Auth
### GET /skunkcrm/v1/activities
Retrieve activities (notes, calls, emails, meetings) for a contact or deal.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm/v1/activities?contact_id=1
Authorization: Basic base64(username:app_password)
Example Response:
[
{
"id": "1",
"contact_id": "1",
"type": "note",
"content": "Discussed pricing options",
"created_at": "2024-12-31 11:00:00"
},
{
"id": "2",
"contact_id": "1",
"type": "call",
"content": "Follow-up call scheduled",
"created_at": "2024-12-31 14:00:00"
}
]
### POST /skunkcrm/v1/activities
Create a new activity record.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm/v1/activities
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"contact_id": 1,
"type": "note",
"content": "Sent proposal document"
}
Example Response:
{
"id": "5",
"contact_id": "1",
"type": "note",
"content": "Sent proposal document",
"created_at": "2024-12-31 16:00:00"
}
### DELETE /skunkcrm/v1/activities/:id
Delete an activity record.
Auth: Auth
## Administration
### POST /skunkcrm/v1/clear-all-data
Clear all CRM data. Requires admin permissions.
Auth: Admin
### POST /skunkcrm/v1/demo-data
Install sample demo data. Requires admin permissions.
Auth: Admin
### GET /skunkcrm/v1/demo-data/test
GET test demo data endpoint
Auth: Admin
### POST /skunkcrm/v1/factory-reset
Reset all CRM data to initial state. Requires admin permissions.
Auth: Admin
## Assignment Rules
### GET /skunkcrm-pro/v1/assignment-rules
GET get rules
Auth: Auth
### POST /skunkcrm-pro/v1/assignment-rules
POST create rule
Auth: Auth
### GET /skunkcrm-pro/v1/assignment-rules/:id
GET get rule
Auth: Auth
### PUT /skunkcrm-pro/v1/assignment-rules/:id
PUT update rule
Auth: Auth
### DELETE /skunkcrm-pro/v1/assignment-rules/:id
DELETE delete rule
Auth: Auth
### POST /skunkcrm-pro/v1/assignment-rules/reorder
POST reorder rules
Auth: Auth
### POST /skunkcrm-pro/v1/assignment-rules/test
POST test rules
Auth: Auth
## Contacts
### POST /skunkcrm-pro/v1/contacts/:id/dismiss-suggestion
POST dismiss suggestion
Auth: Auth
### POST /skunkcrm-pro/v1/contacts/:id/link
POST link contact
Auth: Auth
### GET /skunkcrm-pro/v1/contacts/:id/link-suggestions
GET get link suggestions
Auth: Auth
### GET /skunkcrm-pro/v1/contacts/:id/linkable
GET search linkable contacts
Auth: Auth
### GET /skunkcrm-pro/v1/contacts/:id/linked
GET get linked contacts
Auth: Auth
### POST /skunkcrm-pro/v1/contacts/:id/make-primary
POST make primary
Auth: Auth
### POST /skunkcrm-pro/v1/contacts/:id/unlink
POST unlink contact
Auth: Auth
### GET /skunkcrm-pro/v1/reports/contacts
Get contact statistics report.
Auth: Auth
### GET /skunkcrm/v1/contacts/:contact_id/tags
Get tags assigned to a specific contact.
Auth: Auth
### POST /skunkcrm/v1/contacts/:contact_id/tags
Add a tag to a contact.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm/v1/contacts/1/tags
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"tag_id": 4
}
Example Response:
{
"success": true,
"contact_id": 1,
"tag_id": 4
}
### DELETE /skunkcrm/v1/contacts/:contact_id/tags/:tag_id
Remove a tag from a contact.
Auth: Auth
Example Request:
DELETE /wp-json/skunkcrm/v1/contacts/1/tags/4
Authorization: Basic base64(username:app_password)
Example Response:
{
"deleted": true
}
### POST /skunkcrm/v1/contacts/:id/archive
Archive a contact (soft delete). The contact can be restored later.
Auth: Auth
### POST /skunkcrm/v1/contacts/:id/avatar
POST upload contact avatar
Auth: Auth
### DELETE /skunkcrm/v1/contacts/:id/avatar
DELETE delete contact avatar
Auth: Auth
### POST /skunkcrm/v1/contacts/:id/unarchive
Restore an archived contact to active status.
Auth: Auth
### GET /skunkcrm/v1/contacts/archived-count
Get the count of archived contacts.
Auth: Auth
### POST /skunkcrm/v1/contacts/bulk-archive
Archive multiple contacts at once.
Auth: Auth
### POST /skunkcrm/v1/contacts/bulk-delete
Delete multiple contacts at once. Requires admin permissions.
Auth: Admin
### GET /skunkcrm/v1/contacts/statuses
Get all available contact status options.
Auth: Auth
### GET /skunkcrm/v1/contacts/tag-breakdown-chart
GET get tag breakdown chart
Auth: Auth
### GET /skunkcrm/v1/contacts/tags-breakdown
GET get contacts tags breakdown
Auth: Auth
### GET /skunkcrm/v1/dashboard/contacts-chart
GET get contacts chart data
Auth: Auth
### GET /skunkcrm/v1/email/contacts/:contact_id/earliest-date
Get the earliest email date for a contact.
Auth: Auth
### GET /skunkcrm/v1/email/contacts/:contact_id/emails
Get all emails for a specific contact.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm-pro/v1/email/contacts/1/emails
Authorization: Basic base64(username:app_password)
Example Response:
{
"emails": [
{
"id": 42,
"subject": "Re: Your inquiry",
"from_address": "customer@example.com",
"direction": "inbound",
"body_preview": "Thanks for getting back...",
"sent_at": "2024-12-31 14:30:00",
"is_read": true,
"is_starred": false
}
],
"total": 15
}
### POST /skunkcrm/v1/export/contacts
POST export contacts
Auth: Auth
### GET /skunkcrm/v1/segments/:segment_id/contacts
Get contacts in a segment.
Auth: Auth
### POST /skunkcrm/v1/segments/:segment_id/contacts
POST add segment contact
Auth: Auth
### DELETE /skunkcrm/v1/segments/:segment_id/contacts/:contact_id
DELETE remove segment contact
Auth: Auth
## Dashboard
### GET /skunkcrm/v1/dashboard
GET get dashboard data
Auth: Auth
### GET /skunkcrm/v1/dashboard/metrics
Get detailed dashboard metrics.
Auth: Auth
### GET /skunkcrm/v1/performance/metrics
GET get performance metrics
Auth: Admin
## Deals
### GET /skunkcrm-pro/v1/deals/:deal_id/team
GET get deal team members
Auth: Auth
### POST /skunkcrm-pro/v1/deals/:deal_id/team
POST update deal team members
Auth: Auth
### GET /skunkcrm-pro/v1/reports/deals
Get deals/pipeline report.
Auth: Auth
### GET /skunkcrm/v1/deals
Retrieve deals with optional filtering by status and contact.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm/v1/deals?status=new
Authorization: Basic base64(username:app_password)
Example Response:
[
{
"id": "1",
"contact_id": "1",
"title": "Enterprise License",
"value": "15000.00",
"status": "new",
"notes": "Initial discussion",
"assigned_to": "1",
"created_at": "2024-12-31 10:00:00"
}
]
### POST /skunkcrm/v1/deals
Create a new deal associated with a contact.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm/v1/deals
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"contact_id": 1,
"title": "Annual License",
"value": 25000,
"status": "negotiation",
"notes": "Discussing enterprise terms"
}
Example Response:
{
"id": "3",
"contact_id": "1",
"title": "Annual License",
"value": "25000.00",
"status": "negotiation",
"notes": "Discussing enterprise terms",
"created_at": "2024-12-31 11:00:00"
}
### GET /skunkcrm/v1/deals/:id
Retrieve a single deal by ID.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/deals/:id
Update an existing deal.
Auth: Auth
Example Request:
PUT /wp-json/skunkcrm/v1/deals/3
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"status": "won",
"value": 28000
}
Example Response:
{
"id": "3",
"title": "Annual License",
"value": "28000.00",
"status": "won",
"updated_at": "2024-12-31 14:00:00"
}
### DELETE /skunkcrm/v1/deals/:id
Delete a deal and associated data.
Auth: Auth
### GET /skunkcrm/v1/deals/stages-breakdown
GET get deals stages breakdown
Auth: Auth
### POST /skunkcrm/v1/pro/export/deals
POST export deals
Auth: Auth
## Email
### GET /skunkcrm-pro/v1/email-analytics/bounces
GET get bounce analytics
Auth: Auth
### GET /skunkcrm-pro/v1/email-analytics/daily
GET get daily metrics
Auth: Auth
### GET /skunkcrm-pro/v1/email-analytics/summary
GET get summary
Auth: Auth
### GET /skunkcrm-pro/v1/email-analytics/time-distribution
GET get time distribution
Auth: Auth
### GET /skunkcrm-pro/v1/email/accounts
Get all email accounts accessible to the current user.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm-pro/v1/email/accounts
Authorization: Basic base64(username:app_password)
Example Response:
[
{
"id": 1,
"email_address": "sales@company.com",
"display_name": "Sales Team",
"provider": "gmail",
"is_default": true,
"last_sync": "2024-12-31 10:00:00",
"unread_count": 5
}
]
### POST /skunkcrm-pro/v1/email/accounts
Create a new email account with SMTP or OAuth configuration.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:account_id/senders
Get unique senders for an email account.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:account_id/senders/stats
Get statistics for email senders.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:id
Get a specific email account by ID.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/email/accounts/:id
Update an existing email account.
Auth: Auth
### DELETE /skunkcrm/v1/email/accounts/:id
Delete an email account and all associated emails.
Auth: Auth
### POST /skunkcrm/v1/email/accounts/:id/default
Set an account as the default for sending.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:id/emails
Get emails for a specific account with filtering and pagination.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:id/permissions
Get user permissions for an email account.
Auth: Auth
### POST /skunkcrm/v1/email/accounts/:id/permissions
POST grant account permission
Auth: Auth
### DELETE /skunkcrm/v1/email/accounts/:id/permissions/:user_id
Remove a user's access to an email account.
Auth: Auth
### POST /skunkcrm/v1/email/accounts/:id/reset-sync
Reset sync state and re-sync all emails.
Auth: Auth
### GET /skunkcrm/v1/email/accounts/:id/stats
Get email statistics for an account (sent, received, opened, etc.).
Auth: Auth
### POST /skunkcrm/v1/email/accounts/:id/sync
Sync emails from the email provider (IMAP/Gmail API).
Auth: Auth
### POST /skunkcrm/v1/email/accounts/:id/sync-batch
Sync a batch of emails during incremental sync.
Auth: Auth
### GET /skunkcrm/v1/email/all-inboxes
Get emails from all accessible inboxes.
Auth: Auth
### GET /skunkcrm/v1/email/all-inboxes/senders
Get senders across all accessible inboxes.
Auth: Auth
### GET /skunkcrm/v1/email/all-inboxes/senders/stats
Get sender statistics across all inboxes.
Auth: Auth
### GET /skunkcrm/v1/email/all-inboxes/stats
Get combined statistics for all accessible inboxes.
Auth: Auth
### GET /skunkcrm/v1/email/click/:tracking_id
Track when a link in an email is clicked. Public endpoint.
Auth: Public
### GET /skunkcrm/v1/email/drafts
Get saved email drafts.
Auth: Auth
### POST /skunkcrm/v1/email/drafts
Save a new email draft.
Auth: Auth
### GET /skunkcrm/v1/email/drafts/:id
Get a specific draft by ID.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/email/drafts/:id
Update an existing draft.
Auth: Auth
### DELETE /skunkcrm/v1/email/drafts/:id
Delete a draft.
Auth: Auth
### GET /skunkcrm/v1/email/emails/:id
Get a single email by ID with full content.
Auth: Auth
### PATCH /skunkcrm/v1/email/emails/:id/read
Mark an email as read.
Auth: Auth
### PATCH /skunkcrm/v1/email/emails/:id/star
Toggle the starred status of an email.
Auth: Auth
### PATCH /skunkcrm/v1/email/emails/:id/status
Update email status (archived, etc.).
Auth: Auth
### GET /skunkcrm/v1/email/emails/:id/thread
Get all emails in a conversation thread.
Auth: Auth
### POST /skunkcrm/v1/email/emails/bulk-read
Mark multiple emails as read.
Auth: Auth
### POST /skunkcrm/v1/email/emails/bulk-star
Star or unstar multiple emails.
Auth: Auth
### POST /skunkcrm/v1/email/emails/bulk-status
Update status for multiple emails at once.
Auth: Auth
### GET /skunkcrm/v1/email/lookup-contact
Look up a contact by their email address.
Auth: Auth
### GET /skunkcrm/v1/email/oauth/auth-url
Get the OAuth authorization URL for Gmail.
Auth: Auth
### GET /skunkcrm/v1/email/oauth/callback
Handle OAuth callback from Gmail. Public endpoint.
Auth: Public
### GET /skunkcrm/v1/email/oauth/config
Get OAuth configuration for Gmail integration.
Auth: Auth
### POST /skunkcrm/v1/email/oauth/config
Save OAuth client credentials for Gmail.
Auth: Auth
### POST /skunkcrm/v1/email/preview
Preview how an email will look with template applied.
Auth: Auth
### GET /skunkcrm/v1/email/search-contacts
Search contacts when composing an email.
Auth: Auth
### POST /skunkcrm/v1/email/send
Send an email through a configured email account. Supports HTML, tracking, and templates.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm-pro/v1/email/send
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"to": "customer@example.com",
"to_name": "John Smith",
"subject": "Following up on our conversation",
"body_html": "
Hi John,
Just wanted to follow up...
",
"body_text": "Hi John, Just wanted to follow up...",
"contact_id": 1
}
Example Response:
{
"success": true,
"message_id": "",
"email_id": 42,
"contact_id": 1
}
### GET /skunkcrm/v1/email/senders/:id
Get details for a specific sender.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/email/senders/:id
PUT/PATCH update sender
Auth: Auth
### GET /skunkcrm/v1/email/senders/:id/emails
Get all emails from a specific sender.
Auth: Auth
### POST /skunkcrm/v1/email/senders/:id/promote
Create a contact from an email sender.
Auth: Auth
### POST /skunkcrm/v1/email/senders/bulk-update
Update sender properties in bulk.
Auth: Auth
### GET /skunkcrm/v1/email/suppression
Get the email suppression list (bounced addresses).
Auth: Auth
### POST /skunkcrm/v1/email/suppression
POST add to suppression list
Auth: Auth
### GET /skunkcrm/v1/email/suppression/:email
Get details for a suppressed email.
Auth: Auth
### DELETE /skunkcrm/v1/email/suppression/:email
DELETE remove from suppression list
Auth: Auth
### GET /skunkcrm/v1/email/suppression/check
Check if an email address is on the suppression list.
Auth: Auth
### GET /skunkcrm/v1/email/suppression/stats
Get statistics about suppressed emails.
Auth: Auth
### POST /skunkcrm/v1/email/test-connection
Test SMTP/IMAP connection for an email account.
Auth: Auth
### GET /skunkcrm/v1/email/users
Get WordPress users available for permission assignment.
Auth: Auth
## Email Campaigns
### GET /skunkcrm-pro/v1/campaigns
Get email marketing campaigns.
Auth: Auth
### POST /skunkcrm-pro/v1/campaigns
Create a new email campaign.
Auth: Auth
### GET /skunkcrm/v1/campaigns/:campaign_id/recipients
GET get recipients
Auth: Auth
### POST /skunkcrm/v1/campaigns/:campaign_id/recipients
POST add recipients
Auth: Auth
### DELETE /skunkcrm/v1/campaigns/:campaign_id/recipients
DELETE remove recipients
Auth: Auth
### GET /skunkcrm/v1/campaigns/:campaign_id/steps
GET get steps
Auth: Auth
### POST /skunkcrm/v1/campaigns/:campaign_id/steps
POST create step
Auth: Auth
### PUT/PATCH /skunkcrm/v1/campaigns/:campaign_id/steps/:step_id
PUT/PATCH update step
Auth: Auth
### DELETE /skunkcrm/v1/campaigns/:campaign_id/steps/:step_id
DELETE delete step
Auth: Auth
### GET /skunkcrm/v1/campaigns/:id
Get a specific campaign by ID.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/campaigns/:id
Update an existing campaign.
Auth: Auth
### DELETE /skunkcrm/v1/campaigns/:id
Delete a campaign.
Auth: Auth
### GET /skunkcrm/v1/campaigns/:id/analytics
GET get analytics
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/duplicate
POST duplicate campaign
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/pause
POST pause campaign
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/preview
Preview how an email will look with template applied.
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/resume
POST resume campaign
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/start
POST start campaign
Auth: Auth
### POST /skunkcrm/v1/campaigns/:id/test-send
POST send test email
Auth: Auth
### POST /skunkcrm/v1/campaigns/segment-preview
Preview contacts that would match segment conditions.
Auth: Auth
### GET /skunkcrm/v1/campaigns/templates
GET get templates
Auth: Auth
### POST /skunkcrm/v1/campaigns/templates
POST create template
Auth: Auth
### GET /skunkcrm/v1/campaigns/templates/:id
GET get template
Auth: Auth
### PUT/PATCH /skunkcrm/v1/campaigns/templates/:id
PUT/PATCH update template
Auth: Auth
### DELETE /skunkcrm/v1/campaigns/templates/:id
DELETE delete template
Auth: Auth
## Menu
### GET /skunkcrm/v1/menu-items
Get CRM navigation menu items.
Auth: Auth
## Mobile
### POST /skunkcrm-pro/v1/mobile/auth/qr-generate
POST generate qr token
Auth: Auth
### POST /skunkcrm-pro/v1/mobile/auth/qr-verify
POST verify qr token
Auth: Public
### GET /skunkcrm/v1/mobile/devices
GET get devices
Auth: Auth
### DELETE /skunkcrm/v1/mobile/devices/:device_id
DELETE unregister device
Auth: Auth
### POST /skunkcrm/v1/mobile/devices/register
POST register device
Auth: Auth
### GET /skunkcrm/v1/mobile/features
GET get features
Auth: Auth
## Notifications
### GET /skunkcrm-pro/v1/notifications
Get notifications for the current user.
Auth: Auth
### DELETE /skunkcrm-pro/v1/notifications/:id
DELETE delete notification
Auth: Auth
### POST /skunkcrm-pro/v1/notifications/:id/read
POST mark as read
Auth: Auth
### GET /skunkcrm-pro/v1/notifications/count
GET get unread count
Auth: Auth
### POST /skunkcrm-pro/v1/notifications/mark-all-read
POST mark all as read
Auth: Auth
### GET /skunkcrm/v1/notifications
Get notifications for the current user.
Auth: Auth
### POST /skunkcrm/v1/notifications/:id/read
Mark a notification as read.
Auth: Auth
### POST /skunkcrm/v1/notifications/mark-all-read
Mark all notifications as read.
Auth: Auth
## Other
### GET /skunkcrm-pro/v1/brand-kit
GET get brand kit
Auth: Auth
### PUT /skunkcrm-pro/v1/brand-kit
PUT update brand kit
Auth: Auth
### POST /skunkcrm-pro/v1/broadcasts/draft-content
POST create broadcast draft
Auth: Auth
### GET /skunkcrm-pro/v1/broadcasts/draft-content/:id
GET get broadcast draft
Auth: Auth
### POST /skunkcrm-pro/v1/check-task-deadlines
POST trigger task deadline check
Auth: Auth
### GET /skunkcrm-pro/v1/digest/preview
GET preview digest
Auth: Auth
### POST /skunkcrm-pro/v1/digest/send-test
POST send test digest
Auth: Auth
### GET /skunkcrm-pro/v1/mention-suggestions
GET get mention suggestions
Auth: Auth
### GET /skunkcrm-pro/v1/notification-preferences
GET get preferences
Auth: Auth
### POST /skunkcrm-pro/v1/notification-preferences
POST update preferences
Auth: Auth
### GET /skunkcrm-pro/v1/task-analytics
GET get task analytics
Auth: Auth
### GET /skunkcrm-pro/v1/task-templates
GET get task templates
Auth: Auth
### POST /skunkcrm-pro/v1/task-templates
POST create task template
Auth: Auth
### GET /skunkcrm/v1/available-users
Get WordPress users available for permission assignment.
Auth: Admin
### POST /skunkcrm/v1/brand-kit/reset
POST reset brand kit
Auth: Auth
### POST /skunkcrm/v1/broadcasts/send-test
POST send test email
Auth: Auth
### POST /skunkcrm/v1/import/preview
POST preview import
Auth: Auth
### POST /skunkcrm/v1/import/process
POST process import
Auth: Auth
### GET /skunkcrm/v1/import/template/:type
GET download template
Auth: Auth
### GET /skunkcrm/v1/import/types
GET get import types
Auth: Auth
### GET /skunkcrm/v1/mention-suggestions
GET get mention suggestions
Auth: Team
### POST /skunkcrm/v1/sync-roles
POST sync roles
Auth: Admin
## Reports
### GET /skunkcrm-pro/v1/reports/export
GET export report
Auth: Auth
### GET /skunkcrm-pro/v1/reports/overview
GET get overview report
Auth: Auth
## Segments
### GET /skunkcrm/v1/segments
Retrieve all segments.
Auth: Auth
### POST /skunkcrm/v1/segments
Create a new segment with conditions.
Auth: Auth
### GET /skunkcrm/v1/segments/:id
Retrieve a single segment by ID.
Auth: Auth
### PUT/PATCH /skunkcrm/v1/segments/:id
Update an existing segment.
Auth: Auth
### DELETE /skunkcrm/v1/segments/:id
Delete a segment.
Auth: Auth
### POST /skunkcrm/v1/segments/preview
POST preview segment criteria
Auth: Auth
## Settings
### GET /skunkcrm-pro/v1/digest/settings
Retrieve CRM settings.
Auth: Auth
### POST /skunkcrm-pro/v1/digest/settings
POST save settings
Auth: Auth
### GET /skunkcrm/v1/email/settings
Get email feature settings.
Auth: Auth
### POST /skunkcrm/v1/email/settings
POST save email settings
Auth: Auth
### GET /skunkcrm/v1/settings
Retrieve CRM settings.
Auth: Admin
### POST /skunkcrm/v1/settings
POST save settings
Auth: Admin
## System
### GET /skunkcrm/v1/database/table/:table
GET get table data
Auth: Admin
### GET /skunkcrm/v1/database/tables
GET get database tables
Auth: Admin
### GET /skunkcrm/v1/debug
GET debug info
Auth: Admin
### GET /skunkcrm/v1/performance
GET get performance data
Auth: Admin
### GET /skunkcrm/v1/system-status
GET get system status
Auth: Admin
## Tags
### POST /skunkcrm/v1/segments/preview/tags
POST preview segment tags
Auth: Auth
### GET /skunkcrm/v1/tags
Retrieve all tags.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm/v1/tags
Authorization: Basic base64(username:app_password)
Example Response:
[
{"id": "1", "name": "Enterprise", "color": "#3b82f6"},
{"id": "2", "name": "Startup", "color": "#10b981"},
{"id": "3", "name": "VIP", "color": "#f59e0b"}
]
### POST /skunkcrm/v1/tags
Create a new tag with name and color.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm/v1/tags
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"name": "Hot Lead",
"color": "#ef4444"
}
Example Response:
{
"id": "4",
"name": "Hot Lead",
"color": "#ef4444",
"created_at": "2024-12-31 15:00:00"
}
### GET /skunkcrm/v1/tags/:id
GET get tag
Auth: Auth
### PUT/PATCH /skunkcrm/v1/tags/:id
Update an existing tag.
Auth: Auth
Example Request:
PUT /wp-json/skunkcrm/v1/tags/1
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"name": "Enterprise Client",
"color": "#2563eb"
}
Example Response:
{
"id": "1",
"name": "Enterprise Client",
"color": "#2563eb",
"updated_at": "2024-12-31 15:30:00"
}
### DELETE /skunkcrm/v1/tags/:id
Delete a tag.
Auth: Auth
## Tasks
### GET /skunkcrm/v1/tasks
Retrieve tasks with optional filtering.
Auth: Auth
Example Request:
GET /wp-json/skunkcrm/v1/tasks?status=pending
Authorization: Basic base64(username:app_password)
Example Response:
[
{
"id": "1",
"title": "Follow up with Sarah",
"description": "Send proposal",
"contact_id": "1",
"assigned_to": "1",
"due_date": "2024-12-31 17:00:00",
"priority": "high",
"status": "pending",
"created_at": "2024-12-30 09:00:00"
}
]
### POST /skunkcrm/v1/tasks
Create a new task, optionally associated with a contact or deal.
Auth: Auth
Example Request:
POST /wp-json/skunkcrm/v1/tasks
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"title": "Follow up with customer",
"description": "Send pricing proposal",
"contact_id": 1,
"due_date": "2024-12-31 17:00:00",
"priority": "high"
}
Example Response:
{
"id": "5",
"title": "Follow up with customer",
"description": "Send pricing proposal",
"contact_id": "1",
"due_date": "2024-12-31 17:00:00",
"priority": "high",
"status": "pending",
"created_at": "2024-12-31 10:00:00"
}
### GET /skunkcrm/v1/tasks/:id
GET get single task
Auth: Auth
### PUT/PATCH /skunkcrm/v1/tasks/:id
Update an existing task.
Auth: Auth
Example Request:
PUT /wp-json/skunkcrm/v1/tasks/5
Authorization: Basic base64(username:app_password)
Content-Type: application/json
{
"status": "completed"
}
Example Response:
{
"id": "5",
"title": "Follow up with customer",
"status": "completed",
"completed_at": "2024-12-31 16:00:00"
}
### DELETE /skunkcrm/v1/tasks/:id
Delete a task.
Auth: Auth
### POST /skunkcrm/v1/tasks/:id/complete
Mark a task as completed.
Auth: Auth
## Team
### GET /skunkcrm-pro/v1/team
Retrieve team members with CRM access.
Auth: Auth
### POST /skunkcrm-pro/v1/team
POST add team member
Auth: Auth
### GET /skunkcrm-pro/v1/team-tasks
GET get team tasks
Auth: Auth
### GET /skunkcrm-pro/v1/team/:id
GET get team member
Auth: Auth
### PUT /skunkcrm-pro/v1/team/:id
Update a team member's role.
Auth: Auth
### DELETE /skunkcrm-pro/v1/team/:id
Remove a team member's CRM access.
Auth: Auth
### POST /skunkcrm-pro/v1/team/:user_id/name
POST update user display name
Auth: Auth
### GET /skunkcrm-pro/v1/team/:user_id/permissions
GET get user permissions api
Auth: Auth
### POST /skunkcrm-pro/v1/team/:user_id/permissions
POST update user permissions api
Auth: Auth
### POST /skunkcrm-pro/v1/team/assign-contact
POST assign contact
Auth: Auth
### POST /skunkcrm-pro/v1/team/assign-deal
POST assign deal
Auth: Auth
### GET /skunkcrm-pro/v1/team/available-users
Get WordPress users available for permission assignment.
Auth: Auth
### GET /skunkcrm-pro/v1/team/by-user/:user_id
GET get team member by user id
Auth: Auth
### POST /skunkcrm-pro/v1/team/create-user
POST create user and add to team
Auth: Auth
### POST /skunkcrm-pro/v1/team/reset-ids
POST reset team ids endpoint
Auth: Auth
### POST /skunkcrm-pro/v1/team/sync-roles
POST sync roles endpoint
Auth: Auth
### POST /skunkcrm/v1/pro/export/team
POST export team
Auth: Auth
### GET /skunkcrm/v1/team-members
Retrieve team members with CRM access.
Auth: Team
### POST /skunkcrm/v1/team-members
Add a WordPress user as a CRM team member.
Auth: Admin
### GET /skunkcrm/v1/team-members
GET get team members for assignment
Auth: Auth
### GET /skunkcrm/v1/team-members/:id
GET get team member
Auth: Team
### PUT/PATCH /skunkcrm/v1/team-members/:id
Update a team member's role.
Auth: Admin
### DELETE /skunkcrm/v1/team-members/:id
DELETE remove team member
Auth: Admin
### GET /skunkcrm/v1/team-members/:id/profile
GET get team member profile
Auth: Team
### GET /skunkcrm/v1/team-roles
GET get team roles
Auth: Team
## Templates
### POST /skunkcrm-pro/v1/templates/:id/reset
POST reset template
Auth: Auth
### POST /skunkcrm-pro/v1/templates/convert
POST convert blocks
Auth: Auth
### GET /skunkcrm-pro/v1/templates/library
GET get template library
Auth: Auth
### POST /skunkcrm-pro/v1/templates/preview
POST preview template
Auth: Auth
### GET /skunkcrm-pro/v1/templates/render/:id
GET render template
Auth: Auth
### GET /skunkcrm/v1/templates/:id/history
GET get template history
Auth: Auth
### POST /skunkcrm/v1/templates/:id/restore
POST restore template
Auth: Auth
### POST /skunkcrm/v1/templates/:id/revert/:version
POST revert template
Auth: Auth
### GET /skunkcrm/v1/templates/deleted
GET get deleted templates
Auth: Auth
### POST /skunkcrm/v1/templates/import
POST import html
Auth: Auth
### POST /skunkcrm/v1/templates/install-defaults
POST install defaults
Auth: Auth
### POST /skunkcrm/v1/templates/refresh-defaults
POST refresh defaults
Auth: Auth
## Tour
### POST /skunkcrm/v1/tour/complete
POST complete tour
Auth: Auth
### POST /skunkcrm/v1/tour/reset
POST reset tour
Auth: Auth
### GET /skunkcrm/v1/tour/status
GET get tour status
Auth: Auth
## Tracking
### GET /skunkcrm/v1/email/track/:tracking_id
Track when an email is opened via tracking pixel. Public endpoint.
Auth: Public
## Webhooks
### GET /skunkcrm/v1/webhook-event-logs
GET get webhook event logs
Auth: Admin
### DELETE /skunkcrm/v1/webhook-event-logs/clear
DELETE clear webhook event logs
Auth: Admin
### GET /skunkcrm/v1/webhook-tokens
GET get webhook tokens
Auth: Admin
### POST /skunkcrm/v1/webhook-tokens
POST create webhook token
Auth: Admin
### DELETE /skunkcrm/v1/webhook-tokens/:token
DELETE delete webhook token
Auth: Admin
### POST /skunkcrm/v1/webhook/:token
Receive data from external services via incoming webhook. Token-based authentication.
Auth: Public
Example Request:
POST /wp-json/skunkcrm/v1/webhook/{your-webhook-token}
Content-Type: application/json
{
"name": "Jane Smith",
"email": "jane@example.com",
"source": "Contact Form"
}
Example Response:
{
"success": true,
"contact_id": 25,
"message": "Contact created successfully"
}
### GET /skunkcrm/v1/webhooks
Retrieve configured outgoing webhooks.
Auth: Admin
### POST /skunkcrm/v1/webhooks
Create a new outgoing webhook.
Auth: Admin
### GET /skunkcrm/v1/webhooks/:id
GET get webhook
Auth: Admin
### PUT/PATCH /skunkcrm/v1/webhooks/:id
Update an existing webhook.
Auth: Admin
### DELETE /skunkcrm/v1/webhooks/:id
Delete a webhook.
Auth: Admin
### GET /skunkcrm/v1/webhooks/:id/deliveries
GET get webhook deliveries
Auth: Admin
### GET /skunkcrm/v1/webhooks/:id/stats
GET get webhook stats
Auth: Admin
### POST /skunkcrm/v1/webhooks/:id/test
Send a test payload to a webhook.
Auth: Admin
### GET /skunkcrm/v1/webhooks/events
GET get webhook events
Auth: Admin