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.

Documentation

Specifications

Other Resources

OpenAPI Specification

act-on-rest-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: act-on-api-1
  version: '2.0'
servers:
- url: https://api.actonsoftware.com
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
security:
- sec0: []
paths:
  /api/1/user/{email}:
    delete:
      summary: Delete account user
      description: Delete one user from an account.
      operationId: delete-account-user
      parameters:
      - name: email
        in: path
        description: Enter the email address of the user
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/account/senders:
    get:
      summary: Get defined email senders
      description: Get a list of all defined email senders for the account.
      operationId: get-defined-email-senders
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/customevents:
    post:
      summary: Upload custom events
      description: Upload a set of custom events with a simple HTTP POST to the Fact API.
      operationId: upload-custom-events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                destination:
                  type: string
                  description: Specify a unique name for the custom event.
                fieldseparator:
                  type: string
                  description: Set field separator character ("TAB", "COMMA", "SEMICOLON", "SPACE" )
                quotecharacter:
                  type: string
                  description: Set field quote character ("NONE", "SINGLE_QUOTE", "DOUBLE_QUOTE")
                firstrow:
                  type: string
                  description: Does the first row of the source data contain a heading? ("Y","N")
                customeventaction:
                  type: string
                  description: Set the event type of the custom event. ("CUSTOM_DOWNLOADED", "CUSTOM_REGISTERED",
                    "CUSTOM_ATTENDED", "CUSTOM_GENERAL", "CUSTOM_GENERAL1", "CUSTOM_GENERAL2", "CUSTOM_GENERAL3",
                    "CUSTOM_GENERAL4", "CUSTOM_GENERAL5")
                emailcolidx:
                  type: string
                  description: Column index (zero-based) for email in the source file.
                datecolidx:
                  type: string
                  description: Column index (zero-based) for the date for the custom event in the source
                    file.
                titlecolidx:
                  type: string
                  description: Column index (zero-based) for the event title for the custom event in the
                    source file.
                dateformat:
                  type: string
                  description: 'dateformat Examples: <p>   SLASH FORMATS: MM/dd/yyyy (01/25/2023) dd/MM/yyyy
                    (25/01/2023) MM/dd/yy (01/25/2023) dd/MM/yy (01/25/23) yyyy/MM/dd (2023/01/25) </p>
                    <p>DASH FORMATS: MM-dd-yyyy (01-25-2023) dd-MM-yyyy (25-01-2023) MM-dd-yy (01-25-2023)
                    dd-MM-yy (01-25-23) yyyy-MM-dd (2023-01-25)   </p>  <p> TEXTUAL MONTH: dd MMM yyyy
                    (25 Jan 2032) MMM dd yyyy (Jan 25 2023) dd MMMM yyyy (25 Jaunuary 2023) EEE, dd MMM
                    yyyy (Tue, 25 Jan 2023) EEEE, dd MMMM yyyy (Tuesday, 25 January 2023) </p>'
                filename:
                  type: string
                notecolidx:
                  type: string
                  description: Column index (zero-based) for an optional note from the source file.
                titlecount:
                  type: string
                  description: Set the number of new titles you expect to add from the source file. There's
                    no need to count existing titles already within the custom touch event
                File:
                  type: string
                  format: binary
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/customevents/{id}/status:
    get:
      summary: Get upload custom event status
      description: Get the status of a custom event upload a simple HTTP GET to the Fact & Reporting API
      operationId: get-upload-custom-event-status
      parameters:
      - name: id
        in: path
        description: The jobId returned from the "Upload Custom Event" request.
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/logo:
    get:
      summary: Get logo list
      description: Get a list of the logos in the account.
      operationId: get-logo-list
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{\n  \"offset\": 0,\n  \"count\": 1,\n  \"totalCount\": 1,\n  \"result\": [\n\
                    \    {\n      \"url_str\": \"https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg\"\
                    ,\n      \"url_str_ts\": \"https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg?ts=1725501381852\"\
                    ,\n      \"alt_txt\": \"Act-On Logo\",\n      \"tool_tip\": \"Act-On\",\n      \"\
                    target_url\": \"https://www.act-on.com/\",\n      \"id\": \"i-4\",\n      \"title\"\
                    : \"Act-On Logo\"\n    }\n  ]\n}"
              schema:
                type: object
                properties:
                  offset:
                    type: integer
                    example: 0
                    default: 0
                  count:
                    type: integer
                    example: 1
                    default: 0
                  totalCount:
                    type: integer
                    example: 1
                    default: 0
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        url_str:
                          type: string
                          example: https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg
                        url_str_ts:
                          type: string
                          example: https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg?ts=1725501381852
                        alt_txt:
                          type: string
                          example: Act-On Logo
                        tool_tip:
                          type: string
                          example: Act-On
                        target_url:
                          type: string
                          example: https://www.act-on.com/
                        id:
                          type: string
                          example: i-4
                        title:
                          type: string
                          example: Act-On Logo
      deprecated: false
    post:
      summary: Add a logo
      description: Add a logo image file or URL to your account.
      operationId: add-a-logo
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Specify a name for the image
                alttext:
                  type: string
                  description: Specify the alternative text for the image
                tooltip:
                  type: string
                  description: Specify the text to display when hovering over the image
                targeturl:
                  type: string
                  description: Specify the target URL for the image.
                file:
                  type: string
                  description: Attach the image file
                  format: binary
                imagelink:
                  type: string
                  description: Specify the link to the image file.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{\n    \"status\": \"success\",\n    \"message\": \"The logo has been uploaded\"\
                    ,\n    \"id\": \"i-6\"\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: The logo has been uploaded
                  id:
                    type: string
                    example: i-6
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Invalid File Type:
                  value: "{\n    \"errorCode\": 10085,\n    \"message\": \"Invalid file type specified\"\
                    \n}"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10085
                    default: 0
                  message:
                    type: string
                    example: Invalid file type specified
        '422':
          description: '422'
          content:
            application/json:
              examples:
                Missing Parameters:
                  value: "{\n    \"errorCode\": 10121,\n    \"message\": \"Missing parameter - name\"\n\
                    }"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10121
                    default: 0
                  message:
                    type: string
                    example: Missing parameter - name
      deprecated: false
  /api/1/logo/{id}:
    get:
      summary: Get a logo
      description: Gets the specified logo from your account.
      operationId: get-a-logo
      parameters:
      - name: id
        in: path
        description: Specify the ID of the logo
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful response:
                  value: "{\n  \"url_str\": \"https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg\"\
                    ,\n  \"url_str_ts\": \"https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg?ts=1725503918599\"\
                    ,\n  \"alt_txt\": \"Act-On Logo\",\n  \"tool_tip\": \"Act-On\",\n  \"target_url\"\
                    : \"https://www.act-on.com/\",\n  \"id\": \"i-4\",\n  \"title\": \"Act-On Logo\"\n\
                    }"
              schema:
                type: object
                properties:
                  url_str:
                    type: string
                    example: https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg
                  url_str_ts:
                    type: string
                    example: https://forpci4.actonsoftware.com/acton/cx/b522/logo5.jpeg?ts=1725503918599
                  alt_txt:
                    type: string
                    example: Act-On Logo
                  tool_tip:
                    type: string
                    example: Act-On
                  target_url:
                    type: string
                    example: https://www.act-on.com/
                  id:
                    type: string
                    example: i-4
                  title:
                    type: string
                    example: Act-On Logo
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Invalid ID:
                  value: "{\n  \"errorCode\": 10054,\n  \"message\": \"The id is invalid\"\n}"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10054
                    default: 0
                  message:
                    type: string
                    example: The id is invalid
      deprecated: false
    put:
      summary: Update a logo
      description: Updates the information for an existing logo in your logo repository.
      operationId: update-a-logo
      parameters:
      - name: id
        in: path
        description: Specify the ID of the logo
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Specify a name for the image.
                alttext:
                  type: string
                  description: Specify the alternative text for the image.
                tooltip:
                  type: string
                  description: Specify the text to display when hovering over the image.
                targeturl:
                  type: string
                  description: Specify the target URL for the image.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{\n    \"status\": \"success\",\n    \"message\": \"The logo has been updated\"\
                    ,\n    \"id\": \"i-5\"\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: The logo has been updated
                  id:
                    type: string
                    example: i-5
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Invalid ID:
                  value: "{\n    \"errorCode\": 10054,\n    \"message\": \"The id is invalid\"\n}"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10054
                    default: 0
                  message:
                    type: string
                    example: The id is invalid
      deprecated: false
    delete:
      summary: Delete a logo
      description: Delete the specified logo from your account.
      operationId: delete-a-logo
      parameters:
      - name: id
        in: path
        description: Specify the ID of the logo
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{\n    \"status\": \"success\",\n    \"message\": \"Logo i-4 has been deleted\"\
                    \n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: Logo i-4 has been deleted
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"errorCode\": 10054,\n    \"message\": \"The id is invalid\"\n}"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10054
                    default: 0
                  message:
                    type: string
                    example: The id is invalid
      deprecated: false
  /api/1/header:
    get:
      summary: Get header list
      description: Get a list of headers in the account.
      operationId: get-header-list
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/header/{id}:
    get:
      summary: Get a header
      description: Get the specified header from your account.
      operationId: get-a-header
      parameters:
      - name: id
        in: path
        description: Specify the ID of the header
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
    put:
      summary: Update a header
      description: Update the specified header.
      operationId: update-a-header
      parameters:
      - name: id
        in: path
        description: Specify the ID of the header
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: Name of Header
                html:
                  type: string
                  description: Content of HTML version
                text:
                  type: string
                  description: Content of plain text version
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful  Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
    delete:
      summary: Delete a header
      description: Delete the specified header from your account.
      operationId: delete-a-header
      parameters:
      - name: id
        in: path
        description: Specify the ID of the header
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/header/:
    post:
      summary: Add a header
      description: Add a new header to your account.
      operationId: add-a-header
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: Header Name
                html:
                  type: string
                  description: Contents of HTML version of header
                text:
                  type: string
                  description: Contents of plain text version of header
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/footer:
    get:
      summary: Get footer list
      description: Get a list of footers in your account.
      operationId: get-footer-list
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/footer/{id}:
    get:
      summary: Get a footer
      description: Get the specified footer by ID. Act-On assigns integer IDs to footers in numerical
        order when added, starting with the default footer with ID of 0 at account initiation.
      operationId: get-a-footer
      parameters:
      - name: id
        in: path
        description: Specify the ID of the footer
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
    delete:
      summary: Delete a footer
      description: Delete an existing footer from the account.
      operationId: delete-a-footer
      parameters:
      - name: id
        in: path
        description: Specify the ID of the footer to be deleted
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
    put:
      summary: Update a footer
      description: Update an existing footer in the account.
      operationId: update-a-footer
      parameters:
      - name: id
        in: path
        description: Specify the ID of the footer
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: Name of Footer
                html:
                  type: string
                  description: Specify valid HTML for the footer.
                text:
                  type: string
                  description: Specify the text version of the footer.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/footer/:
    post:
      summary: Add a new footer
      description: 'Add a new footer to your account. To view default formatting for footers, use the
        Get footer list API. The default footer (id 0) contains standard elements that you might want
        to re-use while creating a new footer. <p>When you add a new footer, Act-On automatically assigns
        an id. You can, however, assign a meaningful footer title of your choosing.</p> <p>NOTE: the request
        must be URL form encoded.</p>'
      operationId: add-a-new-footer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: Name of footer
                html:
                  type: string
                  description: Content of HTML version
                text:
                  type: string
                  description: Content of plain text version
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
  /api/1/image:
    get:
      summary: Get image list
      description: Get a list of the images in your account.
      operationId: get-image-list
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "[\n  {\n    \"entries\": [\n      {\n        \"creation_time\": \"1725391646761\"\
                    ,\n        \"size\": 2728719,\n        \"thumb\": \"http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg\"\
                    ,\n        \"name\": \"Cell Phone Call.jpg\",\n        \"width\": \"2500\",\n    \
                    \    \"id\": \"f-745b73d6-234d-4082-90ed-f0071c51fa36\",\n        \"last_modified\"\
                    : \"1725391646769\",\n        \"url\": \"http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg\"\
                    ,\n        \"height\": \"2500\"\n      }\n    ],\n    \"name\": \"Default Folder\"\
                    \n  }\n]"
              schema:
                type: array
                items:
                  type: object
                  properties:
                    entries:
                      type: array
                      items:
                        type: object
                        properties:
                          creation_time:
                            type: string
                            example: '1725391646761'
                          size:
                            type: integer
                            example: 2728719
                            default: 0
                          thumb:
                            type: string
                            example: http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg
                          name:
                            type: string
                            example: Cell Phone Call.jpg
                          width:
                            type: string
                            example: '2500'
                          id:
                            type: string
                            example: f-745b73d6-234d-4082-90ed-f0071c51fa36
                          last_modified:
                            type: string
                            example: '1725391646769'
                          url:
                            type: string
                            example: http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg
                          height:
                            type: string
                            example: '2500'
                    name:
                      type: string
                      example: Default Folder
      deprecated: false
    post:
      summary: Add an image
      description: 'Add a new image to your account. <p>NOTE: This is a "multipart/form-data" post.</p>'
      operationId: add-an-image
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Specify a name for the image
                file:
                  type: string
                  format: binary
                foldername:
                  type: string
                  description: Specify the foler name you would like the image to be added to
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{}{\n    \"status\": \"success\",\n    \"message\": \"The file has been uploaded\"\
                    ,\n    \"id\": \"f-b9305f9e-f90c-416e-b609-51ccffebbb40\"\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Invalid file Type:
                  value: "{\n    \"errorCode\": 10085,\n    \"message\": \"Invalid file type specified\"\
                    \n}"
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 10085
                    default: 0
                  message:
                    type: string
                    example: Invalid file type specified
      deprecated: false
  /api/1/image/{id}:
    get:
      summary: Get an image
      description: Get the image, specified by Act-On id, from the account. To obtain a list of all images
        in the account the associated ids, use Get image list.
      operationId: get-an-image
      parameters:
      - name: id
        in: path
        description: Specify the ID of the image
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Successful Response:
                  value: "{\n  \"id\": \"f-745b73d6-234d-4082-90ed-f0071c51fa36\",\n  \"image_url\": \"\
                    http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg\"\
                    ,\n  \"thumb_url\": \"http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg\"\
                    ,\n  \"size\": 2728719,\n  \"last_modified\": 1725391646769,\n  \"creation_time\"\
                    : 1725391646761,\n  \"display_name\": \"Cell Phone Call.jpg\",\n  \"folder_name\"\
                    : \"Default Folder\",\n  \"version\": 0\n}"
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: f-745b73d6-234d-4082-90ed-f0071c51fa36
                  image_url:
                    type: string
                    example: http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg
                  thumb_url:
                    type: string
                    example: http://a46370.actonservice.com/cdnr/forpci4/acton/attachment/46370/f-745b73d6-234d-4082-90ed-f0071c51fa36/1/-/-/-/-/image.jpg
                  size:
                    type: integer
                    example: 2728719
                    default: 0
                  last_modified:
                    type: integer
                    example: 1725391646769
                    default: 0
                  creation_time:
                    type: integer
                    example: 1725391646761
                    default: 0
                  display_name:
                    type: string
                    example: Cell Phone Call.jpg
                  folder_name:
                    type: string
                    example: Default Folder
                  version:
                    type: integer
                    example: 0
                    default: 0
      deprecated: false
    put:
      summary: Update an image
      description: Replace an existing image in the image repository.
      operationId: update-an-image
      parameters:
      - name: id
        in: path
        description: Specify the ID of the image
        schema:
          type: string
        required: tr

# --- truncated at 32 KB (250 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/act-on/refs/heads/main/openapi/act-on-rest-api-openapi.yml