API Reference
Outreach Endpoints
API endpoints for managing campaigns, leads, mailboxes, threads, and settings. All require authentication and are scoped to a workspace.
URL Pattern
All workspace-scoped endpoints use the pattern: /api/v1/workspaces/:wid/... where :wid is your workspace ID.
Campaigns
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/campaigns | List all campaigns |
| POST | /api/v1/workspaces/:wid/campaigns | Create a campaign |
| GET | /api/v1/workspaces/:wid/campaigns/:id | Get campaign details |
| PUT | /api/v1/workspaces/:wid/campaigns/:id | Update campaign |
| POST | /api/v1/workspaces/:wid/campaigns/:id/start | Start a campaign |
| POST | /api/v1/workspaces/:wid/campaigns/:id/pause | Pause a campaign |
| DELETE | /api/v1/workspaces/:wid/campaigns/:id | Delete campaign and steps |
Campaign Steps
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/workspaces/:wid/campaigns/:id/steps | Create a step |
| PUT | /api/v1/workspaces/:wid/campaigns/:id/steps/:stepId | Update a step |
| DELETE | /api/v1/workspaces/:wid/campaigns/:id/steps/:stepId | Delete a step |
| POST | /api/v1/workspaces/:wid/campaigns/:id/steps/reorder | Reorder steps |
| POST | /api/v1/workspaces/:wid/campaigns/:id/mailboxes | Assign mailboxes to campaign |
Leads
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/leads | List all leads (paginated) |
| GET | /api/v1/workspaces/:wid/leads/:id | Get lead details |
| POST | /api/v1/workspaces/:wid/leads/upload | Upload CSV lead list |
| POST | /api/v1/workspaces/:wid/leads/validate | Start list validation |
| PUT | /api/v1/workspaces/:wid/leads/:id | Update a lead |
| DELETE | /api/v1/workspaces/:wid/leads/:id | Delete a lead |
| POST | /api/v1/workspaces/:wid/leads/add-to-campaign | Add leads to a campaign |
Mailboxes
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/mailboxes | List all mailboxes |
| POST | /api/v1/workspaces/:wid/mailboxes | Create mailbox |
| PUT | /api/v1/workspaces/:wid/mailboxes/:id | Update mailbox |
| DELETE | /api/v1/workspaces/:wid/mailboxes/:id | Delete mailbox |
| POST | /api/v1/workspaces/:wid/mailboxes/:id/test | Test existing connection |
| POST | /api/v1/workspaces/:wid/mailboxes/test | Test new connection |
| GET | /api/v1/workspaces/:wid/mailboxes/:id/health | Get mailbox health |
| GET | /api/v1/workspaces/:wid/mailboxes/health | Get all mailbox health |
Unified Inbox (Threads)
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/threads | List threads |
| GET | /api/v1/workspaces/:wid/threads/:id | Get thread messages |
| POST | /api/v1/workspaces/:wid/threads/:id/reply | Reply to a thread |
| PUT | /api/v1/workspaces/:wid/threads/:id/status | Update thread status |
Warmup
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/warmup | List warmup status for all mailboxes |
| POST | /api/v1/workspaces/:wid/warmup/:mailboxId/start | Start warmup for a mailbox |
| POST | /api/v1/workspaces/:wid/warmup/:mailboxId/pause | Pause warmup |
| DELETE | /api/v1/workspaces/:wid/warmup/:mailboxId | Remove from warmup |
Settings
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/settings | Get workspace settings |
| PUT | /api/v1/workspaces/:wid/settings | Update settings |
| POST | /api/v1/workspaces/:wid/settings/test-ai | Test AI connection |
| PUT | /api/v1/workspaces/:wid/settings/tracking-domain | Set tracking domain |
| POST | /api/v1/workspaces/:wid/settings/verify-dns | Verify DNS records |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/webhooks | List webhook subscriptions |
| POST | /api/v1/workspaces/:wid/webhooks | Create webhook |
| PUT | /api/v1/workspaces/:wid/webhooks/:id | Update webhook |
| DELETE | /api/v1/workspaces/:wid/webhooks/:id | Delete webhook |
| GET | /api/v1/workspaces/:wid/webhooks/:id/logs | Get delivery logs |
Integrations
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/integrations | List integrations |
| POST | /api/v1/workspaces/:wid/integrations/:provider/connect | Connect integration |
| DELETE | /api/v1/workspaces/:wid/integrations/:provider | Disconnect integration |
AI
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/workspaces/:wid/ai/enhance | AI email rewrite/enhance |
| POST | /api/v1/workspaces/:wid/ai/spam-check | Check email for spam words |
API Keys
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/api-keys | List API keys |
| POST | /api/v1/workspaces/:wid/api-keys | Create API key |
| DELETE | /api/v1/workspaces/:wid/api-keys/:id | Revoke API key |
Example: Create Campaign
bash
curl -X POST https://YOUR_SERVER/api/v1/workspaces/1/campaigns \
-H "Content-Type: application/json" \
-H "Cookie: auth_token=YOUR_JWT_TOKEN" \
-d '{
"name": "Q2 Outreach",
"status": "draft",
"check_reply": true,
"track_opens": true,
"track_clicks": true
}'Example: Upload Leads CSV
bash
curl -X POST https://YOUR_SERVER/api/v1/workspaces/1/leads/upload \
-H "Cookie: auth_token=YOUR_JWT_TOKEN" \
-F "file=@leads.csv"Example: Test Mailbox Connection
bash
curl -X POST https://YOUR_SERVER/api/v1/workspaces/1/mailboxes/test \
-H "Content-Type: application/json" \
-H "Cookie: auth_token=YOUR_JWT_TOKEN" \
-d '{
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_username": "you@gmail.com",
"smtp_password": "app-password",
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_username": "you@gmail.com",
"imap_password": "app-password"
}'