API V1 to API V2 Migration
⚠️ Note: API v1 is going to be deprecated on Jan 19, 2026. Please use API v2 instead.
The first version of the API is available at here.
API V2 comes with significantly more endpoints than V1, offering expanded functionality for managing your campaigns, leads, and accounts. This guide covers the migration paths for existing V1 endpoints.
Integrations using api V1
The integrations using api v1, like Zapier, Make, etc., will keep working without any disruptions.
API V2 API Key
Get an API V2 Key: check the getting started guide.
API V1 to API V2 Endpoint Mapping
Campaign Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
GET /campaign/list | GET /api/v2/campaigns | GET | Now supports pagination with starting_after |
GET /campaign/get/name | GET /api/v2/campaigns/{id} | GET | Campaign name is in the response object |
GET /campaign/get/status | GET /api/v2/campaigns/{id} | GET | Status is in the response object |
POST /campaign/set/name | PATCH /api/v2/campaigns/{id} | PATCH | Use PATCH with {"name": "New Name"} |
GET /campaign/get/accounts | GET /api/v2/campaigns/{id} | GET | Accounts are in the response object in the email_list array |
POST /campaign/set/accounts | PATCH /api/v2/campaigns/{id} | PATCH | Update with email_list array |
POST /campaign/add-account | PATCH /api/v2/campaigns/{id} | PATCH | Add to accounts array |
POST /campaign/remove-account | PATCH /api/v2/campaigns/{id} | PATCH | Remove from accounts array |
POST /campaign/set/schedule | PATCH /api/v2/campaigns/{id} | PATCH | Update campaign_schedule object |
POST /campaign/launch | POST /api/v2/campaigns/{id}/activate | POST | Dedicated activate endpoint |
POST /campaign/pause | POST /api/v2/campaigns/{id}/pause | POST | Dedicated pause endpoint |
Analytics Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
GET /analytics/campaign/summary | GET /api/v2/campaigns/analytics | GET | Pass campaign ID as query param id |
GET /analytics/campaign/count | GET /api/v2/campaigns/analytics/overview | GET | Overview endpoint |
Lead Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
POST /lead/add | POST /api/v2/leads | POST | Can add to campaign or lead list |
GET /lead/get | POST /api/v2/leads/list | POST | Now POST for complex filtering |
POST /lead/delete | DELETE /api/v2/leads/{id} | DELETE | Delete by lead ID |
POST /lead/update-status | PATCH /api/v2/leads/{id} | PATCH | Update interest_status field |
POST /lead/variable/update | PATCH /api/v2/leads/{id} | PATCH | Update payload object |
POST /lead/variable/set | PATCH /api/v2/leads/{id} | PATCH | Set fields in payload object |
POST /lead/variable/delete | PATCH /api/v2/leads/{id} | PATCH | Update payload without deleted fields |
Account Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
GET /account/list | GET /api/v2/accounts | GET | Supports filtering and limiting |
POST /account/check-vitals | POST /api/v2/accounts/test/vitals | POST | Same behavior |
GET /account/get/status | GET /api/v2/accounts/{email} | GET | Get by email address |
POST /account/warmup/enable | POST /api/v2/accounts/warmup/enable | POST | Returns background job |
POST /account/warmup/pause | POST /api/v2/accounts/warmup/disable | POST | Note: endpoint is /disable not /pause |
POST /account/delete | DELETE /api/v2/accounts/{email} | DELETE | Delete by email |
Blocklist Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
POST /blocklist/add | POST /api/v2/block-lists-entries | POST | Add entries |
POST /blocklist/remove | DELETE /api/v2/block-lists-entries/{id} | DELETE | Delete by entry ID |
Unibox (Email) Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
GET /unibox/emails/list | GET /api/v2/emails | GET | List with filtering |
GET /unibox/emails/unread/count | GET /api/v2/emails/unread/count | GET | Dedicated count endpoint |
POST /unibox/threads/mark-read | POST /api/v2/emails/threads/{thread_id}/mark-as-read | PATCH | Mark emails as read by updating the status |
POST /unibox/reply | POST /api/v2/emails/reply | POST | eply with reply_to_uuid in bodyad |
Tags Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
POST /tag/create | POST /api/v2/custom-tags | POST | Create tag |
GET /tag/get | GET /api/v2/custom-tags/{id} | GET | Get by ID |
GET /tag/list | GET /api/v2/custom-tags | GET | List all |
PATCH /tag/update | PATCH /api/v2/custom-tags/{id} | PATCH | Update by ID |
DELETE /tag/delete | DELETE /api/v2/custom-tags/{id} | DELETE | Delete by ID |
POST /tag/assign | POST /api/v2/custom-tags/toggle-resource | POST | Assign/unassign tags |
Email Verification Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
POST /verify/email | POST /api/v2/email-verification | POST | Verify single email |
GET /verify/email/result | GET /api/v2/email-verification/{email} | GET | Get result by email address |
Custom Tracking Domain Endpoints
| API V1 Endpoint | API V2 Endpoint | Method | Notes |
|---|---|---|---|
GET /tracking-domain/status | GET /api/v2/accounts/ctd-status | GET | Get custom tracking domain status |