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