How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Act-On REST API

OAuth 2.0 REST API for Act-On marketing automation — contacts and lists, segments, email messages and campaigns, media and creative assets, landing pages and forms, subscriptions, imports, custom events, and reporting. Covers the /api/1, /ucl/v2 and /ete/v1 path generations, 134 operations in total.

This API exposes 125 operations across 88 paths. It is described by OpenAPI 3.1.0, at version 2.0.

Requests are made against a single base URL, https://api.actonsoftware.com.

125 operations 88 paths 0 schemas 21 DELETE67 GET17 POST20 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
2.0
Base URL
https://api.actonsoftware.com
Authentication
API Key
Resource Areas
1

Authentication & Security 1

Act-On REST API declares 1 security scheme for authenticating requests. An API key is passed in the header as Authorization (sec0). By default, every request must be authenticated.

Paths & Operations 125

Across 88 paths, the API surfaces 125 operations — 21 DELETE, 67 GET, 17 POST, 20 PUT. Each is listed below with its method, path, parameters, and response codes.

Operations 125
DELETE
/api/1/user/{email}
Delete account user
delete-account-user 1 param → 200
GET
/api/1/account/senders
Get defined email senders
get-defined-email-senders → 200
POST
/api/1/customevents
Upload custom events
upload-custom-events body → 200
GET
/api/1/customevents/{id}/status
Get upload custom event status
get-upload-custom-event-status 1 param → 200
GET
/api/1/logo
Get logo list
get-logo-list → 200
POST
/api/1/logo
Add a logo
add-a-logo body → 200400422
GET
/api/1/logo/{id}
Get a logo
get-a-logo 1 param → 200404
PUT
/api/1/logo/{id}
Update a logo
update-a-logo 1 param body → 200400
DELETE
/api/1/logo/{id}
Delete a logo
delete-a-logo 1 param → 200404
GET
/api/1/header
Get header list
get-header-list → 200
GET
/api/1/header/{id}
Get a header
get-a-header 1 param → 200
PUT
/api/1/header/{id}
Update a header
update-a-header 1 param body → 200
DELETE
/api/1/header/{id}
Delete a header
delete-a-header 1 param → 200
POST
/api/1/header/
Add a header
add-a-header body → 200
GET
/api/1/footer
Get footer list
get-footer-list → 200
GET
/api/1/footer/{id}
Get a footer
get-a-footer 1 param → 200
DELETE
/api/1/footer/{id}
Delete a footer
delete-a-footer 1 param → 200
PUT
/api/1/footer/{id}
Update a footer
update-a-footer 1 param body → 200
POST
/api/1/footer/
Add a new footer
add-a-new-footer body → 200
GET
/api/1/image
Get image list
get-image-list → 200
POST
/api/1/image
Add an image
add-an-image body → 200400
GET
/api/1/image/{id}
Get an image
get-an-image 1 param → 200
PUT
/api/1/image/{id}
Update an image
update-an-image 1 param body → 200
DELETE
/api/1/image/{id}
Delete an image
delete-an-image 1 param → 200404
GET
/api/1/media/
Get media list
get-media-list → 200
GET
/api/1/media/{id}
Get media file
get-media-file 1 param → 200
PUT
/api/1/media/{id}
Update Media File
update-media-file 1 param body → 200400
DELETE
/api/1/media/{id}
Delete a media object
delete-a-media-object 1 param → 200404
POST
/api/1/media
Add a media file
add-a-media-file body → 200403
POST
/api/1/medialink
Add a media link
add-a-media-link body → 200400
GET
/api/1/form
Get form list
get-form-list → 200
GET
/api/1/form/{id}/urls
Get classic form URLs
get-classic-form-urls 1 param → 200
GET
/api/1/page
Get landing page list
get-landing-page-list → 200
GET
/api/1/page/{id}
Get landing page
get-landing-page 1 param → 200
DELETE
/api/1/page/{id}
Delete landing page
delete-landing-page 1 param → 200
GET
/api/1/page/{id}/urls
Get landing page URLs
get-landing-page-urls 1 param → 200
GET
/api/1/program
Get list of programs
get-list-of-programs 1 param → 200
GET
/api/1/message/{id}/report
Get message report
get-message-report 1 param → 200400
GET
/api/1/message/{id}/report/{drilldown}
Get message report drilldown
get-message-report-drilldown 5 params → 200400404
GET
/api/1/message/report
Get message report by time period
get-message-report-by-time-period 1 param → 200400
GET
/api/1/media/{id}/report/
Get media report
get-media-report 1 param → 200400
GET
/api/1/media/{id}/report/messages
Get media message report
get-media-message-report 1 param → 200
GET
/api/1/media/{id}/report/views
Get a media view report
get-a-media-view-report 1 param → 200400
GET
/api/1/media/{id}/report/timeline
Get a media timeline report
get-a-media-timeline-report 1 param → 200400
GET
/api/1/form/{id}/report
Get form report
get-form-report 1 param → 200400
GET
/api/1/page/{id}/report
Get landing page report
get-landing-page-report 1 param → 200400
GET
/api/1/message?
Get message list
get-message-list 3 params → 200
POST
/api/1/message
Add new template or draft message
add-new-template-or-draft-message body → 200
GET
/api/1/campaigns/{id}
Get Campaign
get-campaign 1 param → 200
GET
/api/1/campaigns
Get Campaigns List
get-campaigns-list → 200
POST
/api/1/message/{msgid}/send
Send a message
send-a-message 2 params body → 200400
PUT
/api/1/message/{msgid}/send
Resend a message
resend-a-message 1 param body → 200
PUT
/api/1/message/{id}
Update template or draft message
update-template-or-draft-message 1 param body → 200
DELETE
/api/1/message/{id}
Delete a message
delete-a-message 1 param → 200
GET
/api/1/message/{id}/{recid}
Get message HTML contents
get-message-html-contents 2 params → 200
POST
/ete/v1/email/{accountid}/{templateid}
ETE Request
ete-request 2 params → 200400500
GET
/api/1/seoreport
Get a new SEO report
get-a-new-seo-report 2 params → 200
GET
/api/1/seokeywords
Get SEO keywords
get-seo-keywords 1 param → 200
GET
/api/1/list/{listid}/record/{recordid}/facts
Get contact history and score
get-contact-history-and-score 2 params → 200
GET
/api/1/list/{listid}/record/{recordid}
Get contact record
get-contact-record 2 params → 200400
DELETE
/api/1/list/{listid}/record/{recordid}
Delete a contact
delete-a-contact 2 params → 200400
DELETE
/api/1/list/{listid}/record
Delete records from a list
delete-records-from-a-list 2 params → 200
GET
/api/1/list/lookup
Get contact record ID based on cookie value
get-contact-record-id-based-on-cookie-value 1 param → 200
GET
/api/1/list/lookup/{listid}
Get contact from list based on cookie ID or e-mail
get-contact-from-list-based-on-cookie-id-or-e-mail 3 params → 200400
PUT
/api/1/subscription/setcategories
Set Multiple Subscriptions by email address
set-multiple-subscriptions-by-email-address body → 200
PUT
/api/1/subscription/optout
Update Subscription by Email
update-subscription-by-email body → 200
GET
/api/1/subscription/optout
Get subscription opt-outs by category
get-subscription-opt-outs-by-category 3 params → 200
GET
/api/1/list
Get list of Act-On Assets
get-list-of-act-on-assets 3 params → 200
POST
/api/1/list
Create a new list
create-a-new-list body → 200
GET
/api/1/list/{listid}
Download List
download-list 10 params → 200
PUT
/api/1/list/{listid}
Update or merge a list
update-or-merge-a-list 1 param body → 200400
DELETE
/api/1/list/{listid}
Delete a list
delete-a-list 1 param → 200
GET
/api/1/list/{jobid}/status
Get list upload status
get-list-upload-status 1 param → 200400
GET
/api/1/list/rejectedUploadRecords
Get rejected records from an upload
get-rejected-records-from-an-upload 1 param → 400
GET
/api/1/subscription/category
Get Subscription Categories
get-subscription-categories
GET
/api/1/list/hardbounce
Get hard bounce list
get-hard-bounce-list 4 params → 200
GET
/api/1/list/spamcomplaint
Get spam complaint list
get-spam-complaint-list 4 params → 200
GET
/api/1/list/optout
Get Opt Out List
get-opt-out-list 4 params → 200
PUT
/api/1/list/optout
Update optout list
update-optout-list body → 200
PUT
/api/1/list/optin
Remove Opt Outs
remove-opt-outs-1 body → 200
POST
/ucl/v2/{accountId}/import/contacts/{importDefinitionId}
Import Contacts
import-contacts 3 params body → 200400401403413415500
GET
/ucl/v2/{accountId}/import/definition
Get Import Definitions
get-import-definitions 1 param → 200400401415500
POST
/ucl/v2/{accountId}/import/definition
Create an Import Definition
create-an-import-definition 1 param body → 200400401415500
GET
/ucl/v2/{accountId}/import/definition/{importDefinitionId}
Get Import Definition by Id
get-import-definition-by-id 2 params → 200400401404415500
PUT
/ucl/v2/{accountId}/import/definition/{importDefinitionId}
Update an Import Definition
update-an-import-definition 2 params body → 200400
DELETE
/ucl/v2/{accountId}/import/definition/{importDefinitionId}
Delete Import Definition by Id
delete-import-definition-by-id 2 params → 200400401415500
GET
/ucl/v2/{accountId}/import/status/{importId}
Get Import status
get-import-status 2 params → 200400401415500
GET
/ucl/v2/{accountId}/contact/
Get contacts from the Act-On Contacts List
get-contacts-from-the-act-on-contacts-list 7 params → 200400406415
POST
/ucl/v2/{accountId}/contact/
Add a single contact to the Act-On Contacts List
add-a-single-contact-to-the-act-on-contacts-list 2 params body → 200400406409415
POST
/ucl/v2/{accountId}/contact/byFields
Get contacts from the Act-On Contacts List specifying the fields to be returned
get-contacts-from-the-act-on-contacts-list-specifying-the-fields-to-be-returned 7 params body → 200400
GET
/ucl/v2/{accountId}/contact/cookieId/{cookieId}
Get contact in the Act-On Contacts List by cookie id
get-contact-in-the-act-on-contacts-list-by-cookie-id 2 params → 200400404415500
GET
/ucl/v2/{accountId}/contact/email/{emailAddress}
Get contacts from the Act-On Contacts List by email address
get-contacts-from-the-act-on-contacts-list-by-email-address 4 params → 200400406415
PUT
/ucl/v2/{accountId}/contact/email/{emailAddress}
Update contacts in the Act-On Contacts List by email address
update-contacts-in-the-act-on-contacts-list-by-email-address 3 params body → 200400406415
DELETE
/ucl/v2/{accountId}/contact/email/{emailAddress}
Delete contact in the Act-On Contacts List by email address
delete-contact-in-the-act-on-contacts-list-by-email-address 3 params → 200400404406500
DELETE
/ucl/v2/{accountId}/contact/emails
Delete contacts in the Act-On Contacts List by emails
delete-contacts-in-the-act-on-contacts-list-by-emails 2 params body → 200400406500
GET
/ucl/v2/{accountId}/contact/externalId/{objectType}/{externalId}
Get contact in the Act-On Contacts List by externalId and object type
get-contact-in-the-act-on-contacts-list-by-externalid-and-object-type 3 params → 200400404406415
PUT
/ucl/v2/{accountId}/contact/externalId/{objectType}/{externalId}
Update contact in the Act-On Contacts list by externalId & objectType, fallback to email match
update-contact-in-the-act-on-contacts-list-by-externalid-objecttype-fallback-to-email-match 4 params body → 200400406415
DELETE
/ucl/v2/{accountId}/contact/externalId/{objectType}/{externalId}
Delete contact in the Act-On Contacts List by externalId and object type
delete-contact-in-the-act-on-contacts-list-by-externalid-and-object-type 3 params → 200400404406500
GET
/ucl/v2/{accountId}/contact/id/{id}
Get contact in the Act-On Contacts List by id
get-contact-in-the-act-on-contacts-list-by-id 2 params → 200400404406415
PUT
/ucl/v2/{accountId}/contact/id/{id}
Update contact in the Act-On Contacts List by id
update-contact-in-the-act-on-contacts-list-by-id 2 params body → 200400404406415
DELETE
/ucl/v2/{accountId}/contact/ids
Delete contacts in the Act-On Contacts List by ids
delete-contacts-in-the-act-on-contacts-list-by-ids 1 param body → 200400
GET
/ucl/v2/{accountId}/contactReport/email/{emailAddress}/activity
Get contact history by email address
get-contact-history-by-email-address 3 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/email/{emailAddress}/scores
Get all scores for a contact by email address
get-all-scores-for-a-contact-by-email-address 2 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/email/{emailAddress}/segments
Get all segments that the contact belong by email address
get-all-segments-that-the-contact-belong-by-email-address 2 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/externalId/{objectType}/{externalId}/activity
Get contact history by externalId and object type
get-contact-history-by-externalid-and-object-type 4 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/externalId/{objectType}/{externalId}/scores
Get all scores for a contact by externalId and object type
get-all-scores-for-a-contact-by-externalid-and-object-type 3 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/externalId/{objectType}/{externalId}/segments
Get all segments that the contact belong by externalId and object type
get-all-segments-that-the-contact-belong-by-externalid-and-object-type 3 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/id/{id}/activity
Get contact history by id
get-contact-history-by-id 3 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/id/{id}/scores
Get all scores for a contact by id
get-all-scores-for-a-contact-by-id 2 params → 200400404415
GET
/ucl/v2/{accountId}/contactReport/id/{id}/segments
Get all segments that the contact belong by id
get-all-segments-that-the-contact-belong-by-id 2 params → 200400404415
GET
/ucl/v2/{accountId}/schema/
Get Schema
get-schema 3 params → 200400415
POST
/ucl/v2/{accountId}/schema/field/
Add Field
add-field 1 param body → 200400415500
PUT
/ucl/v2/{accountId}/schema/field/{fieldId}
Update FieldDefinition
update-fielddefinition 2 params body → 200400415500
DELETE
/ucl/v2/{accountId}/schema/field/{fieldId}
Delete Field
delete-field 2 params → 200400415500
GET
/ucl/v2/{accountId}/segment/
Get Segments
get-segments 3 params → 200400415500
POST
/ucl/v2/{accountId}/segment/
Create a segment
create-a-segment 1 param body → 200400409415
GET
/ucl/v2/{accountId}/segment/{segmentId}
Get Segment by Id
get-segment-by-id 2 params → 200400404415500
PUT
/ucl/v2/{accountId}/segment/{segmentId}
Update Segment. If it's a Direct Select Segment, only the name can be updated.
update-segment-if-its-a-direct-select-segment-only-the-name-can-be-updated 2 params body → 200400403404415
DELETE
/ucl/v2/{accountId}/segment/{segmentId}
Delete Segment
delete-segment 2 params → 200400403404415500
GET
/ucl/v2/{accountId}/segment/{segmentId}/contacts
Get Contacts from a Segment
get-contacts-from-a-segment 4 params → 200400404415500
PUT
/ucl/v2/{accountId}/segment/{segmentId}/contacts
Add Contacts to a Direct Select Segment
add-contacts-to-a-direct-select-segment 2 params body → 200400415500
DELETE
/ucl/v2/{accountId}/segment/{segmentId}/contacts
Remove Contacts from Direct Select Segment
remove-contacts-from-direct-select-segment 2 params body → 200400415500
DELETE
/ucl/v2/{accountId}/segment/{segmentId}/email/contact
Remove Contacts from Direct Select Segment by email
remove-contacts-from-direct-select-segment-by-email 4 params → 200400404415500
PUT
/ucl/v2/{accountId}/segment/{segmentId}/externalId/contacts
Add Contacts to a Direct Select Segment By External id
add-contacts-to-a-direct-select-segment-by-external-id 2 params body → 200400415500
DELETE
/ucl/v2/{accountId}/segment/{segmentId}/externalId/contacts
Remove Contacts from Direct Select Segment by external id
remove-contacts-from-direct-select-segment-by-external-id 2 params body → 200400415500

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

act-on-rest-api-openapi.yml Raw ↑
Where this information came from

This is an independent, third-party profile of Act-On REST API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.