API Documentation
SWELLEnterprise ships an open REST API — 45+ endpoints, 30+ webhook events, Laravel Sanctum authentication, and predictable JSON responses. Build anything SWELLEnterprise doesn’t do natively, or replace whole modules with your own UI.
Why an Open API Matters
Most all-in-one platforms gate API access behind enterprise pricing or don’t ship one at all. HoneyBook, Dubsado, and 17Hats expose almost no public API. Plutio offers limited webhook events. SWELLEnterprise treats the API as a first-class product surface, available on every paid plan.
Quick Start
1. Generate a Token
In your SWELLEnterprise dashboard, go to Settings → API Tokens. Click “Create Token”, name it (e.g., “Zapier integration”), set abilities (read-only or full access), and optionally set an expiration date. Copy the token — it won’t be shown again.
2. Make Your First Request
curl https://api.swellsystem.com/v1/contacts \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"
You’ll get back a paginated list of contacts in your tenant. Standard JSON, predictable structure.
Endpoint Summary
CRM (9 endpoints)
GET /v1/contacts— list, search, filterPOST /v1/contacts— createGET /v1/contacts/{id}— retrievePUT /v1/contacts/{id}— updateDELETE /v1/contacts/{id}— deleteGET/POST/PUT/DELETE /v1/companies— full CRUDGET/POST/PUT/DELETE /v1/leads— full CRUD with conversion endpoint
Projects (10 endpoints)
GET/POST/PUT/DELETE /v1/projectsGET/POST/PUT/DELETE /v1/taskswith project filterPOST /v1/tasks/{id}/complete
Finance (10 endpoints)
GET/POST/PUT/DELETE /v1/invoicesPOST /v1/invoices/{id}/send— send via emailPOST /v1/invoices/{id}/payments— record paymentGET/POST/PUT/DELETE /v1/estimates
Helpdesk (6 endpoints)
GET /v1/tickets— filter by inbox, status, priority, assignee, customerPOST /v1/tickets— create with initial messageGET /v1/tickets/{id}— full conversation threadPUT /v1/tickets/{id}— update status, priority, assignee, tagsPOST /v1/tickets/{id}/replies— add a replyPOST /v1/tickets/{id}/notes— add an internal note
Webhooks (7 endpoints)
GET /v1/webhooks— list subscriptionsGET /v1/webhooks/events— list available eventsPOST/PUT/DELETE /v1/webhooks— manage subscriptionsPOST /v1/webhooks/{id}/regenerate-secret
Authentication (4 endpoints)
GET /v1/tokens— list active tokensPOST /v1/tokens— createDELETE /v1/tokens/{id}— revokePOST /v1/tokens/refresh
Webhooks
Subscribe to any of 30+ events. Each delivery is signed with a tenant-specific HMAC-SHA256 secret in the X-SWELL-Signature header. Failed deliveries retry with exponential backoff (5 attempts over 15 minutes).
Available Events
See the full integrations page for the complete event list. Categories: CRM (5 events), Projects (4), Finance (5), Helpdesk (11), Forms (2), Portal (3).
Rate Limits
- Free / Starter: 60 requests per minute
- Professional: 120 requests per minute
- Business: 300 requests per minute (raisable on request)
Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are returned on every response.
Authentication: Sanctum Tokens
SWELLEnterprise uses Laravel Sanctum for API authentication. Tokens are scoped to a single tenant, can have abilities (read-only, scoped, full), and optional expiration dates. Pass the token via the Authorization: Bearer header on every request.
Errors
Standard HTTP status codes. Error responses include a structured JSON body:
{
"message": "The given data was invalid.",
"errors": {
"email": ["The email field is required."]
}
}
SDKs
Official client libraries are on the roadmap. Today, the API works with any HTTP client (curl, Axios, Guzzle, requests, fetch). Community SDKs welcome — submit via GitHub.
Need Help?
Business-tier plans include priority API support. Contact our team for integration consulting, custom endpoint requests, or rate-limit increases.
