Optimizely Coupon blocks API

Manage coupon blocks that organize coupon codes

Operations 11

GET /{clientId}/couponblocks Get information about all coupon blocks #
POST /{clientId}/couponblocks Create a new coupon block #
GET /{clientId}/couponblocks/{couponBlockId} Get information about a coupon block #
DELETE /{clientId}/couponblocks/{couponBlockId} Delete a coupon block #
GET /{clientId}/couponblocks/{couponBlockId}/codes Get information about coupon codes #
POST /{clientId}/couponblocks/{couponBlockId}/codes Create a list of coupon codes #
DELETE /{clientId}/couponblocks/{couponBlockId}/codes Delete coupon codes #
GET /{clientId}/couponblocks/{couponBlockId}/codes/{code} Get information about a coupon code #
POST /{clientId}/couponblocks/{couponBlockId}/codes/{code} Invalidate a coupon code #
DELETE /{clientId}/couponblocks/{couponBlockId}/codes/{code} Delete a coupon code #
GET /{clientId}/couponblocks/{couponBlockId}/assignedmailings Get all mailing IDs a coupon block is assigned to #

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-coupon-blocks-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-coupon-blocks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Campaign REST Coupon blocks API
  description: 'This documentation lists all available resources and endpoints of the Optimizely Campaign REST API. The REST API lets you integrate Optimizely Campaign with your business applications and third-party software. Use Optimizely Campaign features and functionalities remotely to manage your recipient data, campaigns and mailings.<br><br>To use the REST API, set up your Optimizely Campaign client first. See <a href="https://docs.developers.optimizely.com/optimizely-campaign/docs/getting-started#client-setup" target="_blank">Client setup</a> on Optimizely World.<br><br>The base URL for all API requests is as follows: <i>https://api.campaign.episerver.net/rest/{clientId}/{component}/{path}?{parameters}</i><br><br><b>Try it out</b><br>The "Try it out" feature lets you test the API before you implement it in the target system. To perform real API requests against your client, authorize with your Base64-encoded credentials. See <a href="https://docs.developers.optimizely.com/optimizely-campaign/docs/getting-started#authenticate" target="_blank">Authentication</a> on Optimizely World.<br><br>To learn more about the Optimizely Campaign REST API, see <a href="https://docs.developers.optimizely.com/optimizely-campaign/docs/rest-api" target="_blank">Optimizely World</a>.<br><br><br>If you want to import the API definition in Postman, download the <a href="https://api.campaign.episerver.net/rest/openapi.json" target="_blank" download> source file</a> and import it in Postman as a collection.'
  version: '1'
servers:
- url: https://api.campaign.episerver.net/rest
tags:
- name: Coupon blocks
  description: Manage coupon blocks that organize coupon codes
paths:
  /{clientId}/couponblocks:
    get:
      tags:
      - Coupon blocks
      summary: Get information about all coupon blocks
      description: Get detailed information about all coupon blocks, such as name, coupon source or if valid coupon codes are used for testing.
      operationId: selectCouponBlocks
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: 'Maximum number of retrieved coupon blocks <p><i>Default value</i> : 100</p>'
        schema:
          type: integer
          format: int32
      - name: couponSource
        in: query
        description: Coupon source of the coupon block
        required: true
        schema:
          type: string
          enum:
          - static
          - generated
          - ean13barcode
          - twooffivebarcode
          - code128barcode
          - code128abarcode
          - code128bbarcode
          - code128cbarcode
      responses:
        '200':
          description: The coupon blocks were retrieved successfully (empty result if none was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponBlockStreamingCollection'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponBlockStreamingCollection'
        '400':
          description: Invalid limit request. Change the limit to less than 10000.
      security:
      - Authorization: []
    post:
      tags:
      - Coupon blocks
      summary: Create a new coupon block
      description: Create a new coupon block and specify type, internal name and if it should use valid coupon codes.
      operationId: createCouponBlock
      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/CouponBlockRequestData'
      responses:
        '201':
          description: The coupon block was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponBlock'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponBlock'
      security:
      - Authorization: []
  /{clientId}/couponblocks/{couponBlockId}:
    get:
      tags:
      - Coupon blocks
      summary: Get information about a coupon block
      description: Get detailed information about a coupon block, such as name, coupon source or if valid coupon codes are used for testing.
      operationId: getCouponBlock
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The coupon block was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponBlock'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponBlock'
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
    delete:
      tags:
      - Coupon blocks
      summary: Delete a coupon block
      operationId: deleteCouponBlock
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The coupon block was deleted successfully.
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
  /{clientId}/couponblocks/{couponBlockId}/codes:
    get:
      tags:
      - Coupon blocks
      summary: Get information about coupon codes
      description: Get detailed information about all unassigned coupon codes. You can limit the maximum number of retrieved coupon codes and sort the result by specific criteria. To get information about all assigned and/or used coupon codes, filter by recipient ID or mailing ID.
      operationId: selectCouponCodes
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: 'Starting point of the result list <p><i>Default value</i> : 0</p>'
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: 'Maximum number of retrieved coupon codes <p><i>Default value</i> : 100</p>'
        schema:
          type: integer
          format: int32
      - name: codeAssignment
        in: query
        description: 'The status of the coupon codes to be filtered. Possible values are: assigned, unassigned, all'
        schema:
          type: string
          enum:
          - ASSIGNED
          - UNASSIGNED
          - ALL
      - name: mailingId
        in: query
        description: Mailing IDs to which the coupon codes are assigned
        schema:
          type: integer
          format: int64
      - name: recipientId
        in: query
        description: Recipient IDs to which the coupon codes are assigned
        schema:
          type: string
      - name: sort
        in: query
        description: Sort result by specific criteria
        schema:
          type: string
          enum:
          - CODE
      - name: direction
        in: query
        description: Sort order
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The coupon codes were retrieved successfully (empty result if none was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponCodeStreamingCollection'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponCodeStreamingCollection'
        '400':
          description: The "codeAssignment" parameter is provided simultaneously with the "mailingId" or the "recipientId", or the limit parameter is invalid. Change the limit to less than 10000.
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
    post:
      tags:
      - Coupon blocks
      summary: Create a list of coupon codes
      operationId: createCouponCodes
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CouponCodeRequestData'
      responses:
        '201':
          description: The coupon codes were created successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestCouponCode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestCouponCode'
        '400':
          description: The request parameters are invalid.
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
    delete:
      tags:
      - Coupon blocks
      summary: Delete coupon codes
      operationId: deleteAllCouponCodes
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: codes
        in: query
        description: Coupon codes to be deleted
        required: true
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The coupon codes were deleted successfully.
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
  /{clientId}/couponblocks/{couponBlockId}/codes/{code}:
    get:
      tags:
      - Coupon blocks
      summary: Get information about a coupon code
      description: Get detailed information about a coupon code, such as code, mailing assignment or recipient assignment.
      operationId: getCouponCode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: code
        in: path
        description: Coupon code
        required: true
        schema:
          type: string
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The coupon code was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponCode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponCode'
        '404':
          description: The coupon code could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon code exists.
        '409':
          description: The coupon code is not assigned to the indicated client. Ensure that "clientId" and the coupon code are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
    post:
      tags:
      - Coupon blocks
      summary: Invalidate a coupon code
      description: Mark a coupon code as used.
      operationId: markAsUsed
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: code
        in: path
        description: Coupon code
        required: true
        schema:
          type: string
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The coupon code was invalidated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestCouponCode'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestCouponCode'
        '404':
          description: The coupon code could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon code exists.
        '409':
          description: The coupon code is not assigned to the indicated client. Ensure that "clientId" and the coupon code are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
    delete:
      tags:
      - Coupon blocks
      summary: Delete a coupon code
      operationId: deleteCouponCode
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: code
        in: path
        description: Coupon code
        required: true
        schema:
          type: string
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: The coupon code was deleted successfully.
        '404':
          description: The coupon code could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon code exists.
        '409':
          description: The coupon code is not assigned to the indicated client. Ensure that "clientId" and the coupon code are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
  /{clientId}/couponblocks/{couponBlockId}/assignedmailings:
    get:
      tags:
      - Coupon blocks
      summary: Get all mailing IDs a coupon block is assigned to
      description: Get all mailing IDs to which a specified coupon block is assigned.
      operationId: getAllAssignedMailings
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: couponBlockId
        in: path
        description: Coupon block ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: The mailing IDs were retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestAssignedMailings'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestAssignedMailings'
        '404':
          description: The coupon block could not be found. Ensure that the required parameters such as "couponBlockId" are correct and the coupon block exists.
        '409':
          description: The coupon block is not assigned to the indicated client. Ensure that "clientId" and "couponBlockId" are correct and that the "couponBlockId" is assigned to the indicated client.
      security:
      - Authorization: []
components:
  schemas:
    RestCouponCodeStreamingCollection:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/RestCouponCode'
        links:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/RestApiLink'
        count:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
    RestCouponCode:
      type: object
      properties:
        code:
          type: string
          description: Coupon code
        assignedMailing:
          type: integer
          description: Mailing assigned to the coupon code
          format: int64
        assignedRecipient:
          type: string
          description: Recipient assigned to the coupon code
        assigned:
          type: boolean
          description: If true, the code of the coupon block is assigned to a mailing
        used:
          type: boolean
          description: If true, the code of the coupon block was used
        created:
          type: string
          description: Creation date
          format: date-time
        modified:
          type: string
          description: Modification date
          format: date-time
        links:
          type: array
          description: Restful links
          items:
            type: object
            properties:
              uriBuilder:
                type: object
              rels:
                type: array
                items:
                  type: string
              rel:
                type: string
              type:
                type: string
              params:
                type: object
                additionalProperties:
                  type: string
              title:
                type: string
              uri:
                type: string
                format: uri
            description: Restful links
    RestCouponBlockCounter:
      type: object
      properties:
        codeCount:
          type: integer
          description: Number of all coupon codes
          format: int64
        assigned:
          type: integer
          description: Number of all assigned coupon codes
          format: int64
        unassigned:
          type: integer
          description: Number of all available coupon codes
          format: int64
      description: Counter of coupon codes
    RestApiLink:
      type: object
      properties:
        href:
          type: string
        rel:
          type: string
    CouponBlockRequestData:
      required:
      - couponSource
      - name
      type: object
      properties:
        couponSource:
          type: string
          description: Coupon source of the coupon block
          enum:
          - static
          - generated
          - ean13barcode
          - twooffivebarcode
          - code128barcode
          - code128abarcode
          - code128bbarcode
          - code128cbarcode
        useRealCodesForTestMails:
          type: boolean
          description: If true, valid codes for test mails are used
        name:
          type: string
          description: Internal name of the coupon block
    CouponCodeRequestData:
      required:
      - codes
      type: object
      properties:
        codes:
          type: array
          description: List of coupon codes
          items:
            type: string
            description: List of coupon codes
    RestCouponBlockStreamingCollection:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/RestCouponBlock'
        links:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/RestApiLink'
        count:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
    RestAssignedMailings:
      type: object
      properties:
        mailingIds:
          type: array
          items:
            type: integer
            format: int64
    RestCouponBlock:
      type: object
      properties:
        id:
          type: integer
          description: Coupon block ID
          format: int64
        name:
          type: string
          description: Coupon block name
        couponSource:
          type: string
          description: Coupon source of the coupon block
        useRealCodesForTestMails:
          type: boolean
          description: If true, valid codes for test mails are used
        counter:
          $ref: '#/components/schemas/RestCouponBlockCounter'
        created:
          type: string
          description: Creation date
          format: date-time
        modified:
          type: string
          description: Modification date
          format: date-time
        links:
          type: array
          description: Restful links
          items:
            type: object
            properties:
              uriBuilder:
                type: object
              rels:
                type: array
                items:
                  type: string
              rel:
                type: string
              type:
                type: string
              params:
                type: object
                additionalProperties:
                  type: string
              title:
                type: string
              uri:
                type: string
                format: uri
            description: Restful links
  securitySchemes:
    Authorization:
      type: apiKey
      name: Authorization
      in: header
x-readme:
  explorer-enabled: true
  proxy-enabled: true