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, filter
  • POST /v1/contacts — create
  • GET /v1/contacts/{id} — retrieve
  • PUT /v1/contacts/{id} — update
  • DELETE /v1/contacts/{id} — delete
  • GET/POST/PUT/DELETE /v1/companies — full CRUD
  • GET/POST/PUT/DELETE /v1/leads — full CRUD with conversion endpoint

Projects (10 endpoints)

  • GET/POST/PUT/DELETE /v1/projects
  • GET/POST/PUT/DELETE /v1/tasks with project filter
  • POST /v1/tasks/{id}/complete

Finance (10 endpoints)

  • GET/POST/PUT/DELETE /v1/invoices
  • POST /v1/invoices/{id}/send — send via email
  • POST /v1/invoices/{id}/payments — record payment
  • GET/POST/PUT/DELETE /v1/estimates

Helpdesk (6 endpoints)

  • GET /v1/tickets — filter by inbox, status, priority, assignee, customer
  • POST /v1/tickets — create with initial message
  • GET /v1/tickets/{id} — full conversation thread
  • PUT /v1/tickets/{id} — update status, priority, assignee, tags
  • POST /v1/tickets/{id}/replies — add a reply
  • POST /v1/tickets/{id}/notes — add an internal note

Webhooks (7 endpoints)

  • GET /v1/webhooks — list subscriptions
  • GET /v1/webhooks/events — list available events
  • POST/PUT/DELETE /v1/webhooks — manage subscriptions
  • POST /v1/webhooks/{id}/regenerate-secret

Authentication (4 endpoints)

  • GET /v1/tokens — list active tokens
  • POST /v1/tokens — create
  • DELETE /v1/tokens/{id} — revoke
  • POST /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.

Start Your Free Trial →