Optimizely Smart Campaigns API

Manage smart campaigns that automate multi-step marketing workflows.

Operations 65

GET /{clientId}/smartcampaigns List smart campaigns #
POST /{clientId}/smartcampaigns Create or copy a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId} Get a smart campaign #
POST /{clientId}/smartcampaigns/{campaignId} Update the name of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId} Delete a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/start Start a smart campaign #
POST /{clientId}/smartcampaigns/{campaignId}/pause Pause a smart campaign #
POST /{clientId}/smartcampaigns/{campaignId}/activate Activate a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/deactivate Deactivate a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/abtest Get information about a "A/B test" node of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/abtest Create or update an "A/B test" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/abtest Delete an "A/B test" node of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/abtest/successors/{nodeId} Get information about a connection from an "A/B test" node #
POST /{clientId}/smartcampaigns/{campaignId}/abtest/successors/{nodeId} Create or update a connection from a "A/B test" node #
DELETE /{clientId}/smartcampaigns/{campaignId}/abtest/successors/{nodeId} Delete a connection from a "A/B test" node to another node #
GET /{clientId}/smartcampaigns/{campaignId}/abtest/successors Get information about all connections from an "A/B test" node #
DELETE /{clientId}/smartcampaigns/{campaignId}/abtest/successors Delete all connections from the "A/B test" node to other nodes #
GET /{clientId}/smartcampaigns/{campaignId}/analysis Get analysis data of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/analysis Schedule new recipient analysis for a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/analysis Cancel a running recipient analysis of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/block Get information about a "Block" node of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/block Create or update a "Block" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/block Delete a "Block" node of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/cap Get information about a "Limit" node of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/cap Create or update a "Limit" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/cap Delete a "Limit" node of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/messages Get information about all mailings of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/messages Create a mailing #
GET /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId} Get information about a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId} Update a mailing #
DELETE /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId} Delete a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/attachments Add attachments into a campaign message. Only applicable for campaign message of type email #
DELETE /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/attachments Delete attachments of a campaign message. Only applicable for campaign message of type email #
GET /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/content Get the content of a mailing (email) #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/content Update the content of a mailing #
DELETE /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/content Delete the content of a mailing (email) #
GET /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/test/{testMailingId} Get information about the sending status of all recipients of a test mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/test Send a test mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/tracking/links/{trackingLinkId} Update the tracking link configuration of a mailing #
GET /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/tracking Get information about the tracking configuration of a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/tracking Update the tracking configuration of a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/pause Pause a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/start Start a mailing #
POST /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/stop Stop a mailing #
GET /{clientId}/smartcampaigns/{campaignId}/recipientLists Get information about a "Recipients" node #
POST /{clientId}/smartcampaigns/{campaignId}/recipientLists Create or update a "Recipients" node #
GET /{clientId}/smartcampaigns/{campaignId}/schedules Get information about all "Wait" nodes of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/schedules Create a new "Wait" node in a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/schedules/{waitNodeId} Get information about a "Wait" node of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/schedules/{waitNodeId} Update a "Wait" node in a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/schedules/{waitNodeId} Delete a "Wait" node in a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/targetGroups Get information about all "Target groups" nodes of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/targetGroups Create or update a "Target groups" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/targetGroups Delete all "Target groups" nodes of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/targetGroups/{filterNodeId} Get information about a "Target groups" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/targetGroups/{filterNodeId} Delete a "Target groups" node of a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/throttles Get information about all "Throttle" nodes of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/throttles Create a new "Throttle" node in a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/throttles/{throttleNodeId} Get information about a "Throttle" node of a Smart Campaign #
POST /{clientId}/smartcampaigns/{campaignId}/throttles/{throttleNodeId} Update a "Throttle" node of a Smart Campaign #
DELETE /{clientId}/smartcampaigns/{campaignId}/throttles/{throttleNodeId} Delete a "Throttle" node in a Smart Campaign #
GET /{clientId}/smartcampaigns/{campaignId}/report Get a campaign report #
POST /{clientId}/smartcampaigns/{campaignId}/stop Cancel a Smart Campaign #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/optimizely-smart-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optimizely-smart-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Smart Campaigns API
  version: '1.0'
  description: 'Operations tagged Smart Campaigns across 2 of this provider''s published API definitions: optimizely-campaign-openapi.yml, optimizely-campaign-optimizely-campaign-rest-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.campaign.episerver.net/rest
  description: Optimizely Campaign Production Server
tags:
- name: Smart Campaigns
  description: Manage smart campaigns that automate multi-step marketing workflows.
paths:
  /{clientId}/smartcampaigns:
    get:
      operationId: listSmartCampaigns
      summary: List smart campaigns
      description: Returns a list of smart campaigns for the specified client.
      tags:
      - Smart Campaigns
      parameters:
      - $ref: '#/components/parameters/clientId'
      responses:
        '200':
          description: Successfully retrieved smart campaigns
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SmartCampaign'
        '401':
          description: Authentication credentials are missing or invalid
      security:
      - basicAuth: []
    post:
      tags:
      - Smart Campaigns
      summary: Create or copy a Smart Campaign
      operationId: createOrCopySmartCampaign
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CampaignRequestData'
      responses:
        '201':
          description: The Smart Campaign was created or copied successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
      description: Optimizely Campaign Production Server
  /{clientId}/smartcampaigns/{campaignId}:
    get:
      operationId: getSmartCampaign
      summary: Get a smart campaign
      description: Retrieves the details of a specific smart campaign.
      tags:
      - Smart Campaigns
      parameters:
      - $ref: '#/components/parameters/clientId'
      - $ref: '#/components/parameters/campaignId'
      responses:
        '200':
          description: Successfully retrieved the smart campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartCampaign'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Smart campaign not found
      security:
      - basicAuth: []
    post:
      tags:
      - Smart Campaigns
      summary: Update the name of a Smart Campaign
      operationId: updateCampaignMessage_2
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: New campaign name
      responses:
        '200':
          description: The Smart Campaign name was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete a Smart Campaign
      operationId: deleteSmartCampaign
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The Smart Campaign was deleted successfully.
        '400':
          description: 'The Smart Campaign #" + campaignMailing.getMailingId() + " cannot be deleted as it contains already started messages.'
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
      description: Optimizely Campaign Production Server
  /{clientId}/smartcampaigns/{campaignId}/start:
    post:
      operationId: startSmartCampaign
      summary: Start a smart campaign
      description: Starts the specified smart campaign, beginning the automated workflow execution.
      tags:
      - Smart Campaigns
      parameters:
      - $ref: '#/components/parameters/clientId'
      - $ref: '#/components/parameters/campaignId'
      responses:
        '200':
          description: Smart campaign successfully started
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Smart campaign not found
      security:
      - basicAuth: []
    servers:
    - url: https://api.campaign.episerver.net/rest
      description: Optimizely Campaign Production Server
  /{clientId}/smartcampaigns/{campaignId}/pause:
    post:
      operationId: pauseSmartCampaign
      summary: Pause a smart campaign
      description: Pauses the specified smart campaign.
      tags:
      - Smart Campaigns
      parameters:
      - $ref: '#/components/parameters/clientId'
      - $ref: '#/components/parameters/campaignId'
      responses:
        '200':
          description: Smart campaign successfully paused
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Smart campaign not found
      security:
      - basicAuth: []
    servers:
    - url: https://api.campaign.episerver.net/rest
      description: Optimizely Campaign Production Server
  /{clientId}/smartcampaigns/{campaignId}/activate:
    post:
      tags:
      - Smart Campaigns
      summary: Activate a Smart Campaign
      description: Activate a Smart Campaign. The Smart Campaign will change status to "Activated".
      operationId: activateSmartCampaign
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The Smart Campaign was activated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
        '409':
          description: The Smart Campaign could not be activated because it must be in status "Activation required".
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/deactivate:
    post:
      tags:
      - Smart Campaigns
      summary: Deactivate a Smart Campaign
      description: Deactivate a Smart Campaign. The Smart Campaign will change status to "Activation required".
      operationId: deactivateSmartCampaign
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The Smart Campaign was deactivated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSmartCampaign'
        '409':
          description: The Smart Campaign could not be deactivated because it must be in status "Activated".
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/abtest:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about a "A/B test" node of a Smart Campaign
      description: Get detailed information about a "A/B test" node of a Smart Campaign, such as mode (e.g. best open rate, best click rate), scheduled time or fallback.
      operationId: getSplitNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The "A/B test" node was retrieved successfully (empty response if no "A/B test" node was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
        '404':
          description: The "A/B test" node could not be found in the Smart Campaign. Ensure that the required parameters such as "campaignId" are correct and the "A/B test" node exists.
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Create or update an "A/B test" node of a Smart Campaign
      description: Create or update an "A/B test" node of a Smart Campaign. You can enable and specify optimization mode and set predecessor and successor node.
      operationId: createOrUpdateSplitNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SplitRequestData'
      responses:
        '200':
          description: The "A/B test" node was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
        '201':
          description: The "A/B test" node was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSplitNode'
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete an "A/B test" node of a Smart Campaign
      operationId: deleteSplitNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The "A/B test" node of the Smart Campaign was deleted successfully.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/abtest/successors/{nodeId}:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about a connection from an "A/B test" node
      description: Get detailed information about a connection from an "A/B test" node to other nodes, such as target group or relative or absolute number of recipients.
      operationId: getSuccessor
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: nodeId
        in: path
        description: Successor node ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The connection was retrieved successfully (empty response if no successor node was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSplitSuccessor'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSplitSuccessor'
        '404':
          description: The successor node could not be found. Ensure that the required parameters such as "campaignId" or "nodeId" are correct and the successor node exists.
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Create or update a connection from a "A/B test" node
      description: Create or update a connection from a "A/B test" node. You can specify target groups or predecessor and successor node.
      operationId: createOrUpdateSuccessorEdge
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: nodeId
        in: path
        description: Successor node ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SplitSuccessorRequestData'
      responses:
        '200':
          description: The "A/B test" connection was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSplitSuccessor'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestSplitSuccessor'
        '201':
          description: The "A/B test" connection was created successfully.
        '404':
          description: The "A/B test" successor node could not be found. Ensure that the required parameters such as "campaignId" or "nodeId" are correct and the successor node exists.
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete a connection from a "A/B test" node to another node
      operationId: deleteSuccessorEdge
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: nodeId
        in: path
        description: Successor node ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The connection to the successor node was deleted successfully.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/abtest/successors:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about all connections from an "A/B test" node
      description: Get detailed information about all connections from an "A/B test" node to other nodes, such as target group or relative or absolute number of recipients.
      operationId: findSuccessors
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The connections were retrieved successfully (empty response if no successor node was found).
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestSplitSuccessor'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestSplitSuccessor'
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete all connections from the "A/B test" node to other nodes
      operationId: deleteSuccessorEdges
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: All connections from the "A/B test" node were deleted successfully.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/analysis:
    get:
      tags:
      - Smart Campaigns
      summary: Get analysis data of a Smart Campaign
      description: Get detailed analysis data of a Smart Campaign, such as start date of the analysis, current state of the analysis or the number of mailing recipients.
      operationId: getAnalysisData
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The analysis data was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestAnalysisData'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestAnalysisData'
        '409':
          description: The analysis data could not be retrieved because the analysis is not finished or was not started.
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Schedule new recipient analysis for a Smart Campaign
      operationId: scheduleAnalysis
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '202':
          description: The recipient analysis was scheduled.
        '400':
          description: The request is invalid. The recipient analysis cannot be started.
        '409':
          description: The maximum number of simultaneously running campaign analyses was reached.
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Cancel a running recipient analysis of a Smart Campaign
      operationId: cancelAnalysis
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The recipient analysis of the Smart Campaign was cancelled successfully.
        '404':
          description: There is no recipient analysis for the specified Smart Campaign.
        '409':
          description: The recipient analysis of the Smart Campaign could not be cancelled because it is not running.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/block:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about a "Block" node of a Smart Campaign
      description: Get detailed information about a "Block" node of a Smart Campaign, such as custom blacklist IDs or node ID.
      operationId: getBlockNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The "Block" node was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
        '404':
          description: The "Block" node could not be found. Ensure that the required parameters such as "campaignId" are correct and the "Block" node exists.
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Create or update a "Block" node of a Smart Campaign
      description: Create or update a "Block" node of a Smart Campaign, such as custom blacklist IDs or predecessor and successor node.
      operationId: createOrUpdateBlockNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BlockRequestData'
      responses:
        '200':
          description: The "Block" node was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
        '201':
          description: The "Block" node was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestBlockNode'
        '400':
          description: Invalid request. Limit the number of "customblacklistIds" (default maximum is three).
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete a "Block" node of a Smart Campaign
      operationId: deleteBlockNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The "Block" node was deleted successfully.
        '404':
          description: The "Block" node could not be found in the Smart Campaign. Ensure that the required parameters such as "campaignId" are correct and the "Block" node exists.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/cap:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about a "Limit" node of a Smart Campaign
      description: Get detailed information about a "Limit" node of a Smart Campaign, such as relative or absolute number of recipients or node ID.
      operationId: getCapNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The "Limit" node was retrieved successfully (empty response if no "Limit" node was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCapNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCapNode'
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Create or update a "Limit" node of a Smart Campaign
      description: Create or update a "Limit" node of a Smart Campaign, such as relative or absolute number of recipients or predecessor and successor node.
      operationId: createOrUpdateCapNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CapRequestData'
      responses:
        '200':
          description: The "Limit" node was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCapNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCapNode'
        '201':
          description: The "Limit" node was created successfully.
        '400':
          description: Invalid request. Use either "relative" or "absolute" parameter.
      security:
      - Authorization: []
    delete:
      tags:
      - Smart Campaigns
      summary: Delete a "Limit" node of a Smart Campaign
      operationId: deleteCapNode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The "Limit" node was deleted successfully.
        '404':
          description: The "Limit" node could not be found in the Smart Campaign. Ensure that the required parameters such as "campaignId" are correct and the "Limit" node exists.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/messages:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about all mailings of a Smart Campaign
      operationId: getMessages
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The mailings of given Smart Campaign were retrieved successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestMessageNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestMessageNode'
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Create a mailing
      description: Create a Smart Campaign mailing and specify information such as sender address, name, content (plain text) or media code.
      operationId: createCampaignMessage
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: string
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MessageRequestData'
      responses:
        '201':
          description: The mailing was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestMessageNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestMessageNode'
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}:
    get:
      tags:
      - Smart Campaigns
      summary: Get information about a mailing
      description: Get detailed information about a mailing of a Smart Campaign, such as status, format, type or creation date.
      operationId: getSmartCampaignMessage_1
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: mailingId
        in: path
        description: Campaign mailing ID
        required: true
        schema:
          type: integer
          format: int64
      - name: campaignId
        in: path
        description: Smart Campaign ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The mailing was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestMessageNode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestMessageNode'
      security:
      - Authorization: []
    post:
      tags:
      - Smart Campaigns
      summary: Update a mailing
      description: Update information of a mailing, such as name, subject or content.
      operationId: updateCampaignMessage_1
      parameters:
      - name: clientId
        in: path
        description: Client ID
        r

# --- truncated at 32 KB (122 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-smart-campaigns-api-openapi.yml