Keap REST API (1.70.0.784947)

Download OpenAPI specification:Download

Keap REST Core Service

Account Info

Account Info-Endpoint

Retrieve account profile

Retrieves profile/company info for an account.

Responses

Response Schema: application/json
object (ContactAddress)
business_goals
Array of strings

The goals of this business, ie. Grow Business, Convert more leads

business_primary_color
string
business_secondary_color
string
business_type
string

The type of business

currency_code
string
email
string
language_tag
string
logo_url
string
name
string
phone
string
phone_ext
string
time_zone
string
website
string

Response samples

Content type
application/json
{
  • "address": {
    },
  • "business_goals": [
    ],
  • "business_primary_color": "string",
  • "business_secondary_color": "string",
  • "business_type": "string",
  • "currency_code": "string",
  • "email": "string",
  • "language_tag": "string",
  • "logo_url": "string",
  • "name": "string",
  • "phone": "string",
  • "phone_ext": "string",
  • "time_zone": "string",
  • "website": "string"
}

Updates an account profile

Updates profile/company info for an account.

Request Body schema: application/json

accountInfo

object (ContactAddress)
business_goals
Array of strings

The goals of this business, ie. Grow Business, Convert more leads

business_primary_color
string
business_secondary_color
string
business_type
string

The type of business

currency_code
string
email
string
language_tag
string
logo_url
string
name
string
phone
string
phone_ext
string
time_zone
string
website
string

Responses

Response Schema: application/json
object (ContactAddress)
business_goals
Array of strings

The goals of this business, ie. Grow Business, Convert more leads

business_primary_color
string
business_secondary_color
string
business_type
string

The type of business

currency_code
string
email
string
language_tag
string
logo_url
string
name
string
phone
string
phone_ext
string
time_zone
string
website
string

Request samples

Content type
application/json
{
  • "address": {
    },
  • "business_goals": [
    ],
  • "business_primary_color": "string",
  • "business_secondary_color": "string",
  • "business_type": "string",
  • "currency_code": "string",
  • "email": "string",
  • "language_tag": "string",
  • "logo_url": "string",
  • "name": "string",
  • "phone": "string",
  • "phone_ext": "string",
  • "time_zone": "string",
  • "website": "string"
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "business_goals": [
    ],
  • "business_primary_color": "string",
  • "business_secondary_color": "string",
  • "business_type": "string",
  • "currency_code": "string",
  • "email": "string",
  • "language_tag": "string",
  • "logo_url": "string",
  • "name": "string",
  • "phone": "string",
  • "phone_ext": "string",
  • "time_zone": "string",
  • "website": "string"
}

Affiliate

Affiliates-Endpoint

List Affiliates

Retrieves a list of all affiliates

query Parameters
code
string

Optional affiliate parent ID to query on

contact_id
string

Optional contact ID to query on

limit
integer <int32>

Sets a beginning range of items to return

name
string

Optional affiliate name to query on

offset
integer <int32>

Count to offset the returned results by

order
string
Enum: "id" "name"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

parent_id
string

Optional affiliate code to query on

program_id
string

Optional affiliate program ID to query on

status
string
Enum: "active" "inactive"

Optional affiliate status to query on

Responses

Response Schema: application/json
Array of objects (Affiliate)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "affiliates": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Create an affiliate

Create a single affiliate

Request Body schema: application/json

affiliate

code
required
string
contact_id
required
integer <int64>
name
string
notify_on_lead
boolean
notify_on_sale
boolean
parent_id
integer <int64>
password
required
string
status
string
Enum: "active" "inactive"
track_leads_for
integer <int32>

Responses

Response Schema: application/json
code
string
contact_id
integer <int64>
id
integer <int64>
name
string
notify_on_lead
boolean
notify_on_sale
boolean
parent_id
integer <int64>
status
string
track_leads_for
integer <int32>

Request samples

Content type
application/json
{
  • "code": "string",
  • "contact_id": 0,
  • "name": "string",
  • "notify_on_lead": true,
  • "notify_on_sale": true,
  • "parent_id": 0,
  • "password": "string",
  • "status": "active",
  • "track_leads_for": 0
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "contact_id": 0,
  • "id": 0,
  • "name": "string",
  • "notify_on_lead": true,
  • "notify_on_sale": true,
  • "parent_id": 0,
  • "status": "string",
  • "track_leads_for": 0
}

List Commissions

Retrieve a list of Commissions based on Affiliate or Date Range

query Parameters
affiliateId
integer <int64>

Affiliate to retrieve commissions for

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string
Value: "DATE_EARNED"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
Array of objects (AffiliateCommission)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "commissions": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Retrieve Affiliate Model

Get the custom fields for the Affiliate object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

List Commission Programs

Retrieve a list of Commission Programs

query Parameters
affiliate_id
integer <int64>

Id of the affiliate you would like programs for

limit
integer <int32>

Sets a beginning range of items to return

offset
integer <int32>

Count to offset the returned results by

order
string
Enum: "id" "name" "priority"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (AffiliateProgram)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "programs": [
    ]
}

List Affiliate Redirects

Retrieves a list of all affiliate redirects

query Parameters
affiliate_id
string

Affiliate ID to search by

limit
integer <int32>

Sets a beginning range of items to return

offset
integer <int32>

Count to offset the returned results by

order
string
Enum: "id" "name"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (AffiliateRedirect)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "redirects": [
    ]
}

List affiliate summaries

Retrieves a list of affiliate summaries

query Parameters
affiliate_ids
Array of integers <int64> [ items <int64 > ]

Ids of the affiliates you would like a summary for

order
string
Enum: "affiliate_id" "amount_earned" "balance" "clawbacks"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

Responses

Response Schema: application/json
count
integer <int32>
Array of objects (AffiliateSummary)

Response samples

Content type
application/json
{
  • "count": 0,
  • "summaries": [
    ]
}

List Affiliate clawbacks

Retrieves a list of all affiliate clawbacks

path Parameters
affiliateId
required
string

affiliateId

query Parameters
limit
integer <int32>

Sets a beginning range of items to return

offset
integer <int32>

Count to offset the returned results by

order
string
Value: "DATE_EARNED"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

since
string

Optional inclusive start date

until
string

Optional inclusive end date

Responses

Response Schema: application/json
Array of objects (RestAffiliateClawback)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "clawbacks": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

List Affiliate payments

Retrieves a list of all affiliate payments

path Parameters
affiliateId
required
integer <int64>

affiliateId

query Parameters
limit
integer <int32>

Sets a beginning range of items to return

offset
integer <int32>

Count to offset the returned results by

order
string
Enum: "ID" "DATE" "AMOUNT"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

since
string

Inclusive start date

until
string

Inclusive end date

Responses

Response Schema: application/json
count
integer <int32>
next
string
Array of objects (RestAffiliatePayment)
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "payments": [
    ],
  • "previous": "string"
}

Retrieve an affiliate

Retrieve a single affiliate

path Parameters
id
required
integer <int64>

id

Responses

Response Schema: application/json
code
string
contact_id
integer <int64>
id
integer <int64>
name
string
notify_on_lead
boolean
notify_on_sale
boolean
parent_id
integer <int64>
status
string
track_leads_for
integer <int32>

Response samples

Content type
application/json
{
  • "code": "string",
  • "contact_id": 0,
  • "id": 0,
  • "name": "string",
  • "notify_on_lead": true,
  • "notify_on_sale": true,
  • "parent_id": 0,
  • "status": "string",
  • "track_leads_for": 0
}

Appointment

Access Appointment objects stored in Keap Max Classic. Appointment objects stored in Keap Pro or Keap Max are not available via these methods.

List Appointments

Retrieves all appointments for the authenticated user

query Parameters
contact_id
integer <int64>

Optionally find appointments with a contact

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
Array of objects (Appointment)
count
integer <int32>
next
string
previous
string
sync_token
string

Response samples

Content type
application/json
{
  • "appointments": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "sync_token": "string"
}

Create an Appointment

Creates a new appointment as the authenticated user

Request Body schema: application/json

appointment

contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Responses

Response Schema: application/json
contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Request samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Response samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Retrieve Appointment Model

Get the custom fields for the Appointment object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Create a Custom Field

Adds a custom field of the specified type and options to the Appointment object.

Request Body schema: application/json

customField

field_type
required
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
group_id
integer <int64>

An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab.

label
required
string
Array of objects (CreateRestCustomFieldOption)
user_group_id
integer <int64>

An optional user group to choose from when selecting values for User or UserListBox fields.

Responses

Response Schema: application/json
default_value
string
field_name
string
field_type
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
id
integer <int64>
label
string
Array of objects (CustomFieldOption)
record_type
string
Enum: "CONTACT" "REFERRAL_PARTNER" "OPPORTUNITY" "TASK_NOTE_APPOINTMENT" "COMPANY" "ORDER" "SUBSCRIPTION"

Request samples

Content type
application/json
{
  • "field_type": "Currency",
  • "group_id": 0,
  • "label": "string",
  • "options": [
    ],
  • "user_group_id": 0
}

Response samples

Content type
application/json
{
  • "default_value": "string",
  • "field_name": "string",
  • "field_type": "Currency",
  • "id": 0,
  • "label": "string",
  • "options": [
    ],
  • "record_type": "CONTACT"
}

Retrieve an Appointment

Retrieves a specific appointment with respect to user permissions. The authenticated user will need the "can view all records" permission for Task/Appt/Notes

path Parameters
appointmentId
required
integer <int64>

appointmentId

Responses

Response Schema: application/json
contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Response samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Replace an Appointment

Replaces all values of a given appointment

path Parameters
appointmentId
required
integer <int64>

appointmentId

Request Body schema: application/json

appointmentDTO

contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Responses

Response Schema: application/json
contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Request samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Response samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Delete an Appointment

Deletes the specified appointment

path Parameters
appointmentId
required
integer <int64>

appointmentId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Update an Appointment

Updates the provided values of a given appointment

path Parameters
appointmentId
required
integer <int64>

appointmentId

Request Body schema: application/json

appointmentDTO

contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Responses

Response Schema: application/json
contact_id
integer <int64>

Required for pop-up reminders

description
string
end_date
required
string <date-time>
location
string
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder. Acceptable values are [5,10,15,30,60,120,240,480,1440,2880]

start_date
required
string <date-time>
title
required
string
user
integer <int64>

Required only for pop-up reminders

Request samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Response samples

Content type
application/json
{
  • "contact_id": 0,
  • "description": "string",
  • "end_date": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "remind_time": 0,
  • "start_date": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "user": 0
}

Campaign

Campaigns-Endpoint

List Campaigns

Retrieves all campaigns for the authenticated user

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string
Enum: "id" "name" "published_date" "completed_contact_count" "active_contact_count" "date_created" "last_updated" "category" "status"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

search_text
string

Optional text to search

Responses

Response Schema: application/json
Array of objects (Campaign)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "campaigns": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Achieve API Goal

Achieves API goal for campaigns with matching integration, callName for a given contactId

path Parameters
callName
required
string

callName

integration
required
string

integration

Request Body schema: application/json

goalEvent

contact_id
required
integer <int64>

Responses

Response Schema: application/json
Array
campaign_id
integer <int64>
goal_id
integer <int64>
message
string
success
boolean

Request samples

Content type
application/json
{
  • "contact_id": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a Campaign

Retrieves a single campaign

path Parameters
campaignId
required
integer <int64>

campaignId

query Parameters
optional_properties
Array of strings

Comma-delimited list of Campaign properties to include in the response. (The fields goals and sequences aren't included, by default.)

Responses

Response Schema: application/json
active_contact_count
integer <int32>
completed_contact_count
integer <int32>
created_by_global_id
integer <int64>
date_created
string <date-time>
error_message
string
Array of objects (Goal)
id
integer <int64>
locked
boolean
name
string
published_date
string <date-time>
published_status
boolean
published_time_zone
string
Array of objects (Sequence)
time_zone
string

Response samples

Content type
application/json
{
  • "active_contact_count": 0,
  • "completed_contact_count": 0,
  • "created_by_global_id": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "error_message": "string",
  • "goals": [
    ],
  • "id": 0,
  • "locked": true,
  • "name": "string",
  • "published_date": "2019-08-24T14:15:22Z",
  • "published_status": true,
  • "published_time_zone": "string",
  • "sequences": [
    ],
  • "time_zone": "string"
}

Add Multiple to Campaign Sequence

Adds a list of contacts to a campaign sequence Response contains a map of the provided list of Contact Ids related to their individual result.

path Parameters
campaignId
required
integer <int64>

campaignId

sequenceId
required
integer <int64>

sequenceId

Request Body schema: application/json

ids

ids
Array of integers <int64> [ items <int64 > ]

Responses

Response Schema: application/json
property name*
additional property
string

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Remove Multiple from Campaign Sequence

Removes a list of contacts from a campaign sequence

path Parameters
campaignId
required
integer <int64>

campaignId

sequenceId
required
integer <int64>

sequenceId

Request Body schema: application/json

ids

ids
Array of integers <int64> [ items <int64 > ]

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Add to Campaign Sequence

Adds a single contact to a campaign sequence

path Parameters
campaignId
required
integer <int64>

campaignId

contactId
required
integer <int64>

contactId

sequenceId
required
integer <int64>

sequenceId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Remove from Campaign Sequence

Removes a single contact from a campaign sequence

path Parameters
campaignId
required
integer <int64>

campaignId

contactId
required
integer <int64>

contactId

sequenceId
required
integer <int64>

sequenceId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Company

Companies-Endpoint

List Companies

Retrieves a list of all companies

query Parameters
company_name
string

Optional company name to query on

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

optional_properties
Array of strings

Comma-delimited list of Company properties to include in the response. (Fields such as notes, fax_number and custom_fields aren't included, by default.)

order
string
Enum: "id" "date_created" "name" "email"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

Responses

Response Schema: application/json
Array of objects (Company)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "companies": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Create a Company

Creates a new company as the authenticated user. NB: Company must contain at least the company name. The country_code is required if region is specified.

You may opt-in or mark a Company as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Company gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

Request Body schema: application/json

company

object (CompanyAddress)
company_name
required
string
Array of objects (CustomFieldValue)
email_address
string
object (CompanyFaxNumber)
notes
string
opt_in_reason
string
object (CompanyPhoneNumber)
website
string

Responses

Response Schema: application/json
object (CompanyAddress)
company_name
string
Array of objects (CustomFieldValue)
email_address
string
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
object (CompanyFaxNumber)
id
integer <int64>
notes
string
object (CompanyPhoneNumber)
website
string

Request samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "custom_fields": [
    ],
  • "email_address": "string",
  • "fax_number": {
    },
  • "notes": "string",
  • "opt_in_reason": "string",
  • "phone_number": {
    },
  • "website": "string"
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "custom_fields": [
    ],
  • "email_address": "string",
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "fax_number": {
    },
  • "id": 0,
  • "notes": "string",
  • "phone_number": {
    },
  • "website": "string"
}

Retrieve Company Model

Get the custom fields and optional properties for the Company object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Retrieve a Company

Retrieves a single company

path Parameters
companyId
required
integer <int64>

companyId

query Parameters
optional_properties
Array of strings

Comma-delimited list of Company properties to include in the response. (Fields such as notes, fax_number and custom_fields aren't included, by default.)

Responses

Response Schema: application/json
object (CompanyAddress)
company_name
string
Array of objects (CustomFieldValue)
email_address
string
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
object (CompanyFaxNumber)
id
integer <int64>
notes
string
object (CompanyPhoneNumber)
website
string

Response samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "custom_fields": [
    ],
  • "email_address": "string",
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "fax_number": {
    },
  • "id": 0,
  • "notes": "string",
  • "phone_number": {
    },
  • "website": "string"
}

Update a Company

Updates a company with only the values provided in the request.

You may opt-in or mark a Company as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Company gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

path Parameters
companyId
required
integer <int64>

companyId

Request Body schema: application/json

company

object (CompanyAddress)
company_name
required
string
Array of objects (CustomFieldValue)
email_address
string
object (CompanyFaxNumber)
notes
string
opt_in_reason
string
object (CompanyPhoneNumber)
website
string

Responses

Response Schema: application/json
object (CompanyAddress)
company_name
string
Array of objects (CustomFieldValue)
email_address
string
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
object (CompanyFaxNumber)
id
integer <int64>
notes
string
object (CompanyPhoneNumber)
website
string

Request samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "custom_fields": [
    ],
  • "email_address": "string",
  • "fax_number": {
    },
  • "notes": "string",
  • "opt_in_reason": "string",
  • "phone_number": {
    },
  • "website": "string"
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "custom_fields": [
    ],
  • "email_address": "string",
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "fax_number": {
    },
  • "id": 0,
  • "notes": "string",
  • "phone_number": {
    },
  • "website": "string"
}

Contact

Contacts-Endpoint

List Contacts

Retrieves a list of all contacts

query Parameters
email
string

Optional email address to query on

family_name
string

Optional last name or surname to query on

given_name
string

Optional first name or forename to query on

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

optional_properties
Array of strings

Comma-delimited list of Contact properties to include in the response. (Some fields such as lead_source_id, custom_fields, and job_title aren't included, by default.)

order
string
Enum: "id" "date_created" "last_updated" "name" "firstName" "email"

Attribute to order items by

order_direction
string
Enum: "ASCENDING" "DESCENDING"

How to order the data i.e. ascending (A-Z) or descending (Z-A)

since
string

Date to start searching from on LastUpdated ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to on LastUpdated ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
Array of objects (RestPartialContact)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "contacts": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Create or Update a Contact

Creates a new contact or updates a contact as the authenticated user. NB: New Contacts must contain at least one item in email_addresses or phone_numbers and country_code is required if region is specified. Existing Contacts are updated with only the values provided in the request. Accepts a duplicate_option which performs duplicate checking by one of the following options: Email, EmailAndName, if a match is found using the option provided, the existing contact will be updated. If an existing contact was not found using the duplicate_option provided, a new contact record will be created.

You may opt-in or mark a Contact as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Contact gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

This API only supports a subset of valid timezones. A list of the supported timezones can be found here.

Request Body schema: application/json

contact

Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (RequestCompanyReference)
contact_type
string
Array of objects (CustomFieldValue)
Array of objects (EmailAddress)
family_name
string
Array of objects (FaxNumber)
given_name
string
job_title
string
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (CreateContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
time_zone
string
website
string
duplicate_option
string
Enum: "Email" "EmailAndName"

Responses

Response Schema: application/json
ScoreValue
string
Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (CompanyReference)
company_name
string
contact_type
string
Array of objects (CustomFieldValue)
date_created
string <date-time>
Array of objects (EmailAddress)
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
family_name
string
Array of objects (FaxNumber)
given_name
string
id
integer <int64>
job_title
string
last_updated
string <date-time>
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (ContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (Relationship)
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
tag_ids
Array of integers <int64> [ items <int64 > ]
time_zone
string
website
string

Request samples

Content type
application/json
{
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "email_addresses": [
    ],
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "job_title": "string",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "time_zone": "string",
  • "website": "string",
  • "duplicate_option": "Email"
}

Response samples

Content type
application/json
{
  • "ScoreValue": "string",
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "company_name": "string",
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "email_addresses": [
    ],
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "id": 0,
  • "job_title": "string",
  • "last_updated": "2019-08-24T14:15:22Z",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "relationships": [
    ],
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "tag_ids": [
    ],
  • "time_zone": "string",
  • "website": "string"
}

Create a Contact

Creates a new contact as the authenticated user. NB: Contact must contain at least one item in email_addresses or phone_numbers and country_code is required if region is specified.

Please see the body schema for updates to the postal code field.

You may opt-in or mark a Contact as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Contact gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

This API only supports a subset of valid timezones. A list of the supported timezones can be found here.

Request Body schema: application/json

contact

Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (RequestCompanyReference)
contact_type
string
Array of objects (CustomFieldValue)
Array of objects (EmailAddress)
family_name
string
Array of objects (FaxNumber)
given_name
string
job_title
string
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (CreateContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
time_zone
string
website
string

Responses

Response Schema: application/json
ScoreValue
string
Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (CompanyReference)
company_name
string
contact_type
string
Array of objects (CustomFieldValue)
date_created
string <date-time>
Array of objects (EmailAddress)
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
family_name
string
Array of objects (FaxNumber)
given_name
string
id
integer <int64>
job_title
string
last_updated
string <date-time>
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (ContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (Relationship)
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
tag_ids
Array of integers <int64> [ items <int64 > ]
time_zone
string
website
string

Request samples

Content type
application/json
{
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "email_addresses": [
    ],
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "job_title": "string",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "time_zone": "string",
  • "website": "string"
}

Response samples

Content type
application/json
{
  • "ScoreValue": "string",
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "company_name": "string",
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "email_addresses": [
    ],
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "id": 0,
  • "job_title": "string",
  • "last_updated": "2019-08-24T14:15:22Z",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "relationships": [
    ],
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "tag_ids": [
    ],
  • "time_zone": "string",
  • "website": "string"
}

Retrieve Contact Model

Get the custom fields and optional properties for the Contact object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Create a Custom Field

Adds a custom field of the specified type and options to the Contact object.

Request Body schema: application/json

customField

field_type
required
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
group_id
integer <int64>

An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab.

label
required
string
Array of objects (CreateRestCustomFieldOption)
user_group_id
integer <int64>

An optional user group to choose from when selecting values for User or UserListBox fields.

Responses

Response Schema: application/json
default_value
string
field_name
string
field_type
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
id
integer <int64>
label
string
Array of objects (CustomFieldOption)
record_type
string
Enum: "CONTACT" "REFERRAL_PARTNER" "OPPORTUNITY" "TASK_NOTE_APPOINTMENT" "COMPANY" "ORDER" "SUBSCRIPTION"

Request samples

Content type
application/json
{
  • "field_type": "Currency",
  • "group_id": 0,
  • "label": "string",
  • "options": [
    ],
  • "user_group_id": 0
}

Response samples

Content type
application/json
{
  • "default_value": "string",
  • "field_name": "string",
  • "field_type": "Currency",
  • "id": 0,
  • "label": "string",
  • "options": [
    ],
  • "record_type": "CONTACT"
}

Delete a Contact

Deletes the specified contact.

path Parameters
contactId
required
integer <int64>

contactId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Update a Contact

Updates a contact with only the values provided in the request.

You may opt-in or mark a Contact as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Contact gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

path Parameters
contactId
required
integer <int64>

contactId

query Parameters
update_mask
Array of strings

An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped.

Request Body schema: application/json

contact

Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (RequestCompanyReference)
contact_type
string
Array of objects (CustomFieldValue)
Array of objects (EmailAddress)
family_name
string
Array of objects (FaxNumber)
given_name
string
job_title
string
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (CreateContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
time_zone
string
website
string

Responses

Response Schema: application/json
ScoreValue
string
Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (CompanyReference)
company_name
string
contact_type
string
Array of objects (CustomFieldValue)
date_created
string <date-time>
Array of objects (EmailAddress)
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
family_name
string
Array of objects (FaxNumber)
given_name
string
id
integer <int64>
job_title
string
last_updated
string <date-time>
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (ContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (Relationship)
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
tag_ids
Array of integers <int64> [ items <int64 > ]
time_zone
string
website
string

Request samples

Content type
application/json
{
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "email_addresses": [
    ],
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "job_title": "string",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "time_zone": "string",
  • "website": "string"
}

Response samples

Content type
application/json
{
  • "ScoreValue": "string",
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "company_name": "string",
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "email_addresses": [
    ],
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "id": 0,
  • "job_title": "string",
  • "last_updated": "2019-08-24T14:15:22Z",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "relationships": [
    ],
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "tag_ids": [
    ],
  • "time_zone": "string",
  • "website": "string"
}

Retrieve Credit Cards

List all Credit Cards on a contact

path Parameters
contactId
required
integer <int64>

contactId

Responses

Response Schema: application/json
Array
card_number
string
card_type
string
id
integer <int64>
validation_status
string

Response samples

Content type
application/json
[
  • {
    }
]

Create a Credit Card

Creates a new credit card associated to a contact

path Parameters
contactId
required
integer <int64>

contactId

Request Body schema: application/json

creditCard

object (ContactAddress)
card_number
string
card_type
string
consent_type
string
Enum: "RECURRING_CONSENT" "IMPLICIT_CONSENT" "EXPLICIT_CONSENT" "NO_CONSENT"
email_address
string
expiration_month
string
expiration_year
string
maestro_issue_number
string
maestro_start_date_month
string
maestro_start_date_year
string
name_on_card
string
verification_code
string

Responses

Response Schema: application/json
object (ContactAddress)
card_type
string
contact_id
integer <int64>
email_address
string
expiration_month
string
expiration_year
string
id
integer <int64>
maestro_issue_number
string
maestro_start_date_month
string
maestro_start_date_year
string
name_on_card
string
validation_message
string
validation_status
string

Request samples

Content type
application/json
{
  • "address": {
    },
  • "card_number": "string",
  • "card_type": "string",
  • "consent_type": "RECURRING_CONSENT",
  • "email_address": "string",
  • "expiration_month": "string",
  • "expiration_year": "string",
  • "maestro_issue_number": "string",
  • "maestro_start_date_month": "string",
  • "maestro_start_date_year": "string",
  • "name_on_card": "string",
  • "verification_code": "string"
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "card_type": "string",
  • "contact_id": 0,
  • "email_address": "string",
  • "expiration_month": "string",
  • "expiration_year": "string",
  • "id": 0,
  • "maestro_issue_number": "string",
  • "maestro_start_date_month": "string",
  • "maestro_start_date_year": "string",
  • "name_on_card": "string",
  • "validation_message": "string",
  • "validation_status": "string"
}

List Emails

List Emails that have been sent to a Contact

path Parameters
contactId
required
integer <int64>

contactId

query Parameters
email
string

Optional email address to query on

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
Array of objects (EmailSentQueryResult)
next
string
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "emails": [
    ],
  • "next": "string",
  • "previous": "string"
}

Create an Email Record

Create a record of an email sent to a contact

path Parameters
contactId
required
integer <int64>

contactId

Request Body schema: application/json

Email records to persist, with content.

clicked_date
string <date-time>
contact_id
integer <int64>
headers
string
html_content
string

Base64 encoded HTML

id
integer <int64>
opened_date
string <date-time>
original_provider
string
Enum: "UNKNOWN" "INFUSIONSOFT" "MICROSOFT" "GOOGLE"

Provider that sent the email case insensitive, must be in list [GOOGLE, INFUSIONSOFT]. If omitted gets mapped to UNKNOWN.

original_provider_id
string

Provider id that sent the email, must be unique when combined with provider. If omitted a UUID without dashes is autogenerated for the record.

plain_content
string

Base64 encoded text

provider_source_id
string

The email address of the synced email account that generated this message.

received_date
string <date-time>
sent_date
string <date-time>
sent_from_address
string
sent_from_reply_address
string
sent_to_address
required
string
sent_to_bcc_addresses
string
sent_to_cc_addresses
string
subject
string

Responses

Response Schema: application/json
clicked_date
string <date-time>
contact_id
integer <int64>
headers
string
html_content
string

Base64 encoded HTML

id
integer <int64>
opened_date
string <date-time>
original_provider
string
Enum: "UNKNOWN" "INFUSIONSOFT" "MICROSOFT" "GOOGLE"

Provider that sent the email case insensitive, must be in list [GOOGLE, INFUSIONSOFT]. If omitted gets mapped to UNKNOWN.

original_provider_id
string

Provider id that sent the email, must be unique when combined with provider. If omitted a UUID without dashes is autogenerated for the record.

plain_content
string

Base64 encoded text

provider_source_id
string

The email address of the synced email account that generated this message.

received_date
string <date-time>
sent_date
string <date-time>
sent_from_address
string
sent_from_reply_address
string
sent_to_address
required
string
sent_to_bcc_addresses
string
sent_to_cc_addresses
string
subject
string

Request samples

Content type
application/json
{
  • "clicked_date": "2019-08-24T14:15:22Z",
  • "contact_id": 0,
  • "headers": "string",
  • "html_content": "string",
  • "id": 0,
  • "opened_date": "2019-08-24T14:15:22Z",
  • "original_provider": "UNKNOWN",
  • "original_provider_id": "string",
  • "plain_content": "string",
  • "provider_source_id": "string",
  • "received_date": "2019-08-24T14:15:22Z",
  • "sent_date": "2019-08-24T14:15:22Z",
  • "sent_from_address": "string",
  • "sent_from_reply_address": "string",
  • "sent_to_address": "string",
  • "sent_to_bcc_addresses": "string",
  • "sent_to_cc_addresses": "string",
  • "subject": "string"
}

Response samples

Content type
application/json
{
  • "clicked_date": "2019-08-24T14:15:22Z",
  • "contact_id": 0,
  • "headers": "string",
  • "html_content": "string",
  • "id": 0,
  • "opened_date": "2019-08-24T14:15:22Z",
  • "original_provider": "UNKNOWN",
  • "original_provider_id": "string",
  • "plain_content": "string",
  • "provider_source_id": "string",
  • "received_date": "2019-08-24T14:15:22Z",
  • "sent_date": "2019-08-24T14:15:22Z",
  • "sent_from_address": "string",
  • "sent_from_reply_address": "string",
  • "sent_to_address": "string",
  • "sent_to_bcc_addresses": "string",
  • "sent_to_cc_addresses": "string",
  • "subject": "string"
}

List Applied Tags

Retrieves a list of tags applied to a given contact

path Parameters
contactId
required
integer <int64>

contactId

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (ContactTag)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "tags": [
    ]
}

Apply Tags

Apply a list of tags to a given contact record

path Parameters
contactId
required
integer <int64>

contactId

Request Body schema: application/json

tagIds

tagIds
Array of integers <int64> [ items <int64 > ]

Responses

Response Schema: application/json
Array
key
string
Enum: "SUCCESS" "DUPLICATE" "CONTACT_NOT_FOUND" "TAG_ID_NOT_FOUND" "FAILURE" "NO_PERMISSION"

Request samples

Content type
application/json
{
  • "tagIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Remove Applied Tags

Removes a list of tags from the given contact. Provide one or more tag ids in the querystring as a comma-separated URIencoded list (%2C is a comma). E.g. DELETE /contacts/{contact_id}/tags?ids=1%2C2%2C3

path Parameters
contactId
required
integer <int64>

contactId

query Parameters
ids
required
string

ids

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Remove Applied Tag

Removes a tag from the given contact

path Parameters
contactId
required
integer <int64>

contactId

tagId
required
integer <int64>

tagId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Insert UTMs for a Contact

Inserts UTMs for the contact specified by the contactId. The authenticated user must have permission to modify the contact utm info

path Parameters
contactId
required
integer <int64>

ID of the contact to insert UTMs for

Request Body schema: application/json

UTM parameters to insert

keapSourceId
required
string

The formId

utmCampaign
string

UTM campaign information

utmContent
string

UTM content information

utmMedium
string

UTM medium information

utmSource
string

UTM source information

utmTerm
string

UTM term information

Responses

Response Schema: application/json
contactUtmId
required
integer <int64>

The contactUtmId identifier

keapSourceId
required
string

The formId

utmCampaign
string

UTM campaign information

utmContent
string

UTM content information

utmMedium
string

UTM medium information

utmSource
string

UTM source information

utmTerm
string

UTM term information

Request samples

Content type
application/json
{
  • "keapSourceId": "6088383224687662",
  • "utmCampaign": "spring_sale",
  • "utmContent": "textlink",
  • "utmMedium": "cpc",
  • "utmSource": "google",
  • "utmTerm": "financial_consulting"
}

Response samples

Content type
application/json
{
  • "contactUtmId": 12,
  • "keapSourceId": "6088383224687662",
  • "utmCampaign": "spring_sale",
  • "utmContent": "textlink",
  • "utmMedium": "cpc",
  • "utmSource": "google",
  • "utmTerm": "financial_consulting"
}

Retrieve a Contact

Retrieves a single contact

The v1 call with optional property i.e. social_accounts[e.g. Instagram, Snapchat, YouTube, or Pinterest]does not return social accounts in response.Documenting it as we are migrating from v1 to v2.Working as expected in v2 call.

path Parameters
id
required
integer <int64>

id

query Parameters
optional_properties
Array of strings

Comma-delimited list of Contact properties to include in the response. (Some fields such as lead_source_id, custom_fields, and job_title aren't included, by default.)

Responses

Response Schema: application/json
ScoreValue
string
Array of objects (ContactAddress)
anniversary
string <date-time>
birthday
string <date-time>
object (CompanyReference)
company_name
string
contact_type
string
Array of objects (CustomFieldValue)
date_created
string <date-time>
Array of objects (EmailAddress)
email_opted_in
boolean
email_status
string
Enum: "UnengagedMarketable" "SingleOptIn" "DoubleOptin" "Confirmed" "UnengagedNonMarketable" "NonMarketable" "Lockdown" "Bounce" "HardBounce" "Manual" "Admin" "System" "ListUnsubscribe" "Feedback" "Spam" "Invalid" "Deactivated"
family_name
string
Array of objects (FaxNumber)
given_name
string
id
integer <int64>
job_title
string
last_updated
string <date-time>
lead_source_id
integer <int64>
middle_name
string
opt_in_reason
string
object (ContactOrigin)
owner_id
integer <int64>
Array of objects (PhoneNumber)
preferred_locale
string
preferred_name
string
prefix
string
Array of objects (Relationship)
Array of objects (SocialAccount)
source_type
string
Enum: "APPOINTMENT" "FORMAPIHOSTED" "FORMAPIINTERNAL" "WEBFORM" "INTERNALFORM" "LANDINGPAGE" "IMPORT" "MANUAL" "API" "OTHER" "UNKNOWN"
spouse_name
string
suffix
string
tag_ids
Array of integers <int64> [ items <int64 > ]
time_zone
string
website
string

Response samples

Content type
application/json
{
  • "ScoreValue": "string",
  • "addresses": [
    ],
  • "anniversary": "2019-08-24T14:15:22Z",
  • "birthday": "2019-08-24T14:15:22Z",
  • "company": {
    },
  • "company_name": "string",
  • "contact_type": "string",
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "email_addresses": [
    ],
  • "email_opted_in": true,
  • "email_status": "UnengagedMarketable",
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "id": 0,
  • "job_title": "string",
  • "last_updated": "2019-08-24T14:15:22Z",
  • "lead_source_id": 0,
  • "middle_name": "string",
  • "opt_in_reason": "string",
  • "origin": {
    },
  • "owner_id": 0,
  • "phone_numbers": [
    ],
  • "preferred_locale": "en_US",
  • "preferred_name": "string",
  • "prefix": "string",
  • "relationships": [
    ],
  • "social_accounts": [
    ],
  • "source_type": "APPOINTMENT",
  • "spouse_name": "string",
  • "suffix": "string",
  • "tag_ids": [
    ],
  • "time_zone": "string",
  • "website": "string"
}

E-Commerce

E-Commerce-Endpoint

List Orders

Retrieves a list of all orders using the specified search criteria. Each order may or may not have items.

Potential values for order status:DRAFT, SENT, VIEWED, PAID

query Parameters
contact_id
integer <int64>

Returns orders for the provided contact id

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string
Enum: "order_date" "update_date"

Attribute to order items by. Dates are ordered by most recent at the top. Default is creation_date.

paid
boolean

Sets paid status of items to return

product_id
integer <int64>

Returns orders containing the provided product id

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
count
integer <int32>
next
string
Array of objects (EcommerceReportingOrder)
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "orders": [
    ],
  • "previous": "string"
}

Create an Order

Create a one time order with order items.

Request Body schema: application/json

createOrder

contact_id
required
integer <int64>
lead_affiliate_id
integer <int64>
order_date
required
string <date-time>
required
Array of objects (CreateOrderItem)
order_title
required
string
order_type
required
string
Enum: "Offline" "Online"
promo_codes
Array of strings

Uses multiple strings as promo codes. The corresponding discount will be applied to the order.

sales_affiliate_id
integer <int64>
object (RestV1AddressInformation)

Responses

Response Schema: application/json
object (EcommerceReportingOrderContactDetails)
creation_date
string
id
integer <int64>
lead_affiliate_id
integer <int64>
modification_date
string
notes
string
order_date
string
Array of objects (OrderItem)
object (RestPaymentPlan)
refund_total
number <double>
sales_affiliate_id
integer <int64>
object (RestV1AddressInformation)
status
string
title
string
total
number <double>
total_due
number <double>
total_paid
number <double>

Request samples

Content type
application/json
{
  • "contact_id": 0,
  • "lead_affiliate_id": 0,
  • "order_date": "2019-08-24T14:15:22Z",
  • "order_items": [
    ],
  • "order_title": "string",
  • "order_type": "Offline",
  • "promo_codes": [
    ],
  • "sales_affiliate_id": 0,
  • "shipping_address": {
    }
}

Response samples

Content type
application/json
{
  • "contact": {
    },
  • "creation_date": "string",
  • "id": 0,
  • "lead_affiliate_id": 0,
  • "modification_date": "string",
  • "notes": "string",
  • "order_date": "string",
  • "order_items": [
    ],
  • "payment_plan": {
    },
  • "refund_total": 0,
  • "sales_affiliate_id": 0,
  • "shipping_information": {
    },
  • "status": "string",
  • "title": "string",
  • "total": 0,
  • "total_due": 0,
  • "total_paid": 0
}

Retrieve Custom Order Model

Get the custom fields for the Order object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Retrieve an Order

Retrieves a single order. The order may or may not have items.

Potential values for order status:DRAFT, SENT, VIEWED, PAID

path Parameters
orderId
required
integer <int64>

orderId

Responses

Response Schema: application/json
allow_payment
boolean
allow_paypal
boolean
object (EcommerceReportingOrderContactDetails)
contact_id
string
creation_date
string
id
integer <int64>
invoice_number
integer <int64>
lead_affiliate_id
integer <int64>
modification_date
string
notes
string
order_date
string
Array of objects (EcommerceReportingOrderItem)
order_type
string
object (EcommerceReportingPaymentPlan)
product_id
string
recurring
boolean
refund_total
number <double>
sales_affiliate_id
integer <int64>
object (EcommerceReportingShippingInformation)
source_type
string
Enum: "INVOICE" "API" "CHECKOUT_FORM" "MANUAL_PAYMENT" "UNKNOWN" "QBO_SYNC"
status
string
terms
string
title
string
total
number <double>
total_due
number <double>
total_paid
number <double>

Response samples

Content type
application/json
{
  • "allow_payment": true,
  • "allow_paypal": true,
  • "contact": {
    },
  • "contact_id": "string",
  • "creation_date": "string",
  • "id": 0,
  • "invoice_number": 0,
  • "lead_affiliate_id": 0,
  • "modification_date": "string",
  • "notes": "string",
  • "order_date": "string",
  • "order_items": [
    ],
  • "order_type": "string",
  • "payment_plan": {
    },
  • "product_id": "string",
  • "recurring": true,
  • "refund_total": 0,
  • "sales_affiliate_id": 0,
  • "shipping_information": {
    },
  • "source_type": "INVOICE",
  • "status": "string",
  • "terms": "string",
  • "title": "string",
  • "total": 0,
  • "total_due": 0,
  • "total_paid": 0
}

Delete an Order

Delete an order that does not have a payment

path Parameters
orderId
required
integer <int64>

orderId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Create an Order Item

Creates an order item on an existing order.

path Parameters
orderId
required
integer <int64>

orderId

Request Body schema: application/json

createOrderItem

description
string
price
string

Overridable price of the product, if not specified, the default will be used. Must be greater than or equal to 0.

product_id
required
integer <int64>

The id of the product to be added to the order.

product_type
string
Enum: "PRODUCT" "DIGITAL"
quantity
required
integer <int32>

Quantity must be greater than or equal to 1

Responses

Response Schema: application/json
billingCycle
integer <int32>
cost
number <double>
description
string
discount
number <double>
frequency
integer <int32>
id
integer <int64>
jobRecurringId
integer <int64>
name
string
notes
string
numberOfPayments
integer <int32>
Array of objects (OrderItemTax)
price
number <double>
object (Product_)
quantity
integer <int32>
recurringBilling
boolean
recurringCyclesCompleted
integer <int32>
recurringEndDate
string
recurringInactive
boolean
recurringNextBillDate
string
recurringStartDate
string
specialAmount
number <double>
specialId
integer <int64>
specialPctOrAmt
integer <int32>
type
string

Request samples

Content type
application/json
{
  • "description": "string",
  • "price": "string",
  • "product_id": 0,
  • "product_type": "PRODUCT",
  • "quantity": 0
}

Response samples

Content type
application/json
{
  • "billingCycle": 0,
  • "cost": 0,
  • "description": "string",
  • "discount": 0,
  • "frequency": 0,
  • "id": 0,
  • "jobRecurringId": 0,
  • "name": "string",
  • "notes": "string",
  • "numberOfPayments": 0,
  • "orderItemTaxes": [
    ],
  • "price": 0,
  • "product": {
    },
  • "quantity": 0,
  • "recurringBilling": true,
  • "recurringCyclesCompleted": 0,
  • "recurringEndDate": "string",
  • "recurringInactive": true,
  • "recurringNextBillDate": "string",
  • "recurringStartDate": "string",
  • "specialAmount": 0,
  • "specialId": 0,
  • "specialPctOrAmt": 0,
  • "type": "string"
}

Delete an Order Item

Delete an order Item on specified Order

path Parameters
orderId
required
integer <int64>

orderId

orderItemId
required
integer <int64>

orderItemId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Replace an Order Pay Plan

Replaces the order's payment plan with the given values.

path Parameters
orderId
required
integer <int64>

orderId

Request Body schema: application/json

paymentPlan

auto_charge
boolean
credit_card_id
integer <int64>
days_between_payments
required
integer <int32>
initial_payment_amount
number <double>
initial_payment_date
string <date>
number_of_payments
required
integer <int32>
object (PaymentGateway)
plan_start_date
required
string <date>

Responses

Response Schema: application/json
auto_charge
boolean
credit_card_id
integer <int64>
days_between_payments
required
integer <int32>
initial_payment_amount
number <double>
initial_payment_date
string <date>
number_of_payments
required
integer <int32>
object (PaymentGateway)
plan_start_date
required
string <date>

Request samples

Content type
application/json
{
  • "auto_charge": true,
  • "credit_card_id": 0,
  • "days_between_payments": 0,
  • "initial_payment_amount": 0,
  • "initial_payment_date": "2019-08-24",
  • "number_of_payments": 0,
  • "payment_gateway": {
    },
  • "plan_start_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "auto_charge": true,
  • "credit_card_id": 0,
  • "days_between_payments": 0,
  • "initial_payment_amount": 0,
  • "initial_payment_date": "2019-08-24",
  • "number_of_payments": 0,
  • "payment_gateway": {
    },
  • "plan_start_date": "2019-08-24"
}

Retrieve Order Payments

Retrieves a list of payments made against a given order, including historical or external payments of cash or credit card.

path Parameters
orderId
required
integer <int64>

orderId

Responses

Response Schema: application/json
Array
amount
number
id
integer <int64>
invoice_id
integer <int64>
last_updated
string <date-time>
note
string
pay_date
string <date-time>
pay_status
string
payment_id
integer <int64>
refund_invoice_payment_id
integer <int64>
skip_commission
boolean

Response samples

Content type
application/json
[
  • {
    }
]

Create a Payment

Creates a payment record that can charge a credit card. Alternatively, adds a record of historical or external payment of cash or credit card.

path Parameters
orderId
required
integer <int64>

orderId

Request Body schema: application/json

createPayment

apply_to_commissions
boolean
charge_now
boolean
credit_card_id
integer <int64>
date
string <date-time>

Used when charge_now:false or inserting historical data. ex 2017-01-01T22:17:59.039Z

notes
string
payment_amount
string
payment_gateway_id
string
payment_method_type
string
Enum: "CREDIT_CARD" "CASH" "CHECK" "TOKEN"

Responses

Response Schema: application/json
id
integer <int64>
invoice_id
integer <int64>
payment_amount
number <double>
payment_status
string
transaction_id
integer <int64>

Request samples

Content type
application/json
{
  • "apply_to_commissions": true,
  • "charge_now": true,
  • "credit_card_id": 0,
  • "date": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "payment_amount": "string",
  • "payment_gateway_id": "string",
  • "payment_method_type": "CREDIT_CARD"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "invoice_id": 0,
  • "payment_amount": 0,
  • "payment_status": "string",
  • "transaction_id": 0
}

Retrieve Order Transactions

Retrieves a list of all transactions on a given order using the specified search criteria

path Parameters
orderId
required
integer <int64>

orderId

query Parameters
contact_id
integer <int64>

Returns transactions for the provided contact id

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (EcommerceReportingTransaction)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "transactions": [
    ]
}

List Subscriptions

Retrieves a list of all subcriptions using the specified search criteria.

query Parameters
contact_id
integer <int64>

Returns subscriptions for the provided contact id

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (Subscription)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "subscriptions": [
    ]
}

Create Subscription

Creates a subscription with the specified product and product subscription id.

Request Body schema: application/json

createSubscription

allow_duplicate
boolean

If true, it will disable the check to see if there is already an identical subscription for the contact. Default is false.

allow_tax
boolean

Only works if the product the product subscription is for is taxable. Default is false.

auto_charge
boolean

Defaults to true.

billing_amount
number <double>

Must be 0 or greater. Default is the price in the product subscription.

contact_id
required
integer <int64>
credit_card_id
integer <int64>

Default is the contact's most recently used card, if auto charge is true. Default is 0 otherwise.

first_bill_date
string <date>

The first day the subscription will bill, in EST. Must not be in the past. Default is today.

payment_gateway_id
integer <int64>

Default is the app's default merchant.

quantity
integer <int32>

Must be greater than 0. Default is 1.

sale_affiliate_id
integer <int64>
subscription_plan_id
integer <int64>

Id of the product subscription.

Responses

Response Schema: application/json
active
boolean
allow_tax
boolean
auto_charge
boolean
billing_amount
number <double>
billing_cycle
string
Enum: "YEAR" "MONTH" "WEEK" "DAY"
billing_frequency
integer <int32>
contact_id
integer <int64>
credit_card_id
integer <int64>
end_date
string <date>
id
integer <int64>
next_bill_date
string <date>
payment_gateway_id
integer <int64>
product_id
integer <int64>
quantity
integer <int64>
sale_affiliate_id
integer <int64>
start_date
string <date>
subscription_plan_id
integer <int64>
use_default_payment_gateway
boolean

Request samples

Content type
application/json
{
  • "allow_duplicate": true,
  • "allow_tax": true,
  • "auto_charge": true,
  • "billing_amount": 0,
  • "contact_id": 0,
  • "credit_card_id": 0,
  • "first_bill_date": "2019-08-24",
  • "payment_gateway_id": 0,
  • "quantity": 0,
  • "sale_affiliate_id": 0,
  • "subscription_plan_id": 0
}

Response samples

Content type
application/json
{
  • "active": true,
  • "allow_tax": true,
  • "auto_charge": true,
  • "billing_amount": 0,
  • "billing_cycle": "YEAR",
  • "billing_frequency": 0,
  • "contact_id": 0,
  • "credit_card_id": 0,
  • "end_date": "2019-08-24",
  • "id": 0,
  • "next_bill_date": "2019-08-24",
  • "payment_gateway_id": 0,
  • "product_id": 0,
  • "quantity": 0,
  • "sale_affiliate_id": 0,
  • "start_date": "2019-08-24",
  • "subscription_plan_id": 0,
  • "use_default_payment_gateway": true
}

Retrieve Subscription Model

Get the custom fields for the Subscription object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

List Transactions

Retrieves a list transactions for a given contact

query Parameters
contact_id
integer <int64>

Returns transactions for the provided contact id

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (EcommerceReportingTransaction)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "transactions": [
    ]
}

Retrieve a Transaction

Retrieves a single transaction

path Parameters
transactionId
required
integer <int64>

transactionId

Responses

Response Schema: application/json
amount
number <double>
collection_method
string
contact_id
integer <int64>
currency
string
errors
string
gateway
string
gateway_account_name
string
id
integer <int64>
order_ids
string
Array of objects (EcommerceReportingOrder)
paymentDate
string
status
string
test
boolean
transaction_date
string
type
string

Response samples

Content type
application/json
{
  • "amount": 0,
  • "collection_method": "string",
  • "contact_id": 0,
  • "currency": "string",
  • "errors": "string",
  • "gateway": "string",
  • "gateway_account_name": "string",
  • "id": 0,
  • "order_ids": "string",
  • "orders": [
    ],
  • "paymentDate": "string",
  • "status": "string",
  • "test": true,
  • "transaction_date": "string",
  • "type": "string"
}

Email

Emails-Endpoint

List Emails

Retrieve a list of emails that have been sent

Keap is currently investigating an issue with degraded performance of this endpoint with very large (millions of records) record sets

query Parameters
contact_id
integer <int64>

Optional Contact Id to find Emails for

email
string

Optional email address to query on

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

ordered
boolean
Default: true

Optional boolean to turn off ORDER BY in SQL query

since_sent_date
string

Optional date to query on, emails sent since the provided date, must be present if untilDate is provided

until_sent_date
string

Optional date to query on, email sent until the provided date

Responses

Response Schema: application/json
count
integer <int32>
Array of objects (EmailSentQueryResult)
next
string
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "emails": [
    ],
  • "next": "string",
  • "previous": "string"
}

Create an Email Record

Create a record of an email sent to a contact

Request Body schema: application/json

Email records to persist, with content.

clicked_date
string <date-time>
contact_id
integer <int64>
headers
string
html_content
string

Base64 encoded HTML

id
integer <int64>
opened_date
string <date-time>
original_provider
string
Enum: "UNKNOWN" "INFUSIONSOFT" "MICROSOFT" "GOOGLE"

Provider that sent the email case insensitive, must be in list [GOOGLE, INFUSIONSOFT]. If omitted gets mapped to UNKNOWN.

original_provider_id
string

Provider id that sent the email, must be unique when combined with provider. If omitted a UUID without dashes is autogenerated for the record.

plain_content
string

Base64 encoded text

provider_source_id
string

The email address of the synced email account that generated this message.

received_date
string <date-time>
sent_date
string <date-time>
sent_from_address
string
sent_from_reply_address
string
sent_to_address
required
string
sent_to_bcc_addresses
string
sent_to_cc_addresses
string
subject
string

Responses

Response Schema: application/json
clicked_date
string <date-time>
contact_id
integer <int64>
headers
string
html_content
string

Base64 encoded HTML

id
integer <int64>
opened_date
string <date-time>
original_provider
string
Enum: "UNKNOWN" "INFUSIONSOFT" "MICROSOFT" "GOOGLE"

Provider that sent the email case insensitive, must be in list [GOOGLE, INFUSIONSOFT]. If omitted gets mapped to UNKNOWN.

original_provider_id
string

Provider id that sent the email, must be unique when combined with provider. If omitted a UUID without dashes is autogenerated for the record.

plain_content
string

Base64 encoded text

provider_source_id
string

The email address of the synced email account that generated this message.

received_date
string <date-time>
sent_date
string <date-time>
sent_from_address
string
sent_from_reply_address
string
sent_to_address
required
string
sent_to_bcc_addresses
string
sent_to_cc_addresses
string
subject
string

Request samples

Content type
application/json
{
  • "clicked_date": "2019-08-24T14:15:22Z",
  • "contact_id": 0,
  • "headers": "string",
  • "html_content": "string",
  • "id": 0,
  • "opened_date": "2019-08-24T14:15:22Z",
  • "original_provider": "UNKNOWN",
  • "original_provider_id": "string",
  • "plain_content": "string",
  • "provider_source_id": "string",
  • "received_date": "2019-08-24T14:15:22Z",
  • "sent_date": "2019-08-24T14:15:22Z",
  • "sent_from_address": "string",
  • "sent_from_reply_address": "string",
  • "sent_to_address": "string",
  • "sent_to_bcc_addresses": "string",
  • "sent_to_cc_addresses": "string",
  • "subject": "string"
}

Response samples

Content type
application/json
{
  • "clicked_date": "2019-08-24T14:15:22Z",
  • "contact_id": 0,
  • "headers": "string",
  • "html_content": "string",
  • "id": 0,
  • "opened_date": "2019-08-24T14:15:22Z",
  • "original_provider": "UNKNOWN",
  • "original_provider_id": "string",
  • "plain_content": "string",
  • "provider_source_id": "string",
  • "received_date": "2019-08-24T14:15:22Z",
  • "sent_date": "2019-08-24T14:15:22Z",
  • "sent_from_address": "string",
  • "sent_from_reply_address": "string",
  • "sent_to_address": "string",
  • "sent_to_bcc_addresses": "string",
  • "sent_to_cc_addresses": "string",
  • "subject": "string"
}

Send an Email

Send an Email to a list of Contacts

Request Body schema: application/json

emailSendRequest

address_field
string

Email field of each Contact record to address the email to, such as 'Email', 'EmailAddress2', 'EmailAddress3' or '_CustomFieldName', defaulting to the contact's primary email

Array of objects (EmailSendRequestAttachment)

Attachments to be sent with each copy of the email, maximum of 10 with size of 1MB each

contacts
required
Array of integers <int64> [ items <int64 > ]

An array of Contact Ids to receive the email

html_content
string

The HTML-formatted content of the email, encoded in Base64

plain_content
string

The plain-text content of the email, encoded in Base64

subject
required
string

The subject line of the email

user_id
required
integer <int64>

The infusionsoft user to send the email on behalf of

Responses

Request samples

Content type
application/json
{
  • "address_field": "string",
  • "attachments": [
    ],
  • "contacts": [
    ],
  • "html_content": "string",
  • "plain_content": "string",
  • "subject": "string",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Create a set of Email Records

Create a set of records of emails sent to contacts, maximum 1000 per transaction.

Request Body schema: application/json

Email records to persist, with content.

Array of objects (EmailSentCreate)

Responses

Response Schema: application/json
Array of objects (EmailSentCreate)
Array of objects (EmailSentCreateError)

Request samples

Content type
application/json
{
  • "emails": [
    ]
}

Response samples

Content type
application/json
{
  • "emails": [
    ],
  • "errors": [
    ]
}

Un-sync a batch of Email Records

Un-syncs a batch of email records

Request Body schema: application/json

emailIds

ids
Array of integers <int64> [ items <int64 > ]

Responses

Response Schema: application/json
property name*
additional property
string

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Retrieve an Email

Retrieves a single email that has been sent

path Parameters
id
required
integer <int64>

id

Responses

Response Schema: application/json
clicked_date
string <date-time>
contact_id
integer <int64>
headers
string
html_content
string

Base64 encoded HTML

id
integer <int64>
opened_date
string <date-time>
original_provider
string
Enum: "UNKNOWN" "INFUSIONSOFT" "MICROSOFT" "GOOGLE"
original_provider_id
string
plain_content
string

Base64 encoded plain text

received_date
string <date-time>
sent_date
string <date-time>
sent_from_address
string
sent_from_reply_address
string
sent_to_address
string
sent_to_bcc_addresses
string
sent_to_cc_addresses
string
subject
string

Response samples

Content type
application/json
{
  • "clicked_date": "2019-08-24T14:15:22Z",
  • "contact_id": 0,
  • "headers": "string",
  • "html_content": "string",
  • "id": 0,
  • "opened_date": "2019-08-24T14:15:22Z",
  • "original_provider": "UNKNOWN",
  • "original_provider_id": "string",
  • "plain_content": "string",
  • "received_date": "2019-08-24T14:15:22Z",
  • "sent_date": "2019-08-24T14:15:22Z",
  • "sent_from_address": "string",
  • "sent_from_reply_address": "string",
  • "sent_to_address": "string",
  • "sent_to_bcc_addresses": "string",
  • "sent_to_cc_addresses": "string",
  • "subject": "string"
}

Delete an Email Record

Delete a specific email record

path Parameters
id
required
integer <int64>

id

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Email Address

Email-Addresses-Endpoint

Replace an Email Address

Replaces all of the values of a given email address

You may opt-in or mark an email address as Marketable by including the following field in the request JSON with an opt-in reason. (This field is also shown in the complete request body sample.) The reason you provide here will help with compliance. Example reasons: "Customer opted-in through webform", "Company gave explicit permission."

"opt_in_reason": "your reason for opt-in"

Note that the email address status will only be updated to unconfirmed (marketable) for email addresses that are currently in the following states: Unengaged Marketable Unengaged Non-Marketable Non-Marketable Opt-Out: Manual All other existing statuses e.g. List Unsubscribe, Opt-Out System etc will remain non-marketable and in their existing state.

path Parameters
email
required
string

email

Request Body schema: application/json

update

opted_in
required
boolean
reason
required
string

Responses

Response Schema: application/json
email
required
string
opted_in
required
boolean
status
required
string
Enum: "Unengaged Marketable" "Unconfirmed" "Confirmed (Legacy)" "Confirmed" "Unengaged NonMarketable" "Non-marketable" "Lockdown" "Soft Bounce" "Hard Bounce" "Opt-Out" "Opt-Out: Admin" "Opt-Out: System" "List Unsubscribe" "Provided Feedback" "Reported Spam" "Invalid Email" "Deactivated/Delinquent Mailbox"

Request samples

Content type
application/json
{
  • "opted_in": true,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "email": "string",
  • "opted_in": true,
  • "status": "Unengaged Marketable"
}

File

File-Endpoint

List Files

Retrieves a list of all files

query Parameters
contact_id
integer <int64>

Filter based on Contact Id, if user has permission to see Contact files.

limit
integer <int32>

Sets a total of items to return

name
string

Filter files based on name, with '*' preceding or following to indicate LIKE queries.

offset
integer <int32>

Sets a beginning range of items to return

permission
string
Enum: "USER" "COMPANY" "BOTH"

Filter based on the permission of files (USER or COMPANY), defaults to BOTH.

type
string
Enum: "Application" "Image" "Fax" "Attachment" "Ticket" "Contact" "DigitalProduct" "Import" "Hidden" "WebForm" "StyledCart" "ReSampledImage" "TemplateThumbnail" "Funnel" "LogoThumbnail" "Unlayer" "BrandingCenterLogo"

Filter based on the type of file.

viewable
string
Enum: "PUBLIC" "PRIVATE" "BOTH"

Include public or private files in response (PUBLIC or PRIVATE), defaults to BOTH.

Responses

Response Schema: application/json
count
integer <int32>
Array of objects (FileDescriptor)
next
string
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "files": [
    ],
  • "next": "string",
  • "previous": "string"
}

Upload File

Upload a base64 encoded file. contact_id is required only when file_association is CONTACT.

Request Body schema: application/json

fileUpload

file_name
required
string
public
boolean
file_data
required
string
contact_id
integer <int64>
is_public
required
boolean
file_association
required
string
Enum: "CONTACT" "USER" "COMPANY"

Responses

Response Schema: application/json
file_data
string
object (FileDescriptor)

Request samples

Content type
application/json
{
  • "file_name": "string",
  • "public": true,
  • "file_data": "string",
  • "contact_id": 0,
  • "is_public": true,
  • "file_association": "CONTACT"
}

Response samples

Content type
application/json
{
  • "file_data": "string",
  • "file_descriptor": {
    }
}

Retrieve File

Retrieves metadata about a specific file. Optionally returns the base64 encoded file data.

path Parameters
fileId
required
integer <int64>

fileId

query Parameters
optional_properties
Array of strings

Comma-delimited list of File properties to include in the response. (Some fields such as file_data aren't included, by default.)

Responses

Response Schema: application/json
file_data
string
object (FileDescriptor)

Response samples

Content type
application/json
{
  • "file_data": "string",
  • "file_descriptor": {
    }
}

Replace File

Upload a base64 encoded file to replace an existing one. contact_id is required only when file_association is CONTACT.

path Parameters
fileId
required
integer <int64>

fileId

Request Body schema: application/json

fileUpload

file_name
required
string
public
boolean
file_data
required
string
contact_id
integer <int64>
is_public
required
boolean
file_association
required
string
Enum: "CONTACT" "USER" "COMPANY"

Responses

Response Schema: application/json
file_data
string
object (FileDescriptor)

Request samples

Content type
application/json
{
  • "file_name": "string",
  • "public": true,
  • "file_data": "string",
  • "contact_id": 0,
  • "is_public": true,
  • "file_association": "CONTACT"
}

Response samples

Content type
application/json
{
  • "file_data": "string",
  • "file_descriptor": {
    }
}

Delete File

Deletes the specified file

path Parameters
fileId
required
integer <int64>

fileId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Locale

Locale-Endpoint

List Countries

Responses

Response Schema: application/json
required
object

A key-value pair of country code and country name.

Response samples

Content type
application/json
{
  • "countries": {
    }
}

List a Country's Provinces

path Parameters
countryCode
required
string

countryCode

Responses

Response Schema: application/json
required
object

A key-value pair of province code and province name.

Response samples

Content type
application/json
{
  • "provinces": {
    }
}

List dropdown default options

Responses

Response Schema: application/json
contact_types
Array of strings
fax_types
Array of strings
phone_types
Array of strings
suffix_types
Array of strings
title_types
Array of strings

Response samples

Content type
application/json
{
  • "contact_types": [
    ],
  • "fax_types": [
    ],
  • "phone_types": [
    ],
  • "suffix_types": [
    ],
  • "title_types": [
    ]
}

Merchant

Merchant-Endpoint

List Merchants

Retrieves a list of all merchant accounts

Responses

Response Schema: application/json
default_merchant_account
integer <int64>
Array of objects (Merchant)

Response samples

Content type
application/json
{
  • "default_merchant_account": 0,
  • "merchant_accounts": [
    ]
}

Note

Notes-Endpoint

List Notes

Retrieves a list of all notes

query Parameters
contact_id
integer <int64>

Filter based on the contact id assigned to the note.

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

user_id
integer <int64>

Filter based on the user id assigned to the note.

Responses

Response Schema: application/json
count
integer <int32>
next
string
Array of objects (Note)
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "notes": [
    ],
  • "previous": "string"
}

Create a Note

Creates a new note as the authenticated user. Either a "title" or "body" is required

Request Body schema: application/json

createNote

body
string
contact_id
required
integer <int64>
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Responses

Response Schema: application/json
body
string
contact_id
integer <int64>
date_created
string <date-time>
id
integer <int64>
last_updated
string <date-time>
object (NoteUser)
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "last_updated_by": {
    },
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Retrieve Note Model

Get the custom fields for the Note object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Create a Custom Field

Adds a custom field of the specified type and options to the Note object.

Request Body schema: application/json

customField

field_type
required
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
group_id
integer <int64>

An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab.

label
required
string
Array of objects (CreateRestCustomFieldOption)
user_group_id
integer <int64>

An optional user group to choose from when selecting values for User or UserListBox fields.

Responses

Response Schema: application/json
default_value
string
field_name
string
field_type
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
id
integer <int64>
label
string
Array of objects (CustomFieldOption)
record_type
string
Enum: "CONTACT" "REFERRAL_PARTNER" "OPPORTUNITY" "TASK_NOTE_APPOINTMENT" "COMPANY" "ORDER" "SUBSCRIPTION"

Request samples

Content type
application/json
{
  • "field_type": "Currency",
  • "group_id": 0,
  • "label": "string",
  • "options": [
    ],
  • "user_group_id": 0
}

Response samples

Content type
application/json
{
  • "default_value": "string",
  • "field_name": "string",
  • "field_type": "Currency",
  • "id": 0,
  • "label": "string",
  • "options": [
    ],
  • "record_type": "CONTACT"
}

Retrieve a Note

Retrieves a single note

path Parameters
noteId
required
integer <int64>

noteId

Responses

Response Schema: application/json
body
string
contact_id
integer <int64>
date_created
string <date-time>
id
integer <int64>
last_updated
string <date-time>
object (NoteUser)
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Response samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "last_updated_by": {
    },
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Replace a Note

Replaces all values of a given note

path Parameters
note
required
integer <int64>

note

Request Body schema: application/json

requestNote

body
string
contact_id
required
integer <int64>
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Responses

Response Schema: application/json
body
string
contact_id
integer <int64>
date_created
string <date-time>
id
integer <int64>
last_updated
string <date-time>
object (NoteUser)
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "last_updated_by": {
    },
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Delete a Note

Deletes a note

path Parameters
noteId
required
integer <int64>

noteId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Update a Note

Updates a note with only the values provided in the request

path Parameters
noteId
required
integer <int64>

noteId

Request Body schema: application/json

note

body
string
contact_id
integer <int64>
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Responses

Response Schema: application/json
body
string
contact_id
integer <int64>
date_created
string <date-time>
id
integer <int64>
last_updated
string <date-time>
object (NoteUser)
title
string
type
string
Enum: "Appointment" "Call" "Email" "Fax" "Letter" "Other"
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "body": "string",
  • "contact_id": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "last_updated_by": {
    },
  • "title": "string",
  • "type": "Appointment",
  • "user_id": 0
}

Opportunity

Opportunities-Endpoint

List Opportunities

Retrieves a list of all opportunities.

Please note: the sample response erroneously shows properties, such as stage reasons, that are unavailable through the list endpoint. Such properties are only available through the retrieve operation. Future versions of the Opportunity resource will correct the oversight.

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string
Enum: "next_action" "opportunity_name" "contact_name" "date_created"

Attribute to order items by

search_term
string

Returns opportunities that match any of the contact's given_name, family_name, company_name, and email_addresses (searches EMAIL1 only) fields as well as opportunity_title

stage_id
integer <int64>

Returns opportunities for the provided stage id

user_id
integer <int64>

Returns opportunities for the provided user id

Responses

Response Schema: application/json
count
integer <int32>
next
string
Array of objects (Opportunity)
previous
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "opportunities": [
    ],
  • "previous": "string"
}

Replace an Opportunity

Replaces all values of a given opportunity

Request Body schema: application/json

opportunity

affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Responses

Response Schema: application/json
affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string <date-time>
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string <date-time>
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Request samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "string",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "string",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "2019-08-24T14:15:22Z",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

Create an Opportunity

Creates a new opportunity as the authenticated user.

Request Body schema: application/json

opportunity

affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Responses

Response Schema: application/json
affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string <date-time>
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string <date-time>
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Request samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "string",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "string",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "2019-08-24T14:15:22Z",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

Retrieve Opportunity Model

Get the custom fields for the Opportunity object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Retrieve an Opportunity

Retrives a single opportunity

path Parameters
opportunityId
required
integer <int64>

opportunityId

query Parameters
optional_properties
Array of strings

Comma-delimited list of Opportunity properties to include in the response. (Some fields such as custom_fields aren't included, by default.)

Responses

Response Schema: application/json
affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string <date-time>
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string <date-time>
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Response samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "2019-08-24T14:15:22Z",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

Update an Opportunity

Updates an opportunity with only the values provided in the request.

Note: The POST payload for this request is identical to 'Replace an Opportunity' operation.

path Parameters
opportunityId
required
integer <int64>

opportunityId

Responses

Response Schema: application/json
affiliate_id
integer <int64>
required
object (OpportunityContact)
Array of objects (CustomFieldValue)
date_created
string <date-time>
estimated_close_date
string <date-time>
id
integer <int64>
include_in_forecast
integer <int32>
last_updated
string <date-time>
next_action_date
string <date-time>
next_action_notes
string
opportunity_notes
string
opportunity_title
required
string
projected_revenue_high
number <double>
projected_revenue_low
number <double>
required
object (SimpleOpportunityStage)
object (SimpleUser)

Response samples

Content type
application/json
{
  • "affiliate_id": 0,
  • "contact": {
    },
  • "custom_fields": [
    ],
  • "date_created": "2019-08-24T14:15:22Z",
  • "estimated_close_date": "2019-08-24T14:15:22Z",
  • "id": 0,
  • "include_in_forecast": 0,
  • "last_updated": "2019-08-24T14:15:22Z",
  • "next_action_date": "2019-08-24T14:15:22Z",
  • "next_action_notes": "string",
  • "opportunity_notes": "string",
  • "opportunity_title": "string",
  • "projected_revenue_high": 0,
  • "projected_revenue_low": 0,
  • "stage": {
    },
  • "user": {
    }
}

List Opportunity Stage Pipeline

Retrieves a list of all opportunity stages with pipeline details

Responses

Response Schema: application/json
Array
end_stage
boolean
is_default
boolean
stage_count
integer <int32>
stage_id
integer <int64>
stage_name
string
stage_order
integer <int32>

Response samples

Content type
application/json
[
  • {
    }
]

Product

Products-Endpoint

List Products

Retrieves a list of all products

query Parameters
active
boolean

Sets status of items to return

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (Product_)
sync_token
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "products": [
    ],
  • "sync_token": "string"
}

Create a Product

Creates a new product

Request Body schema: application/json

createProduct

active
boolean
product_desc
string
product_name
required
string
product_price
number <double>
product_short_desc
string
sku
string
subscription_only
boolean

Responses

Response Schema: application/json
active
boolean
id
required
integer <int64>
product_desc
string
product_name
required
string
product_price
number <double>
product_short_desc
string
sku
string
subscription_only
boolean
Array of objects (ProductSubscription)
url
string

Request samples

Content type
application/json
{
  • "active": true,
  • "product_desc": "string",
  • "product_name": "string",
  • "product_price": 0,
  • "product_short_desc": "string",
  • "sku": "string",
  • "subscription_only": true
}

Response samples

Content type
application/json
{
  • "active": true,
  • "id": 0,
  • "product_desc": "string",
  • "product_name": "string",
  • "product_price": 0,
  • "product_short_desc": "string",
  • "sku": "string",
  • "subscription_only": true,
  • "subscription_plans": [
    ],
  • "url": "string"
}

Retrieve Synced Products Deprecated

The Sync endpoint returns a set of products that have been updated or created since the last result set was retrieved, minus any products that have been deleted.

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

sync_token
string

sync_token

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (ProductStatus)
sync_token
string

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "product_statuses": [
    ],
  • "sync_token": "string"
}

Retrieve a Product

path Parameters
productId
required
integer <int64>

productId

Responses

Response Schema: application/json
active
boolean
id
required
integer <int64>
product_desc
string
product_name
required
string
product_price
number <double>
product_short_desc
string
sku
string
subscription_only
boolean
Array of objects (ProductSubscription)
url
string

Response samples

Content type
application/json
{
  • "active": true,
  • "id": 0,
  • "product_desc": "string",
  • "product_name": "string",
  • "product_price": 0,
  • "product_short_desc": "string",
  • "sku": "string",
  • "subscription_only": true,
  • "subscription_plans": [
    ],
  • "url": "string"
}

Delete a Product

Deletes a product and its subscriptions

path Parameters
productId
required
integer <int64>

productId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Update a Product

Updates a Product with only the values provided in the request.

path Parameters
productId
required
integer <int64>

productId

Request Body schema: application/json

createProduct

active
boolean
product_desc
string
product_name
required
string
product_price
number <double>
product_short_desc
string
sku
string
subscription_only
boolean

Responses

Response Schema: application/json
active
boolean
id
required
integer <int64>
product_desc
string
product_name
required
string
product_price
number <double>
product_short_desc
string
sku
string
subscription_only
boolean
Array of objects (ProductSubscription)
url
string

Request samples

Content type
application/json
{
  • "active": true,
  • "product_desc": "string",
  • "product_name": "string",
  • "product_price": 0,
  • "product_short_desc": "string",
  • "sku": "string",
  • "subscription_only": true
}

Response samples

Content type
application/json
{
  • "active": true,
  • "id": 0,
  • "product_desc": "string",
  • "product_name": "string",
  • "product_price": 0,
  • "product_short_desc": "string",
  • "sku": "string",
  • "subscription_only": true,
  • "subscription_plans": [
    ],
  • "url": "string"
}

Upload a product image

Max payload 3 megabytes, the file_data is base64 encoded.

path Parameters
productId
required
integer <int64>

productId

Request Body schema: application/json

restProductImage

checksum
string

SHA256 checksum of image in Hex.

file_data
required
string

The image data, base64 encoded.

file_name
required
string

The name of the file with extension, must match file data. Acceptable file types: [.png, .gif, .jpg, .jpeg].

Responses

Request samples

Content type
application/json
{
  • "checksum": "string",
  • "file_data": "string",
  • "file_name": "string"
}

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Delete a product image

path Parameters
productId
required
integer <int64>

productId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Create a Product Subscription

Creates a new product subscription

path Parameters
productId
required
integer <int64>

productId

Request Body schema: application/json

createProductSubscription

active
boolean
cycle_type
required
string
Enum: "YEAR" "MONTH" "WEEK" "DAY"
frequency
integer <int32>
number_of_cycles
integer <int32>
plan_price
required
number <double>
subscription_plan_index
integer <int32>

Responses

Response Schema: application/json
active
boolean
cycle_type
required
string
Enum: "YEAR" "MONTH" "WEEK" "DAY"
frequency
integer <int32>
id
required
integer <int64>
number_of_cycles
integer <int32>
plan_price
required
number <double>
subscription_plan_index
integer <int32>
subscription_plan_name
string
url
string

Request samples

Content type
application/json
{
  • "active": true,
  • "cycle_type": "YEAR",
  • "frequency": 0,
  • "number_of_cycles": 0,
  • "plan_price": 0,
  • "subscription_plan_index": 0
}

Response samples

Content type
application/json
{
  • "active": true,
  • "cycle_type": "YEAR",
  • "frequency": 0,
  • "id": 0,
  • "number_of_cycles": 0,
  • "plan_price": 0,
  • "subscription_plan_index": 0,
  • "subscription_plan_name": "string",
  • "url": "string"
}

Retrieve a Product Subscription

path Parameters
productId
required
integer <int64>

productId

subscriptionId
required
integer <int64>

subscriptionId

Responses

Response Schema: application/json
active
boolean
cycle_type
required
string
Enum: "YEAR" "MONTH" "WEEK" "DAY"
frequency
integer <int32>
id
required
integer <int64>
number_of_cycles
integer <int32>
plan_price
required
number <double>
subscription_plan_index
integer <int32>
subscription_plan_name
string
url
string

Response samples

Content type
application/json
{
  • "active": true,
  • "cycle_type": "YEAR",
  • "frequency": 0,
  • "id": 0,
  • "number_of_cycles": 0,
  • "plan_price": 0,
  • "subscription_plan_index": 0,
  • "subscription_plan_name": "string",
  • "url": "string"
}

Delete a Product Subscription

Deletes a product subscription

path Parameters
productId
required
integer <int64>

productId

subscriptionId
required
integer <int64>

subscriptionId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

REST Hooks

What are REST Hooks?

REST Hooks itself is not a specification, it is a collection of patterns that treat webhooks like subscriptions. These subscriptions are manipulated via a REST API just like any other resource.

With most modern REST APIs, polling is the only way to detect changes. But it doesn't have to be. On average, 98.5% of polls are wasted. There is a better way. REST Hooks enable real-time communication and eliminate polling. -- RESTHooks.org

Infusionsoft offers a growing set of REST Hooks to keep you notified of changes in your data. To get started, use List Hook Event Types to discover event types. Event types are identified using noun.verb dot syntax, e.g.: contact.add or invoice.delete.

After you’ve read this documentation, you might be interested in the REST Hook Event and Retry policies.

NB: REST Hooks are not triggered by legacy action sets.

Once you've chosen the events you're interested in, subscribe to them via Create a Hook Subscription.

List Stored Hook Subscriptions

Lists your hook subscriptions.

Responses

Response Schema: application/json
Array
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Response samples

Content type
application/json
[
  • {
    }
]

Create a Hook Subscription

To receive hooks, you'll first need to subscribe to events one at a time and individually verify each subscription.

This operation is used to create hook subscriptions. During this process, Infusionsoft will attempt to verify your subscription. Continue reading to learn how that works.

To verify or reactivate a hook subscription, Infusionsoft will make a POST request with a temporary secret to the hookUrl you provided during creation. The secret is passed as the value of a header named X-Hook-Secret. Your response to that POST must have a status code of 200 and return the same X-Hook-Secret header and value pair. Once you've done that, you'll begin receiving hooks. Don't worry if verification fails; you can always request another verification attempt.

NB: You will not receive events until the subscription is verified.

If the verification process seems confusing, head over to RESTHooks.org for more on the concept.

Request Body schema: application/json

restHookRequest

eventKey
string
hookUrl
string

Responses

Response Schema: application/json
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Request samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string"
}

Response samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string",
  • "key": "string",
  • "status": "Unverified"
}

List Hook Event Types

List the available types of Events that can be listened to

Responses

Response Schema: application/json
Array
string

Response samples

Content type
application/json
[
  • "string"
]

Retrieve a Hook Subscription

Retrieves an existing hook subscription and its status.

If your hook subscription becomes inactive, you may request an activation attempt via Verify a Hook Subscription.

path Parameters
key
required
string

key

Responses

Response Schema: application/json
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Response samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string",
  • "key": "string",
  • "status": "Unverified"
}

Update a Hook Subscription

Modify an existing hook subscription using the provided values.

path Parameters
key
required
string

key

Request Body schema: application/json

restHookRequest

eventKey
string
hookUrl
string

Responses

Response Schema: application/json
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Request samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string"
}

Response samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string",
  • "key": "string",
  • "status": "Unverified"
}

Delete a Hook Subscription

Stop receiving hooks by deleting an existing hook subscription.

path Parameters
key
required
string

key

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Verify a Hook Subscription, Delayed

This operation is used to verify or reactivate a hook subscription out-of-band using RESTHooks.org's Delayed Confirmation pattern.

Use this verification method if you're not able to use the Immediate Confirmation provided through Create a Hook Subscription or Verify a Hook Subscription. This operation allows you to confirm a subscription by manually sending us the X-Hook-Secret you received.

NB: The X-Hook-Secret must be passed as a header.

Don't worry if verification fails; you can always request another verification attempt.

NB: You will not receive events until the subscription is verified.

If the verification process seems confusing, head over to RESTHooks.org for more on the concept.

path Parameters
key
required
string

key

header Parameters
X-Hook-Secret
required
string

X-Hook-Secret

Responses

Response Schema: application/json
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Response samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string",
  • "key": "string",
  • "status": "Unverified"
}

Verify a Hook Subscription

This operation is used to verify or reactivate a hook subscription using RESTHooks.org's Immediate Confirmation pattern.

To verify or reactivate a hook subscription, Infusionsoft will make a POST request with a temporary secret to the hookUrl you provided during creation. The secret is passed as the value of a header named X-Hook-Secret. Your response to that POST must have a status code of 200 and return the same X-Hook-Secret header and value pair. Once you've done that, you'll begin receiving hooks. Don't worry if verification fails; you can always request another verification attempt.

NB: You will not receive events until the subscription is verified.

If the verification process seems confusing, head over to RESTHooks.org for more on the concept.

path Parameters
key
required
string

key

Responses

Response Schema: application/json
eventKey
string
hookUrl
string
key
string
status
string
Enum: "Unverified" "Verified" "Inactive"

Response samples

Content type
application/json
{
  • "eventKey": "string",
  • "hookUrl": "string",
  • "key": "string",
  • "status": "Unverified"
}

Setting

Setting-Endpoint

Retrieve application configuration

Get the properties for the current application's configuration

Responses

Response Schema: application/json
object (RestApplicationConfigurationModuleAffiliate)
object (RestApplicationConfigurationModuleApplication)
object (RestApplicationConfigurationModuleAppointment)
object (RestApplicationConfigurationModuleContact)
object (RestApplicationConfigurationModuleECommerce)
object (RestApplicationConfigurationModuleEMail)
object (RestApplicationConfigurationModuleForms)
object (RestApplicationConfigurationModuleFulfillment)
object (RestApplicationConfigurationModuleInvoice)
object (RestApplicationConfigurationModuleNote)
object (RestApplicationConfigurationModuleOpportunity)
object (RestApplicationConfigurationModuleTask)
object (RestApplicationConfigurationModuleTemplate)

Response samples

Content type
application/json
{
  • "affiliate": {
    },
  • "application": {
    },
  • "appointment": {
    },
  • "contact": {
    },
  • "ecommerce": {
    },
  • "email": {
    },
  • "forms": {
    },
  • "fulfillment": {
    },
  • "invoice": {
    },
  • "note": {
    },
  • "opportunity": {
    },
  • "task": {
    },
  • "template": {
    }
}

Retrieve application status

Retrieves whether the application is enabled

Responses

Response Schema: application/json
value
string

Response samples

Content type
application/json
{
  • "value": "string"
}

List Contact types Deprecated

Lists the Contact types in a comma-separated list.
Note: This is now provided by GET /setting/application/configuration

Responses

Response Schema: application/json
value
string

Response samples

Content type
application/json
{
  • "value": "string"
}

Tags

Tag-Company-Endpoint

List Tags

Retrieve a list of tags defined in the application

query Parameters
category
integer <int64>

Category Id of tags to filter by

limit
integer <int32>

Sets a total of items to return

name
string

Filter for tags with a specific name

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (Tag)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "tags": [
    ]
}

Create Tag

Create a new tag

Request Body schema: application/json

tag

object (CategoryReference)
description
string

The tag description

name
required
string

The tag name

Responses

Response Schema: application/json
object (TagCategory)
description
string

The tag description

id
required
integer <int64>

The id for the tag

name
required
string

The tag name

Request samples

Content type
application/json
{
  • "category": {
    },
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "category": {
    },
  • "description": "string",
  • "id": 0,
  • "name": "string"
}

Create Tag Category

Create a new tag category

Request Body schema: application/json

tagCategory

description
string

The category description

name
required
string

The category name

Responses

Response Schema: application/json
description
string

The category description

id
required
integer <int64>

The id for the tag category

name
required
string

The category name

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "id": 0,
  • "name": "string"
}

Retrieve a Tag

Retrieves a single tag

path Parameters
id
required
integer <int64>

id

Responses

Response Schema: application/json
object (TagCategory)
description
string

The tag description

id
required
integer <int64>

The id for the tag

name
required
string

The tag name

Response samples

Content type
application/json
{
  • "category": {
    },
  • "description": "string",
  • "id": 0,
  • "name": "string"
}

List Tagged Companies

Retrieves a list of companies that have the given tag applied

path Parameters
tagId
required
integer <int64>

tagId

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
Array of objects (TaggedCompany)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "companies": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

List Tagged Contacts

Retrieves a list of contacts that have the given tag applied

path Parameters
tagId
required
integer <int64>

tagId

query Parameters
limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
Array of objects (TaggedContact)
count
integer <int32>
next
string
previous
string

Response samples

Content type
application/json
{
  • "contacts": [
    ],
  • "count": 0,
  • "next": "string",
  • "previous": "string"
}

Apply Tag to Contacts

Apply a tag to a list of contacts

path Parameters
tagId
required
integer <int64>

tagId

Request Body schema: application/json

ids

ids
Array of integers <int64> [ items <int64 > ]

Responses

Response Schema: application/json
Array
key
string
Enum: "SUCCESS" "DUPLICATE" "CONTACT_NOT_FOUND" "TAG_ID_NOT_FOUND" "FAILURE" "NO_PERMISSION"

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Remove Tag from Contacts

Remove a tag from a list of contacts

path Parameters
tagId
required
integer <int64>

tagId

query Parameters
ids
required
Array of integers <int64> [ items <int64 > ]

ids

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Remove Tag from Contact

Remove a tag from a Contact

path Parameters
contactId
required
integer <int64>

contactId

tagId
required
integer <int64>

tagId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Task

Tasks-Endpoint

List Tasks

Retrieves a list of all tasks using the specified search criteria

query Parameters
completed
boolean

Sets completed status of items to return

contact_id
integer <int64>

contact_id

has_due_date
boolean

has_due_date

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string

Attribute to order items by

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

user_id
integer <int64>

user_id

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
sync_token
string
Array of objects (Task)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "sync_token": "string",
  • "tasks": [
    ]
}

Create a Task

Creates a new task as the authenticated user.
Note: Contact must contain at least one item in the fields title and due_date.
All other attributes are optional.
This endpoint does not currently support setting Custom Field values.

Request Body schema: application/json

task

completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Responses

Response Schema: application/json
completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Retrieve Task Model

Get the custom fields for the Task object

Responses

Response Schema: application/json
Array of objects (CustomFieldMetaData)
optional_properties
Array of strings

Response samples

Content type
application/json
{
  • "custom_fields": [
    ],
  • "optional_properties": [
    ]
}

Create a Custom Field

Creates a custom field of the specified type and options to the Task object

Request Body schema: application/json

customField

field_type
required
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
group_id
integer <int64>

An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab.

label
required
string
Array of objects (CreateRestCustomFieldOption)
user_group_id
integer <int64>

An optional user group to choose from when selecting values for User or UserListBox fields.

Responses

Response Schema: application/json
default_value
string
field_name
string
field_type
string
Enum: "Currency" "Date" "DateTime" "DayOfWeek" "Drilldown" "Email" "Month" "ListBox" "Name" "WholeNumber" "DecimalNumber" "Percent" "PhoneNumber" "Radio" "Dropdown" "SocialSecurityNumber" "State" "Text" "TextArea" "User" "UserListBox" "Website" "Year" "YesNo"
id
integer <int64>
label
string
Array of objects (CustomFieldOption)
record_type
string
Enum: "CONTACT" "REFERRAL_PARTNER" "OPPORTUNITY" "TASK_NOTE_APPOINTMENT" "COMPANY" "ORDER" "SUBSCRIPTION"

Request samples

Content type
application/json
{
  • "field_type": "Currency",
  • "group_id": 0,
  • "label": "string",
  • "options": [
    ],
  • "user_group_id": 0
}

Response samples

Content type
application/json
{
  • "default_value": "string",
  • "field_name": "string",
  • "field_type": "Currency",
  • "id": 0,
  • "label": "string",
  • "options": [
    ],
  • "record_type": "CONTACT"
}

Search Tasks

Retrieves Tasks belonging to the authenticated user using the specified search criteria

query Parameters
completed
boolean

Sets completed status of items to return

contact_id
integer <int64>

Returns tasks for the provided contact id

has_due_date
boolean

Returns tasks that have an 'action date' when set to true

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

order
string

Attribute to order items by

since
string

Date to start searching from ex. 2017-01-01T22:17:59.039Z

until
string

Date to search to ex. 2017-01-01T22:17:59.039Z

user_id
integer <int64>

Returns tasks for the provided user id

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
sync_token
string
Array of objects (Task)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "sync_token": "string",
  • "tasks": [
    ]
}

Retrieve a Task

Retrieves a single task

path Parameters
taskId
required
string

taskId

Responses

Response Schema: application/json
completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Response samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Replace a Task

Replaces a task with the values provided in the request. This endpoint does not currently support updating Custom Field values.

path Parameters
taskId
required
string

taskId

Request Body schema: application/json

task

completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Responses

Response Schema: application/json
completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Delete a Task

Permanently deletes a task

path Parameters
taskId
required
string

taskId

Responses

Response samples

Content type
application/json
{
  • "cause": {
    },
  • "localizedMessage": "string",
  • "message": "string",
  • "stackTrace": [
    ],
  • "suppressed": [
    ]
}

Update a Task

Updates a task with only the values provided in the request. This endpoint does not currently support updating Custom Field values.

path Parameters
taskId
required
string

taskId

Request Body schema: application/json

task

completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Responses

Response Schema: application/json
completed
boolean
completion_date
string <date-time>
object (BasicContact)
creation_date
string <date-time>
description
string
due_date
string <date-time>
funnel_id
integer <int64>
jgraph_id
integer <int64>
modification_date
string <date-time>
priority
integer <int32>
remind_time
integer <int32>

Value in minutes before start_date to show pop-up reminder.
Acceptable values are in [5,10,15,30,60,120,240,480,1440,2880]

title
string
type
string
url
string
user_id
integer <int64>

Request samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "completed": true,
  • "completion_date": "2019-08-24T14:15:22Z",
  • "contact": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "due_date": "2019-08-24T14:15:22Z",
  • "funnel_id": 0,
  • "jgraph_id": 0,
  • "modification_date": "2019-08-24T14:15:22Z",
  • "priority": 0,
  • "remind_time": 0,
  • "title": "string",
  • "type": "string",
  • "url": "string",
  • "user_id": 0
}

User Info

UserInfo-Endpoint

Retrieve User Info

Retrieves information for the current authenticated end-user, as outlined by the OpenID Connect specification.

Responses

Response Schema: application/json
email
required
string
family_name
required
string
given_name
required
string
global_user_id
required
integer <int64>
infusionsoft_id
required
string
is_admin
boolean
middle_name
string
preferred_name
string
sub
required
string

Response samples

Content type
application/json
{
  • "email": "string",
  • "family_name": "string",
  • "given_name": "string",
  • "global_user_id": 0,
  • "infusionsoft_id": "string",
  • "is_admin": true,
  • "middle_name": "string",
  • "preferred_name": "string",
  • "sub": "string"
}

Users

Users-Endpoint

List Users

Retrieves a list of all users

query Parameters
include_inactive
boolean

Include users that are Inactive in results, defaults to TRUE

include_partners
boolean

Include partner users in results, defaults to TRUE

limit
integer <int32>

Sets a total of items to return

offset
integer <int32>

Sets a beginning range of items to return

Responses

Response Schema: application/json
count
integer <int32>
next
string
previous
string
Array of objects (RestUser)

Response samples

Content type
application/json
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "users": [
    ]
}

Create a User

Creates a new user record. NB: Users will be invited to the application and remain in the "Invited" status until the user accepts the invite. "Inactive" users will not take up a user license.

Request Body schema: application/json

user

admin
boolean
email
required
string
given_name
required
string
partner
boolean

Responses

Response Schema: application/json
object (Address)
company_name
string
created_by
integer <int64>
date_created
string <date-time>
email_address
string
family_name
string
Array of objects (FaxNumber)
given_name
string
global_user_id
integer <int64>
id
required
integer <int64>
infusionsoft_id
string
job_title
string
last_updated
string <date-time>
last_updated_by
integer <int64>
middle_name
string
partner
boolean
Array of objects (PhoneNumber)
preferred_name
string
status
string
Enum: "Active" "Invited" "Inactive"
time_zone
string
website
string

Request samples

Content type
application/json
{
  • "admin": true,
  • "email": "string",
  • "given_name": "string",
  • "partner": true
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "company_name": "string",
  • "created_by": 0,
  • "date_created": "2019-08-24T14:15:22Z",
  • "email_address": "string",
  • "family_name": "string",
  • "fax_numbers": [
    ],
  • "given_name": "string",
  • "global_user_id": 0,
  • "id": 0,
  • "infusionsoft_id": "string",
  • "job_title": "string",
  • "last_updated": "2019-08-24T14:15:22Z",
  • "last_updated_by": 0,
  • "middle_name": "string",
  • "partner": true,
  • "phone_numbers": [
    ],
  • "preferred_name": "string",
  • "status": "Active",
  • "time_zone": "string",
  • "website": "string"
}

Get User email signature

Retrieves a HTML snippet that contains the user's email signature.

path Parameters
userId
required
integer <int64>

userId

Responses

Response Schema: application/json
string

Response samples

Content type
application/json
"string"