ActiveCampaign trial accounts have limited API access:
| Operation | Trial Account | Paid Account |
|---|---|---|
| Contact Read | ✅ Working | ✅ Working |
| Contact Create/Update | ✅ Working | ✅ Working |
| Deal Create | ❌ Blocked | ✅ Working |
| Deal List | ✅ Working | ✅ Working |
| Pipeline List | ❌ Blocked | ✅ Working |
| Tag Add/Create | ❌ Blocked | ✅ Working |
| Lists List | ❌ Blocked | ✅ Working |
Workaround: Use deal_stage_list to infer pipeline structure from stage IDs (stages include pipeline field).
contact_list with api_version=3 does not work for listing all contacts.
Fix: The CLI now uses contact_paginator instead.
Some endpoints require form-data format, not JSON:
contact_add- Works with form-data onlycontact_sync- Works with form-data onlydeal_add- Requires form-data with all fields
This is an ActiveCampaign API quirk. The contact exists and can be read, but tagging via API may fail on trial accounts.
pipeline_list and deal_group_list return "You are not authorized" on trial accounts. Use deal_stage_list to see stages with their pipeline IDs.
contact_paginator- List contacts with paginationcontact_view- Get single contact by IDcontact_add- Create new contact (form-data)contact_sync- Create or update contact (form-data)
deal_list- List dealsdeal_view- Get single deal
deal_stage_list- List all stages (includes pipeline ID)
tags_list- List all tags
# Contacts
activecampaign contacts list # List all contacts
activecampaign contacts sync "email@test.com" "First" "Last"
activecampaign contacts get <id>
# Deals
activecampaign deals list # List deals
activecampaign deals get <id> # Get deal details
# Stages
activecampaign stages list # List pipeline stages