Optimizely Campaigns API

Manage content campaigns and editorial calendar entries.

Operations 17

GET /campaigns List campaigns #
POST /campaigns POST /campaigns #
GET /campaigns/{campaignId} Get a campaign #
GET /campaigns/{id} GET /campaigns/{id} #
PATCH /campaigns/{id} PATCH /campaigns/{id} #
POST /campaigns/{id}/comments POST /campaigns/{id}/comments #
GET /campaigns/{id}/fields GET campaigns/{id}/fields #
POST /campaigns/{id}/fields POST campaigns/{id}/fields #
GET /campaigns/{id}/brief GET /campaigns/{id}/brief #
POST /campaigns/{id}/attachments POST /campaigns/{id}/attachments #
PUT /campaigns/{campaign_id}/fields/{field_id} PUT /campaigns/{campaign_id}/fields/{field_id} #
GET /campaigns/{campaign_id} Get a campaign #
PATCH /campaigns/{campaign_id} Update a campaign #
DELETE /campaigns/{campaign_id} Delete a campaign #
GET /campaigns/{campaign_id}/results Get campaign results #
GET /export/campaigns/{campaign_id}/results/csv Get Campaign results as a CSV #

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-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-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Campaigns API
  version: '1.0'
  description: 'Operations tagged Campaigns across 4 of this provider''s published API definitions: optimizely-cmp-openapi.yml, optimizely-content-marketing-platform-optimizely-cmp-open-api-documentation-openapi.json, optimizely-web-experimentation-openapi.yml, optimizely-web-experimentation-optimizely-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cmp.optimizely.com/v0
  description: Optimizely CMP API Server
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
- url: https://api.optimizely.com/v2
  description: Optimizely REST API v2 Production Server
tags:
- name: Campaigns
  description: Manage content campaigns and editorial calendar entries.
paths:
  /campaigns:
    get:
      operationId: listCampaigns
      summary: List campaigns
      description: Returns a list of content campaigns in the editorial calendar.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successfully retrieved the list of campaigns
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: List of campaigns
                    items:
                      $ref: '#/components/schemas/CmpCampaign'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          description: Authentication credentials are missing or invalid
      security:
      - oauth2: []
    post:
      operationId: createCampaign
      tags:
      - Campaigns
      summary: POST /campaigns
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create a campaign
      requestBody:
        description: Payload to create a campaign
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignCreateRequest'
      responses:
        '201':
          description: Created campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - oauth2: []
    servers:
    - url: https://api.cmp.optimizely.com/v0
      description: Optimizely CMP API Server
  /campaigns/{campaignId}:
    get:
      operationId: getCampaign
      summary: Get a campaign
      description: Retrieves the details of a specific content campaign.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/campaignId'
      responses:
        '200':
          description: Successfully retrieved the campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CmpCampaign'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Campaign not found
      security:
      - oauth2: []
    servers:
    - url: https://api.cmp.optimizely.com/v0
      description: Optimizely CMP API Server
  /campaigns/{id}:
    get:
      operationId: getCampaign
      tags:
      - Campaigns
      summary: GET /campaigns/{id}
      description: Get a campaign
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 8q7f910551b00a722e0418830cee6612
      responses:
        '200':
          description: Fetched campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    patch:
      operationId: updateCampaign
      tags:
      - Campaigns
      summary: PATCH /campaigns/{id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Update a campaign '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 8q7f910551b00a722e0418830cee6612
      requestBody:
        description: Payload to update the campaign
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignUpdateRequest'
      responses:
        '204':
          description: Campaign updated
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{id}/comments:
    post:
      operationId: addCommentToCampaign
      tags:
      - Campaigns
      summary: POST /campaigns/{id}/comments
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Post a comment on a campaign. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to add a comment
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentCreateRequest'
      responses:
        '201':
          description: Created a comment for the campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignCommentResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{id}/fields:
    get:
      operationId: listCampaignFields
      tags:
      - Campaigns
      summary: GET campaigns/{id}/fields
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get the list of fields of a campaign. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 5f857f30e1c4a2038d6179e9
      - $ref: '#/components/parameters/offset_2'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of fetched fields
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of fields
                    type: array
                    items:
                      $ref: '#/components/schemas/FieldListResponseItem'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination_2'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    post:
      operationId: addFieldToCampaign
      tags:
      - Campaigns
      summary: POST campaigns/{id}/fields
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Add a field to a campaign.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 5f857f30e1c4a2038d6179e9
      requestBody:
        description: Payload to add a field to a campaign
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectFieldCreateRequest'
      responses:
        '201':
          description: Added field to a campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectFieldCreateResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{id}/brief:
    get:
      operationId: getCampaignBrief
      tags:
      - Campaigns
      summary: GET /campaigns/{id}/brief
      description: Get brief of the campaign
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 5f857f30e1c4a2038d6179e9
      responses:
        '200':
          description: Fetched brief of the campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignBriefResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{id}/attachments:
    post:
      operationId: addAttachmentToCampaign
      tags:
      - Campaigns
      summary: POST /campaigns/{id}/attachments
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Add an attachment to the campaign. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 5f857f30e1c4a2038d6179e9
      requestBody:
        description: Payload to add an attachment
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
      responses:
        '201':
          description: Attachment added to the campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{campaign_id}/fields/{field_id}:
    put:
      operationId: updateCampaignField
      tags:
      - Campaigns
      summary: PUT /campaigns/{campaign_id}/fields/{field_id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Update the field value of a campaign. '
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the campaign
        example: 5f857f30e1c4a2038d6179e9
      - name: field_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the field of the campaign
        example: 4f857f30e1c4a2038d6179e7
      requestBody:
        description: Payload to update the field value
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignFieldUpdateRequest'
      responses:
        '200':
          description: Updated the campaign field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignFieldUpdateResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /campaigns/{campaign_id}:
    get:
      operationId: getCampaign
      summary: Get a campaign
      description: Retrieves the full details of a specific campaign by its identifier.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/campaignId_2'
      responses:
        '200':
          description: Successfully retrieved the campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Campaign not found
      security:
      - bearerAuth: []
    patch:
      operationId: updateCampaign
      summary: Update a campaign
      description: Updates the specified campaign with the provided fields.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/campaignId_2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignInput'
      responses:
        '200':
          description: Campaign successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Campaign not found
      security:
      - bearerAuth: []
    delete:
      operationId: deleteCampaign
      summary: Delete a campaign
      description: Archives or permanently deletes the specified campaign.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/campaignId_2'
      responses:
        '204':
          description: Campaign successfully deleted
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Campaign not found
      security:
      - bearerAuth: []
    servers:
    - url: https://api.optimizely.com/v2
      description: Optimizely REST API v2 Production Server
  /campaigns/{campaign_id}/results:
    get:
      operationId: getCampaignResults
      summary: Get campaign results
      description: Retrieves the statistical results for a specific campaign.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/campaignId_2'
      responses:
        '200':
          description: Successfully retrieved campaign results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExperimentResults'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Campaign not found
      security:
      - bearerAuth: []
    servers:
    - url: https://api.optimizely.com/v2
      description: Optimizely REST API v2 Production Server
  /campaigns/{campaign_id}/results/share:
    get:
      description: This link allows read-only access for anyone to view the results, even if they don't have an Optimizely account. Because anyone can use the link, be careful where you share it.
      operationId: get_campaign_results_share_link
      parameters:
      - description: The ID of the campaign to generate a shareable link for
        in: path
        name: campaign_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsShareLink'
          description: Return a sharable link for the campaign's results page
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Get a sharable link for the campaign's results page
      tags:
      - Campaigns
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
  /export/campaigns/{campaign_id}/results/csv:
    get:
      description: Get results for a Campaign as a CSV
      operationId: get_campaign_results_csv
      parameters:
      - description: The ID for the Campaign you want results for
        in: path
        name: campaign_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The start time of the time interval (beginning time included) used to calculate the results over. If unspecified, defaults to the time that the Campaign was first activated. The start time will be rounded the smallest time modulo 5 minutes larger or equal to start_time.
        in: query
        name: start_time
        schema:
          format: date-time
          type: string
      - description: The end of the time interval (end time excluded) used to calculate results over. If unspecified, defaults to the current time if the Experiment is still running, otherwise defaults to the time the experiment was last active. The end time will be rounded to the largest time modulo 5 minutes smaller or equal to end_time. The end_time in the response may be earlier than requested if fresher results are not available yet. In this case, the results will continue to calculate in the background and subsequent requests will eventually return the full results.
        in: query
        name: end_time
        schema:
          format: date-time
          type: string
      - $ref: '#/components/parameters/browser_segment'
      - $ref: '#/components/parameters/device_segment'
      - $ref: '#/components/parameters/source_segment'
      - $ref: '#/components/parameters/attribute_id_segment'
      - $ref: '#/components/parameters/attribute_value_segment'
      - $ref: '#/components/parameters/segment_conditions'
      responses:
        '200':
          description: '<p>Return Campaign results in CSV format</p> <p>Name of the columns returned: ''Start Time (UTC)'', ''End Time (UTC)'', ''Is Baseline Variation'', ''Metric Event Name'', ''Metric Event ID'', ''Metric Numerator Type'', ''Metric Denominator Type'', ''Metric Winning Direction'', ''Numerator Value'', ''Denominator Value'', ''Metric Value'', ''Improvement Status from Baseline'', ''Improvement Value from Baseline'', ''Statistical Significance'', ''Is Improvement Significant'', ''Confidence Interval - Low'', ''Confidence Interval - High'', ''Samples Remaining to Significance''</p> <p>(<a href="https://help.optimizely.com/Export_to_CSV_column_reference_for_campaigns_and_experiments">Column reference guide for CSV export</a>)</p>'
        '202':
          description: The results request has been received but has not yet finished processing. Wait a bit and try again.
        '204':
          description: There are no results data for this Campaign yet. Make sure the Campaign is started and try again later.
        default:
          content:
            text/csv:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Get Campaign results as a CSV
      tags:
      - Campaigns
      x-release-state: beta
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
components:
  parameters:
    campaignId:
      name: campaignId
      in: path
      required: true
      description: The unique identifier for the campaign
      schema:
        type: string
    offset:
      name: offset
      in: query
      required: false
      description: Number of items to skip for pagination
      schema:
        type: integer
        default: 0
        minimum: 0
    limit:
      name: limit
      in: query
      required: false
      description: Maximum number of items to return
      schema:
        type: integer
        default: 25
        minimum: 1
        maximum: 100
    page_size:
      name: page_size
      in: query
      description: Number of results to return per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      example: 15
    offset_2:
      name: offset
      in: query
      description: Starting index of results (zero indexed)
      schema:
        type: integer
        minimum: 0
        default: 0
      example: 5
    campaignId_2:
      name: campaign_id
      in: path
      required: true
      description: The unique identifier for the campaign
      schema:
        type: integer
        format: int64
    projectIdQuery:
      name: project_id
      in: query
      required: true
      description: The unique identifier for the project to filter by
      schema:
        type: integer
        format: int64
    page:
      name: page
      in: query
      required: false
      description: Page number for pagination
      schema:
        type: integer
        default: 1
        minimum: 1
    perPage:
      name: per_page
      in: query
      required: false
      description: Number of results per page
      schema:
        type: integer
        default: 25
        minimum: 1
        maximum: 100
    attribute_id_segment:
      description: 'ID of the attribute to segment results by. Requests containing attribute_id will return the results for all visitors that have attribute_value for the attribute represented by attribute_id. If present, the attribute_value parameter must also be present, and it cannot be sent with any other segmentation parameters, i.e. any parameters in [browser, device, source].

        '
      in: query
      name: attribute_id
      schema:
        format: int64
        type: integer
    page_2:
      description: 'Optional pagination argument that specifies the page to return. If you have 140 objects and you choose to return 100 objects per page you will be able to access the last 40 objects on page 2. The default value is 1.

        '
      in: query
      name: page
      required: false
      schema:
        default: 1
        type: integer
    source_segment:
      description: 'Source to segment results by. This parameter must not be sent with any other segmentation parameters, i.e. any parameters in [browser, device, attribute_id, attribute_value].

        Campaign: Contains users that arrive on a URL containing a ''utm_campaign,'' ''utm_source,'' ''gclid,'' or ''otm_source'' query parameter. If the URL contains one of these parameters, the visitor will count as "Campaign" traffic even if they arrived through search.

        Direct:  Includes all users who do not have any external referrer in their URL.

        Referral: Includes all users that come from another URL that doesn''t count as Campaign.

        '
      in: query
      name: source
      schema:
        enum:
        - campaign
        - direct
        - referral
        - search
        type: string
    attribute_value_segment:
      description: 'UTF-8 encoded value correlating to attribute_id. If present, the attribute_id parameter must also be present. This parameter also requires attribute_id to be set, and cannot be sent with any other segmentation parameters, i.e. any parameters in [browser, device, source].

        '
      in: query
      name: attribute_value
      schema:
        type: string
    device_segment:
      description: Device to segment results by. This parameter must not be sent with any other segmentation parameters, i.e. any parameters in [browser, source, attribute_id, attribute_value].
      in: query
      name: device
      schema:
        enum:
        - desktop
        - ipad
        - iphone
        - mobile
        - tablet
        type: string
    browser_segment:
      description: Browser to segment results by. This parameter must not be sent with any other segmentation parameters, i.e. any parameters in [device, source, attribute_id, attribute_value].
      in: query
      name: browser
      schema:
        enum:
        - firefox
        - chrome
        - internet_explorer
        - opera
        - safari
        type: string
    per_page:
      description: Optional pagination argument that specifies the maximum number of objects to return per request
      in: query
      name: per_page
      required: false
      schema:
        default: 25
        maximum: 100
        type: integer
    segment_conditions:
      description: '(BETA) A string representation of a JSON Segment Conditions Expression. This parameter can be either URL-escaped stringified JSON or Base64-encoded stringified JSON using URL-safe alphabet (preferred).

        Segment Conditions Expressions consist of Logical Expressions and Match Expressions.

        Logical Expressions are represented as an array of the format [<operator>, <expression>...], where the supported operators are "and", "or" and "not".

        Match Expressions are represented as an object of the format {"attribute_id": <attribute_id>, "attribute_value": <value>[, "match_type": <match_type>]}, where supported values for match_type are "exact" match type will match only an exact string match between "value" string and the attribute value. "substring" match type will match if "value" is a substring of the attribute value. "prefix" match type will match if "value" is a string prefix of the attribute value. "regex" match type will match if "value" is a regular expression match for the attribute value. The default match_type is "exact".

        '
      in: query
      name: segment_conditions
      schema:
        type: string
  schemas:
    Pagination:
      type: object
      description: Pagination metadata
      properties:
        total:
          type: integer
          description: Total number of items
        limit:
          type: integer
          description: Maximum items per page
        offset:
          type: integer
          description: Current offset
    CmpCampaign:
      type: object
      description: A content campaign in the editorial calendar
      properties:
        id:
          type: string
          description: Unique identifier for the campaign
        title:
          type: string
          description: Title of the campaign
        description:
          type: string
          description: Description of the campaign
        start_date:
          type: string
          format: date
          description: Campaign start date
        end_date:
          type: string
          format: date
          description: Campaign end date
        status:
          type: string
          description: Current status of the campaign
        labels:
          type: array
          description: Labels associated with the campaign
          items:
            type: string
        created_at:
          type: string
          format: date-time
          description: Timestamp when the campaign was created
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the campaign was last updated
    CampaignBriefResponse:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          description: Type of the campaign brief
          example: template
          enum:
          - template
          - attachment
          - text
        title:
          type: string
          description: Title of the campaign brief
          example: Awesome Campaign Brief
        template:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/CampaignBriefTemplateValue'
        fields:
          description: List of fields of the brief
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              name:
                type: string
                description: Name of the brief field
                example: My Dropdown
              value:
                type: array
                description: List of values set for the brief field
                items:
                  type: string
                  description: value set in the brief field
                  example: option 1
            required:
            - name
            - value
        links:
          type: object
          additionalProperties: false
          description: Meta links
          properties:
            self:
              type: string
              description: URL of the brief
              example: https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9/brief
            campaign:
              type: string
              description: URL of the campaign
              example: https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9
          required:
          - self
          - campaign
      required:
      - type
      - title
      - fields
      - links
    CampaignUpdateRequest:
      type: object
      additionalProperties: false
      properties:
        title:
          type: string
          description: Title of the campaign
          example: The awesome campaign
        start_date:
          type:
          - string
          - 'null'
          description: 'Start date of the campaign in ISO 8601 format: `YYYY-MM-DD`'
          example: '2022-09-06'
        end_date:
          type:
          - string
          - 'null'
          description: 'End date of the campaign in ISO 8601 format: `YYYY-MM-DD`'
          example: '2022-09-06'
        owner_id:
          type: string
          description: Unique identifier of the campaign owner
 

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