Optimizely · Capability

Optimizely Campaign REST API

The Optimizely Campaign REST API provides programmatic access to Optimizely's email and omnichannel campaign management capabilities. Developers can use the API to manage campaigns, recipients, mailing lists, smart campaigns, transactional mails, and messaging workflows. The API is hosted at api.campaign.episerver.net and supports automation of marketing campaign operations, enabling integration with external systems and custom marketing workflows. The base URL includes the client ID for multi-tenant access.

Run with Naftiko OptimizelyAPI

What You Can Do

GET
Listrecipients — List recipients
/{clientId}/recipients/{recipientListId}
POST
Addrecipient — Add a recipient
/{clientId}/recipients/{recipientListId}
GET
Getrecipient — Get a recipient
/{clientId}/recipients/{recipientListId}/{recipientId}
PUT
Updaterecipient — Update a recipient
/{clientId}/recipients/{recipientListId}/{recipientId}
DELETE
Deleterecipient — Delete a recipient
/{clientId}/recipients/{recipientListId}/{recipientId}
GET
Listsmartcampaigns — List smart campaigns
/{clientId}/smartcampaigns
GET
Getsmartcampaign — Get a smart campaign
/{clientId}/smartcampaigns/{campaignId}
POST
Startsmartcampaign — Start a smart campaign
/{clientId}/smartcampaigns/{campaignId}/start
POST
Pausesmartcampaign — Pause a smart campaign
/{clientId}/smartcampaigns/{campaignId}/pause
POST
Sendtransactionalmail — Send a transactional mail
/{clientId}/transactionalmail
GET
Listmailinglists — List mailing lists
/{clientId}/mailinglists
GET
Getmailinglist — Get a mailing list
/{clientId}/mailinglists/{mailingListId}
GET
Listunsubscribes — List unsubscribes
/{clientId}/unsubscribes
POST
Addunsubscribe — Add an unsubscribe
/{clientId}/unsubscribes
GET
Listassets — List assets
/{clientId}/assets
POST
Uploadasset — Upload an asset
/{clientId}/assets

MCP Tools

listrecipients

List recipients

read-only idempotent
addrecipient

Add a recipient

getrecipient

Get a recipient

read-only idempotent
updaterecipient

Update a recipient

idempotent
deleterecipient

Delete a recipient

idempotent
listsmartcampaigns

List smart campaigns

read-only idempotent
getsmartcampaign

Get a smart campaign

read-only idempotent
startsmartcampaign

Start a smart campaign

pausesmartcampaign

Pause a smart campaign

sendtransactionalmail

Send a transactional mail

listmailinglists

List mailing lists

read-only idempotent
getmailinglist

Get a mailing list

read-only idempotent
listunsubscribes

List unsubscribes

read-only idempotent
addunsubscribe

Add an unsubscribe

listassets

List assets

read-only idempotent
uploadasset

Upload an asset

Capability Spec

optimizely-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Optimizely Campaign REST API
  description: The Optimizely Campaign REST API provides programmatic access to Optimizely's email and omnichannel campaign
    management capabilities. Developers can use the API to manage campaigns, recipients, mailing lists, smart campaigns, transactional
    mails, and messaging workflows. The API is hosted at api.campaign.episerver.net and supports automation of marketing campaign
    operations, enabling integration with external systems and custom marketing workflows. The base URL includes the client
    ID for multi-tenant access.
  tags:
  - Optimizely
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: optimizely
    baseUri: https://api.campaign.episerver.net/rest
    description: Optimizely Campaign REST API HTTP API.
    authentication:
      type: basic
      username: '{{OPTIMIZELY_USERNAME}}'
      password: '{{OPTIMIZELY_PASSWORD}}'
    resources:
    - name: clientid-recipients-recipientlistid
      path: /{clientId}/recipients/{recipientListId}
      operations:
      - name: listrecipients
        method: GET
        description: List recipients
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: addrecipient
        method: POST
        description: Add a recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-recipients-recipientlistid-recipientid
      path: /{clientId}/recipients/{recipientListId}/{recipientId}
      operations:
      - name: getrecipient
        method: GET
        description: Get a recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updaterecipient
        method: PUT
        description: Update a recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleterecipient
        method: DELETE
        description: Delete a recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-smartcampaigns
      path: /{clientId}/smartcampaigns
      operations:
      - name: listsmartcampaigns
        method: GET
        description: List smart campaigns
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-smartcampaigns-campaignid
      path: /{clientId}/smartcampaigns/{campaignId}
      operations:
      - name: getsmartcampaign
        method: GET
        description: Get a smart campaign
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-smartcampaigns-campaignid-start
      path: /{clientId}/smartcampaigns/{campaignId}/start
      operations:
      - name: startsmartcampaign
        method: POST
        description: Start a smart campaign
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-smartcampaigns-campaignid-pause
      path: /{clientId}/smartcampaigns/{campaignId}/pause
      operations:
      - name: pausesmartcampaign
        method: POST
        description: Pause a smart campaign
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-transactionalmail
      path: /{clientId}/transactionalmail
      operations:
      - name: sendtransactionalmail
        method: POST
        description: Send a transactional mail
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-mailinglists
      path: /{clientId}/mailinglists
      operations:
      - name: listmailinglists
        method: GET
        description: List mailing lists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-mailinglists-mailinglistid
      path: /{clientId}/mailinglists/{mailingListId}
      operations:
      - name: getmailinglist
        method: GET
        description: Get a mailing list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-unsubscribes
      path: /{clientId}/unsubscribes
      operations:
      - name: listunsubscribes
        method: GET
        description: List unsubscribes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: addunsubscribe
        method: POST
        description: Add an unsubscribe
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: clientid-assets
      path: /{clientId}/assets
      operations:
      - name: listassets
        method: GET
        description: List assets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: uploadasset
        method: POST
        description: Upload an asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: optimizely-rest
    description: REST adapter for Optimizely Campaign REST API.
    resources:
    - path: /{clientId}/recipients/{recipientListId}
      name: listrecipients
      operations:
      - method: GET
        name: listrecipients
        description: List recipients
        call: optimizely.listrecipients
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/recipients/{recipientListId}
      name: addrecipient
      operations:
      - method: POST
        name: addrecipient
        description: Add a recipient
        call: optimizely.addrecipient
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/recipients/{recipientListId}/{recipientId}
      name: getrecipient
      operations:
      - method: GET
        name: getrecipient
        description: Get a recipient
        call: optimizely.getrecipient
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/recipients/{recipientListId}/{recipientId}
      name: updaterecipient
      operations:
      - method: PUT
        name: updaterecipient
        description: Update a recipient
        call: optimizely.updaterecipient
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/recipients/{recipientListId}/{recipientId}
      name: deleterecipient
      operations:
      - method: DELETE
        name: deleterecipient
        description: Delete a recipient
        call: optimizely.deleterecipient
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/smartcampaigns
      name: listsmartcampaigns
      operations:
      - method: GET
        name: listsmartcampaigns
        description: List smart campaigns
        call: optimizely.listsmartcampaigns
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/smartcampaigns/{campaignId}
      name: getsmartcampaign
      operations:
      - method: GET
        name: getsmartcampaign
        description: Get a smart campaign
        call: optimizely.getsmartcampaign
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/smartcampaigns/{campaignId}/start
      name: startsmartcampaign
      operations:
      - method: POST
        name: startsmartcampaign
        description: Start a smart campaign
        call: optimizely.startsmartcampaign
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/smartcampaigns/{campaignId}/pause
      name: pausesmartcampaign
      operations:
      - method: POST
        name: pausesmartcampaign
        description: Pause a smart campaign
        call: optimizely.pausesmartcampaign
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/transactionalmail
      name: sendtransactionalmail
      operations:
      - method: POST
        name: sendtransactionalmail
        description: Send a transactional mail
        call: optimizely.sendtransactionalmail
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/mailinglists
      name: listmailinglists
      operations:
      - method: GET
        name: listmailinglists
        description: List mailing lists
        call: optimizely.listmailinglists
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/mailinglists/{mailingListId}
      name: getmailinglist
      operations:
      - method: GET
        name: getmailinglist
        description: Get a mailing list
        call: optimizely.getmailinglist
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/unsubscribes
      name: listunsubscribes
      operations:
      - method: GET
        name: listunsubscribes
        description: List unsubscribes
        call: optimizely.listunsubscribes
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/unsubscribes
      name: addunsubscribe
      operations:
      - method: POST
        name: addunsubscribe
        description: Add an unsubscribe
        call: optimizely.addunsubscribe
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/assets
      name: listassets
      operations:
      - method: GET
        name: listassets
        description: List assets
        call: optimizely.listassets
        outputParameters:
        - type: object
          mapping: $.
    - path: /{clientId}/assets
      name: uploadasset
      operations:
      - method: POST
        name: uploadasset
        description: Upload an asset
        call: optimizely.uploadasset
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: optimizely-mcp
    transport: http
    description: MCP adapter for Optimizely Campaign REST API for AI agent use.
    tools:
    - name: listrecipients
      description: List recipients
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.listrecipients
      outputParameters:
      - type: object
        mapping: $.
    - name: addrecipient
      description: Add a recipient
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.addrecipient
      outputParameters:
      - type: object
        mapping: $.
    - name: getrecipient
      description: Get a recipient
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.getrecipient
      outputParameters:
      - type: object
        mapping: $.
    - name: updaterecipient
      description: Update a recipient
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: optimizely.updaterecipient
      outputParameters:
      - type: object
        mapping: $.
    - name: deleterecipient
      description: Delete a recipient
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: optimizely.deleterecipient
      outputParameters:
      - type: object
        mapping: $.
    - name: listsmartcampaigns
      description: List smart campaigns
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.listsmartcampaigns
      outputParameters:
      - type: object
        mapping: $.
    - name: getsmartcampaign
      description: Get a smart campaign
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.getsmartcampaign
      outputParameters:
      - type: object
        mapping: $.
    - name: startsmartcampaign
      description: Start a smart campaign
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.startsmartcampaign
      outputParameters:
      - type: object
        mapping: $.
    - name: pausesmartcampaign
      description: Pause a smart campaign
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.pausesmartcampaign
      outputParameters:
      - type: object
        mapping: $.
    - name: sendtransactionalmail
      description: Send a transactional mail
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.sendtransactionalmail
      outputParameters:
      - type: object
        mapping: $.
    - name: listmailinglists
      description: List mailing lists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.listmailinglists
      outputParameters:
      - type: object
        mapping: $.
    - name: getmailinglist
      description: Get a mailing list
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.getmailinglist
      outputParameters:
      - type: object
        mapping: $.
    - name: listunsubscribes
      description: List unsubscribes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.listunsubscribes
      outputParameters:
      - type: object
        mapping: $.
    - name: addunsubscribe
      description: Add an unsubscribe
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.addunsubscribe
      outputParameters:
      - type: object
        mapping: $.
    - name: listassets
      description: List assets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: optimizely.listassets
      outputParameters:
      - type: object
        mapping: $.
    - name: uploadasset
      description: Upload an asset
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: optimizely.uploadasset
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    OPTIMIZELY_USERNAME: OPTIMIZELY_USERNAME
    OPTIMIZELY_PASSWORD: OPTIMIZELY_PASSWORD