Email marketing automation platform with CRM, contacts, deals pipeline, tags, automations, and campaign management.
| Integration | Available | Notes |
|---|---|---|
| API | ✓ | REST API v3 for contacts, deals, automations, campaigns, tags |
| MCP | - | Not available |
| CLI | ✓ | activecampaign.js |
| SDK | ✓ | Python, PHP, Node.js, Ruby |
- Type: API Token
- Header:
Api-Token: {api_token} - Base URL:
https://{yourAccountName}.api-us1.com/api/3 - Get key: Settings > Developer tab in your ActiveCampaign account
- Note: Each user has a unique API key. Base URL is account-specific (found in Settings > Developer).
GET https://{account}.api-us1.com/api/3/users/meGET https://{account}.api-us1.com/api/3/contacts?limit=20&offset=0
# Search by email
GET https://{account}.api-us1.com/api/3/contacts?email=user@example.com
# Search by name
GET https://{account}.api-us1.com/api/3/contacts?search=JanePOST https://{account}.api-us1.com/api/3/contacts
{
"contact": {
"email": "user@example.com",
"firstName": "Jane",
"lastName": "Doe",
"phone": "+15551234567"
}
}PUT https://{account}.api-us1.com/api/3/contacts/{contactId}
{
"contact": {
"firstName": "Updated",
"lastName": "Name"
}
}POST https://{account}.api-us1.com/api/3/contact/sync
{
"contact": {
"email": "user@example.com",
"firstName": "Jane",
"lastName": "Doe"
}
}DELETE https://{account}.api-us1.com/api/3/contacts/{contactId}GET https://{account}.api-us1.com/api/3/lists?limit=20&offset=0POST https://{account}.api-us1.com/api/3/lists
{
"list": {
"name": "Newsletter",
"stringid": "newsletter",
"sender_url": "https://example.com",
"sender_reminder": "You signed up for our newsletter."
}
}POST https://{account}.api-us1.com/api/3/contactLists
{
"contactList": {
"list": "1",
"contact": "1",
"status": 1
}
}POST https://{account}.api-us1.com/api/3/contactLists
{
"contactList": {
"list": "1",
"contact": "1",
"status": 2
}
}GET https://{account}.api-us1.com/api/3/campaigns?limit=20&offset=0GET https://{account}.api-us1.com/api/3/deals?limit=20&offset=0
# Filter by pipeline stage
GET https://{account}.api-us1.com/api/3/deals?filters[stage]=1POST https://{account}.api-us1.com/api/3/deals
{
"deal": {
"title": "New Enterprise Deal",
"value": 50000,
"currency": "usd",
"group": "1",
"stage": "1",
"owner": "1",
"contact": "1"
}
}PUT https://{account}.api-us1.com/api/3/deals/{dealId}
{
"deal": {
"stage": "2",
"value": 75000
}
}GET https://{account}.api-us1.com/api/3/automations?limit=20&offset=0POST https://{account}.api-us1.com/api/3/contactAutomations
{
"contactAutomation": {
"contact": "1",
"automation": "1"
}
}GET https://{account}.api-us1.com/api/3/tags?limit=20&offset=0POST https://{account}.api-us1.com/api/3/tags
{
"tag": {
"tag": "VIP Customer",
"tagType": "contact"
}
}POST https://{account}.api-us1.com/api/3/contactTags
{
"contactTag": {
"contact": "1",
"tag": "1"
}
}GET https://{account}.api-us1.com/api/3/dealGroups?limit=20&offset=0GET https://{account}.api-us1.com/api/3/webhooks?limit=20&offset=0POST https://{account}.api-us1.com/api/3/webhooks
{
"webhook": {
"name": "Contact Updated",
"url": "https://example.com/webhook",
"events": ["subscribe", "unsubscribe"],
"sources": ["public", "admin", "api", "system"]
}
}ActiveCampaign uses REST with resource wrapping (e.g., { "contact": {...} }). Responses include the resource object plus metadata. Related resources are managed via junction endpoints (e.g., /contactLists, /contactTags, /contactAutomations). The base URL is account-specific. Pagination uses limit and offset parameters.
email- Email addressfirstName,lastName- Name fieldsphone- Phone numbercdate- Creation dateudate- Last updated datedeals- Related deals count
title- Deal namevalue- Deal value in centscurrency- Currency codestage- Pipeline stage IDgroup- Pipeline (deal group) IDowner- Assigned user IDstatus- 0 (open), 1 (won), 2 (lost)
sends- Total sendsopens- Opens countclicks- Clicks countuniqueopens- Unique opensuniquelinks- Unique clicks
1- Subscribed (active)2- Unsubscribed
0- Open1- Won2- Lost
contact- Contact tagsdeal- Deal tags
limit- Results per page (default 20)offset- Skip N resultssearch- Text searchemail- Filter contacts by emailfilters[stage]- Filter deals by stagefilters[owner]- Filter deals by owner
- Marketing automation with complex conditional workflows
- CRM with deal pipeline management
- Contact management with tagging and segmentation
- Email campaign creation and tracking
- Triggering automations based on external events
- B2B sales pipeline tracking integrated with marketing
- 5 requests per second per account
- Rate limit applies across all API users on the same account
- 429 responses include
Retry-Afterheader
- emails
- lifecycle-marketing
- crm-integration
- sales-pipeline
- marketing-automation