Optimizely Pages API

Manage page definitions that specify which URLs or conditions trigger experiments.

Documentation

Specifications

Other Resources

OpenAPI Specification

optimizely-pages-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Optimizely Campaign REST Assets Pages 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.
  version: '1.0'
  contact:
    name: Optimizely Support
    url: https://support.optimizely.com
  termsOfService: https://www.optimizely.com/legal/terms/
servers:
- url: https://api.campaign.episerver.net/rest
  description: Optimizely Campaign Production Server
security:
- basicAuth: []
tags:
- name: Pages
  description: Manage page definitions that specify which URLs or conditions trigger experiments.
paths:
  /pages:
    get:
      operationId: listPages
      summary: List pages
      description: Returns a list of pages for the specified project. Pages define URL targeting conditions for experiments.
      tags:
      - Pages
      parameters:
      - $ref: '#/components/parameters/projectIdQuery'
      - $ref: '#/components/parameters/perPage'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Successfully retrieved the list of pages
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Page'
        '401':
          description: Authentication credentials are missing or invalid
    post:
      operationId: createPage
      summary: Create a page
      description: Creates a new page definition within the specified project.
      tags:
      - Pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageInput'
      responses:
        '201':
          description: Page successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
  /pages/{page_id}:
    get:
      operationId: getPage
      summary: Get a page
      description: Retrieves the full details of a specific page by its identifier.
      tags:
      - Pages
      parameters:
      - $ref: '#/components/parameters/pageId'
      responses:
        '200':
          description: Successfully retrieved the page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Page not found
    patch:
      operationId: updatePage
      summary: Update a page
      description: Updates the specified page with the provided fields.
      tags:
      - Pages
      parameters:
      - $ref: '#/components/parameters/pageId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageInput'
      responses:
        '200':
          description: Page successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Page not found
    delete:
      operationId: deletePage
      summary: Delete a page
      description: Permanently deletes the specified page.
      tags:
      - Pages
      parameters:
      - $ref: '#/components/parameters/pageId'
      responses:
        '204':
          description: Page successfully deleted
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Page not found
components:
  schemas:
    PageInput:
      type: object
      description: Input for creating or updating a page
      properties:
        project_id:
          type: integer
          format: int64
          description: The project this page belongs to
        name:
          type: string
          description: Human-readable name of the page
        edit_url:
          type: string
          format: uri
          description: URL used in the visual editor for this page
        conditions:
          type: string
          description: JSON-encoded URL targeting conditions
        activation_type:
          type: string
          description: How the page is activated
          enum:
          - immediate
          - polling
          - callback
          - manual
          - dom_changed
          - url_changed
    Page:
      type: object
      description: A page definition that specifies URL targeting conditions
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the page
        project_id:
          type: integer
          format: int64
          description: The project this page belongs to
        name:
          type: string
          description: Human-readable name of the page
        edit_url:
          type: string
          format: uri
          description: URL used in the visual editor for this page
        conditions:
          type: string
          description: JSON-encoded URL targeting conditions
        activation_type:
          type: string
          description: How the page is activated
          enum:
          - immediate
          - polling
          - callback
          - manual
          - dom_changed
          - url_changed
        created:
          type: string
          format: date-time
          description: Timestamp when the page was created
        last_modified:
          type: string
          format: date-time
          description: Timestamp when the page was last modified
  parameters:
    perPage:
      name: per_page
      in: query
      required: false
      description: Number of results per page
      schema:
        type: integer
        default: 25
        minimum: 1
        maximum: 100
    pageId:
      name: page_id
      in: path
      required: true
      description: The unique identifier for the page
      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
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using the Optimizely Campaign API credentials.
externalDocs:
  description: Optimizely Campaign REST API Documentation
  url: https://docs.developers.optimizely.com/optimizely-campaign/docs/rest-api