openapi: 3.0.3
info:
title: ActiveCampaign SMS Broadcast Accounts Deals API
description: API for managing SMS broadcasts, lists, metrics, and AI-powered content generation in ActiveCampaign
version: 3.0.0
contact:
name: ActiveCampaign Support
url: https://www.activecampaign.com
x-generated-from: documentation
servers:
- url: https://{yourAccountName}.api-us1.com/api/3
description: US-based Users
variables:
yourAccountName:
default: yourAccountName
security:
- ApiToken: []
tags:
- name: Deals
paths:
/deals:
post:
summary: ActiveCampaign Create a Deal
description: Create a new deal
operationId: create-a-deal-new
requestBody:
content:
application/json:
schema:
type: object
properties:
deal:
properties:
title:
type: string
description: Deal's title.
description:
type: string
description: Deal's description
account:
type: string
description: Deal’s account id. Required if `deal.contact` is not provided.
contact:
type: string
description: Deal's primary contact's id. Required if `deal.account` is not provided.
value:
type: integer
description: Deal's value in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.
format: int32
currency:
type: string
description: Deal's currency in 3-digit ISO format, lowercased.
group:
type: string
description: Deal's pipeline id. Required if `deal.stage` is not provided. If `deal.group` is not provided, the stage's pipeline will be assigned to the deal automatically.
stage:
type: string
description: Deal's stage id. Required if `deal.group` is not provided. If `deal.stage` is not provided, the deal will be assigned with the first stage in the pipeline provided in `deal.group`.
owner:
type: string
description: Deal's owner id. Required if pipeline's auto-assign option is disabled.
percent:
type: integer
description: Deal's percentage.
format: int32
status:
type: integer
description: Deal's status. See [available values](ref:deal).
default: 0
format: int32
fields:
type: array
description: 'Deal''s custom field values `{customFieldId: string, fieldValue: string, fieldCurrency?:string}[]`'
items:
properties:
customFieldId:
type: integer
description: Field ID, ID of the Custom Field Meta Data
format: int32
fieldValue:
type: string
description: Updated field value. For `currency` field, this needs to be in cents not dollars (or 100 x Base Unit).
fieldCurrency:
type: string
description: Required only for the `currency` field type. The three letter currency code for the currency value
required:
- customFieldId
- fieldValue
type: object
required:
- title
- account
- contact
- value
- currency
- group
- stage
- owner
type: object
required:
- deal
examples:
POST /deals (Example REQUEST):
value:
deal:
contact: '51'
account: '45'
description: This deal is an important deal
currency: usd
group: '1'
owner: '1'
percent: null
stage: '1'
status: 0
title: AC Deal
value: 45600
fields:
- customFieldId: 1
fieldValue: First field value
- customFieldId: 2
fieldValue: '2008-01-20'
- customFieldId: 3
fieldValue: 5500
fieldCurrency: EUR
responses:
'201':
description: '201'
content:
application/json:
examples:
Result:
value:
contacts:
- adate: '2017-02-06 15:50:11'
bounced_date: '0000-00-00'
bounced_hard: '0'
bounced_soft: '0'
cdate: '2017-02-03T11:26:41-06:00'
deleted: '0'
edate: '0000-00-00 00:00:00'
email: johndoe@example.com
email_domain: ''
email_local: ''
firstName: ''
gravatar: '1'
hash: e1705a92f24edf5313ed21df44d6ff5f
id: '51'
ip: '0'
lastName: ''
links:
bounceLogs: /api/3/contacts/51/bounceLogs
contactAutomations: /api/3/contacts/51/contactAutomations
contactData: /api/3/contacts/51/contactData
contactDeals: /api/3/contacts/51/contactDeals
contactGoals: /api/3/contacts/51/contactGoals
contactLists: /api/3/contacts/51/contactLists
contactLogs: /api/3/contacts/51/contactLogs
contactTags: /api/3/contacts/51/contactTags
deals: /api/3/contacts/51/deals
fieldValues: /api/3/contacts/51/fieldValues
geoIps: /api/3/contacts/51/geoIps
notes: /api/3/contacts/51/notes
organization: /api/3/contacts/51/organization
plusAppend: /api/3/contacts/51/plusAppend
scoreValues: /api/3/contacts/51/scoreValues
trackingLogs: /api/3/contacts/51/trackingLogs
organization: null
orgid: '0'
phone: ''
rating_tstamp: '0000-00-00'
segmentio_id: ''
sentcnt: '0'
socialdata_lastcheck: '0000-00-00 00:00:00'
ua: ''
udate: '2017-02-03T11:26:41-06:00'
deal:
description: This deal is an important deal
currency: usd
percent: null
status: 0
title: AC Deal
value: 45600
organization: 45
contact: 1
group: '1'
owner: '1'
stage: '1'
cdate: '2019-12-09T12:29:33-06:00'
mdate: '2019-12-09T12:29:33-06:00'
nextdate: null
hash: c3a5497c
winProbability: null
winProbabilityMdate: null
links:
dealActivities: /api/3/deals/51/dealActivities
contact: /api/3/deals/51/contact
contactDeals: /api/3/deals/51/contactDeals
group: /api/3/deals/51/group
nextTask: /api/3/deals/51/nextTask
notes: /api/3/deals/51/notes
account: /api/3/deals/51/account
customerAccount: /api/3/deals/51/customerAccount
organization: /api/3/deals/51/organization
owner: /api/3/deals/51/owner
scoreValues: /api/3/deals/51/scoreValues
stage: /api/3/deals/51/stage
tasks: /api/3/deals/51/tasks
dealCustomFieldData: /api/3/deals/51/dealCustomFieldData
fields:
- customFieldId: 1
fieldValue: First field value
dealId: '51'
- customFieldId: 2
fieldValue: '2008-01-20'
dealId: '51'
- customFieldId: 3
fieldValue: 5500
fieldCurrency: EUR
dealId: '51'
id: '51'
isDisabled: false
account: 45
customerAccount: 45
dealStages:
- cardRegion1: title
cardRegion2: next-action
cardRegion3: show-avatar
cardRegion4: contact-fullname-orgname
cardRegion5: value
cdate: '2017-01-20T09:27:32-06:00'
color: C481DF
dealOrder: next-action DESC
group: '1'
id: '1'
links:
group: /api/3/dealStages/1/group
order: '1'
title: To Contact
udate: '2017-01-20T09:27:32-06:00'
width: '280'
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Deals
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
get:
summary: ActiveCampaign List All Deals
description: Retrieve all existing deals
operationId: list-all-deals
parameters:
- name: filters[search]
in: query
description: Search text to use with `search_field` parameter.
schema:
type: string
- name: filters[search_field]
in: query
description: Field to search for. See [available values](https://developers.activecampaign.com/reference/deal#deals-parameters-available-values).
schema:
type: string
- name: filters[title]
in: query
description: Filter by deal's title
schema:
type: string
- name: filters[stage]
in: query
description: Filter by deal's stage
schema:
type: integer
format: int32
- name: filters[group]
in: query
description: Filter by deal's pipeline
schema:
type: integer
format: int32
- name: filters[status]
in: query
description: Filter by deal's status. See [available values](https://developers.activecampaign.com/reference/deal#deals-parameters-available-values)
schema:
type: integer
format: int32
- name: filters[owner]
in: query
description: Filter by deal's owner
schema:
type: integer
format: int32
- name: filters[nextdate_range]
in: query
description: Filter by deal's tasks due dates. See [available values](https://developers.activecampaign.com/reference/deal#deals-parameters-available-values)
schema:
type: string
- name: filters[tag]
in: query
description: Filter by tag names associated with deal's primary contact. See [available values](https://developers.activecampaign.com/reference/deal#deals-parameters-available-values).
schema:
type: string
- name: filters[tasktype]
in: query
description: Filter by deals that have tasks with given type
schema:
type: string
- name: filters[created_before]
in: query
description: Returns deals that are created less than given date
schema:
type: string
format: date
- name: filters[created_after]
in: query
description: Returns deals that are created greater than or equal to given date
schema:
type: string
format: date
- name: filters[updated_before]
in: query
description: Returns deals that are updated less than given date
schema:
type: string
format: date
- name: filters[updated_after]
in: query
description: Returns deals that are updated greater than or equal to given date
schema:
type: string
format: date
- name: filters[organization]
in: query
description: Filter by deal's primary contact's organization's id
schema:
type: integer
format: int32
- name: filters[minimum_value]
in: query
description: In USD with dollar portion. Returns deals whose values are greater than or equal to given value
schema:
type: integer
format: int32
- name: filters[maximum_value]
in: query
description: In USD with dollar portion. Returns deals whose values are less than or equal to given value
schema:
type: integer
format: int32
- name: filters[score_greater_than]
in: query
description: In a format of `<score_id>:<score_value>`. Returns deals whose score value is greater than given value
schema:
type: string
- name: filters[score_less_than]
in: query
description: In a format of `<score_id>:<score_value>`. Returns deals whose score value is less than given value
schema:
type: string
- name: filters[score]
in: query
description: In a format of `<score_id>:<score_value>`. Returns deals whose score value is equal to given value
schema:
type: string
- name: orders[title]
in: query
description: Order by deal's title.
schema:
type: string
default: ASC
- name: orders[value]
in: query
description: Order by deal's value.
schema:
type: string
default: ASC
- name: orders[cdate]
in: query
description: Order by deal's created date.
schema:
type: string
default: ASC
- name: orders[contact_name]
in: query
description: Order by deal's primary contact's first name.
schema:
type: string
default: ASC
- name: orders[contact_orgname]
in: query
description: Order by deal's primary contact's organization name.
schema:
type: string
default: ASC
- name: orders[next-action]
in: query
description: Order by deal's next task's due date first. Then append deals with no next task. Lastly append deals with overdue tasks. If dates are the same, order by deal's id.
schema:
type: string
default: ASC
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"deals\": [\n {\n \"owner\": \"1\",\n \"contact\": \"39\",\n \"organization\": \"20\",\n \"group\": \"1\",\n \"stage\": \"2\",\n \"title\": \"Able Hyena\",\n \"description\": \"Article do skill hope.\",\n \"percent\": \"0\",\n \"cdate\": \"2019-09-06T11:29:48-05:00\",\n \"mdate\": \"2019-09-06T11:29:48-05:00\",\n \"nextdate\": null,\n \"nexttaskid\": null,\n \"value\": \"1872151\",\n \"currency\": \"usd\",\n \"winProbability\": 44,\n \"winProbabilityMdate\": \"2019-10-05T12:27:22-05:00\",\n \"status\": \"0\",\n \"activitycount\": \"1\",\n \"nextdealid\": \"46\",\n \"edate\": \"2019-11-22 14:15:37\",\n \"links\": {\n \"dealActivities\": \"/api/3/deals/46/dealActivities\",\n \"contact\":\"/api/3/deals/46/contact\",\n \"contactDeals\": \"/api/3/deals/46/contactDeals\",\n \"group\": \"/api/3/deals/46/group\",\n \"nextTask\": \"/api/3/deals/46/nextTask\",\n \"notes\": \"/api/3/deals/46/notes\",\n \"account\": \"/api/3/deals/46/account\",\n \"customerAccount\": \"/api/3/deals/46/customerAccount\",\n \"organization\": \"/api/3/deals/46/organization\",\n \"owner\": \"/api/3/deals/46/owner\",\n \"scoreValues\": \"/api/3/deals/46/scoreValues\",\n \"stage\": \"/api/3/deals/46/stage\",\n \"tasks\": \"api/3/deals/46/tasks\",\n \"dealCustomFieldData\": \"/api/3/deals/46/dealCustomFieldData\"\n\t\t},\n \"id\": \"46\",\n \"isDisabled\": false,\n \"account\": \"20\",\n \"customerAccount\": \"20\"\n\t\t},\n {\n \"activitycount\": \"62\",\n \"cdate\": \"2017-01-20T09:28:02-06:00\",\n \"contact\": \"44\",\n \"currency\": \"usd\",\n \"edate\": \"0000-00-00 00:00:00\",\n \"group\": \"2\",\n \"hash\": \"d6ca7d0b\",\n \"id\": \"1\",\n \"links\": {\n \"dealActivities\": \"/api/3/deals/1/dealActivities\",\n \"contact\": \"/api/3/deals/1/contact\",\n \"contactDeals\": \"/api/3/deals/1/contactDeals\",\n \"group\": \"/api/3/deals/1/group\",\n \"nextTask\": \"/api/3/deals/1/nextTask\",\n \"notes\": \"/api/3/deals/1/notes\",\n \"organization\": \"/api/3/deals/1/organization\",\n \"owner\": \"/api/3/deals/1/owner\",\n \"scoreValues\": \"/api/3/deals/1/scoreValues\",\n \"stage\": \"/api/3/deals/1/stage\",\n \"tasks\": \"/api/3/deals/1/tasks\"\n },\n \"mdate\": \"2017-02-06T12:21:12-06:00\",\n \"nextTask\": \"2\",\n \"nextdate\": \"2017-02-06T12:00:00-06:00\",\n \"nextdealid\": \"1\",\n \"nexttaskid\": \"2\",\n \"organization\": null,\n \"owner\": \"1\",\n \"percent\": \"0\",\n \"stage\": \"3\",\n \"status\": \"1\",\n \"title\": \"Test Deal\",\n \"description\": \"A deal that will make a big difference\",\n \"value\": \"10000\"\n },\n {\n \"id\": \"2\",\n \"isDisabled\": 1,\n \"title\": \"Demo Requested\"\n }\n ],\n \"meta\": {\n \"currencies\": {\n \"USD\": {\n \"currency\": \"USD\",\n \"total\": \"3\",\n \"value\": \"30000\"\n }\n },\n \"total\": 3\n }\n}"
schema:
type: object
properties:
deals:
type: array
items:
type: object
properties:
owner:
type: string
example: '1'
contact:
type: string
example: '39'
organization:
type: string
example: '20'
group:
type: string
example: '1'
stage:
type: string
example: '2'
title:
type: string
example: Able Hyena
description:
type: string
example: Article do skill hope.
percent:
type: string
example: '0'
cdate:
type: string
example: '2019-09-06T11:29:48-05:00'
mdate:
type: string
example: '2019-09-06T11:29:48-05:00'
nextdate: {}
nexttaskid: {}
value:
type: string
example: '1872151'
currency:
type: string
example: usd
winProbability:
type: integer
example: 44
default: 0
winProbabilityMdate:
type: string
example: '2019-10-05T12:27:22-05:00'
status:
type: string
example: '0'
activitycount:
type: string
example: '1'
nextdealid:
type: string
example: '46'
edate:
type: string
example: '2019-11-22 14:15:37'
links:
type: object
properties:
dealActivities:
type: string
example: /api/3/deals/46/dealActivities
contact:
type: string
example: /api/3/deals/46/contact
contactDeals:
type: string
example: /api/3/deals/46/contactDeals
group:
type: string
example: /api/3/deals/46/group
nextTask:
type: string
example: /api/3/deals/46/nextTask
notes:
type: string
example: /api/3/deals/46/notes
account:
type: string
example: /api/3/deals/46/account
customerAccount:
type: string
example: /api/3/deals/46/customerAccount
organization:
type: string
example: /api/3/deals/46/organization
owner:
type: string
example: /api/3/deals/46/owner
scoreValues:
type: string
example: /api/3/deals/46/scoreValues
stage:
type: string
example: /api/3/deals/46/stage
tasks:
type: string
example: api/3/deals/46/tasks
dealCustomFieldData:
type: string
example: /api/3/deals/46/dealCustomFieldData
id:
type: string
example: '46'
isDisabled:
type: boolean
example: false
default: true
account:
type: string
example: '20'
customerAccount:
type: string
example: '20'
meta:
type: object
properties:
currencies:
type: object
properties:
USD:
type: object
properties:
currency:
type: string
example: USD
total:
type: string
example: '3'
value:
type: string
example: '30000'
total:
type: integer
example: 3
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Deals
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/deals/{id}:
get:
summary: ActiveCampaign Retrieve a Deal
description: Retrieve an existing deal
operationId: retrieve-a-deal
parameters:
- name: id
in: path
description: The Deal's id
schema:
type: integer
format: int32
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
with pipeline permission:
value: "{\n \"deal\": {\n \"owner\": \"1\",\n \"contact\": \"39\",\n \"organization\": \"20\",\n \"group\": \"1\",\n \"stage\": \"2\",\n \"title\": \"Able Hyena\",\n \"description\": \"Article do skill hope.\",\n \"percent\": \"0\",\n \"cdate\": \"2019-09-06T11:29:48-05:00\",\n \"mdate\": \"2019-09-06T11:29:48-05:00\",\n \"nextdate\": null,\n \"nexttaskid\": null,\n \"value\": \"1872151\",\n \"currency\": \"usd\",\n \"winProbability\": 44,\n \"winProbabilityMdate\": \"2019-10-05T12:27:22-05:00\",\n \"status\": \"0\",\n \"activitycount\": \"1\",\n \"nextdealid\": \"46\",\n \"edate\": \"2019-11-22 14:15:37\",\n \"links\": {\n \t\"dealActivities\": \"/api/3/deals/46/dealActivities\",\n \t\"contact\":/api/3/deals/46/contact\",\n \t\"contactDeals\": \"/api/3/deals/46/contactDeals\",\n \t\"group\": \"/api/3/deals/46/group\",\n \t\"nextTask\": \"/api/3/deals/46/nextTask\",\n \t\"notes\": \"/api/3/deals/46/notes\",\n \t\"account\": \"/api/3/deals/46/account\",\n \t\"customerAccount\": \"/api/3/deals/46/customerAccount\",\n \t\"organization\": \"/api/3/deals/46/organization\",\n \t\"owner\": \"/api/3/deals/46/owner\",\n \t\"scoreValues\": \"/api/3/deals/46/scoreValues\",\n \t\"stage\": \"/api/3/deals/46/stage\",\n \t\"tasks\": \"api/3/deals/46/tasks\",\n \t\"dealCustomFieldData\": \"/api/3/deals/46/dealCustomFieldData\"\n },\n \"id\": \"46\",\n \"isDisabled\": false,\n \"account\": \"20\",\n \"customerAccount\": \"20\"\n }\n}"
without pipeline permission:
value: "{\n \"deal\": {\n \"id\": \"2\",\n \"isDisabled\": true,\n \"title\": \"Demo Requested\"\n }\n}"
schema:
type: object
properties:
deal:
type: object
properties:
id:
type: string
example: '2'
isDisabled:
type: boolean
example: true
default: true
title:
type: string
example: Demo Requested
deprecated: false
tags:
- Deals
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
summary: ActiveCampaign Update a Deal
description: Update an existing deal
operationId: update-a-deal-new
parameters:
- name: id
in: path
description: The Deal's id
schema:
type: integer
format: int32
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
deal:
properties:
title:
type: string
description: Deal's title.
description:
type: string
description: Deal's description
account:
type: string
description: Deal's account id
contact:
type: string
description: Deal's primary contact id.
value:
type: integer
description: Deal's value in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.
format: int32
currency:
type: string
description: Deal's currency in 3-digit ISO format, lowercased.
group:
type: string
description: Deal's pipeline id. Deal's stage or `deal.stage` should belong to `deal.group`.
stage:
type: string
description: Deal's stage id. `deal.stage` should belong to Deal's pipeline or `deal.group`.
default: '0'
owner:
type: string
description: Deal's owner id.
percent:
type: integer
description: Deal's percentage.
format: int32
status:
type: integer
description: Deal's status (0="open", 1="won", or 2="lost")
default: 0
format: int32
fields:
type: array
description: 'Deal''s custom field values `{customFieldId: string, fieldValue: string, fieldCurrency?:string}[]`'
items:
properties:
customFieldId:
type: integer
description: Field ID, ID of the Custom Field Meta Data
format: int32
fieldValue:
type: string
description: Updated field value. For `currency` field, this needs to be in cents not dollars (or 100 x Base Unit).
fieldCurrency:
type: string
description: Required only for the `currency` field type. The three letter currency code for the currency value
required:
- customFieldId
- fieldValue
type: object
required: []
type: object
examples:
Request Example:
value:
deal:
contact: '51'
account: '45'
description: This deal is an important deal
currency: usd
group: '1'
owner: '1'
percent: null
stage: '1'
status: 0
title: AC Deal
value: 45600
fields:
- customFieldId: 1
f
# --- truncated at 32 KB (242 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/activecampaign/refs/heads/main/openapi/activecampaign-deals-api-openapi.yml