# 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