Optimizely Projects API

Manage Feature Experimentation projects that serve as containers for flags, experiments, and environments.

Documentation

Specifications

Other Resources

OpenAPI Specification

optimizely-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Optimizely Campaign REST Assets Projects 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: Projects
  description: Manage Feature Experimentation projects that serve as containers for flags, experiments, and environments.
paths:
  /projects:
    get:
      operationId: listProjects
      summary: List projects
      description: Returns a list of all Feature Experimentation projects accessible to the authenticated user.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/perPage'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Successfully retrieved the list of projects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
        '401':
          description: Authentication credentials are missing or invalid
    post:
      operationId: createProject
      summary: Create a project
      description: Creates a new Feature Experimentation project.
      tags:
      - Projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInput'
      responses:
        '201':
          description: Project successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
  /projects/{project_id}:
    get:
      operationId: getProject
      summary: Get a project
      description: Retrieves the details of a specific project by its unique identifier.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '200':
          description: Successfully retrieved the project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Project not found
    patch:
      operationId: updateProject
      summary: Update a project
      description: Updates the specified project with the provided fields.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInput'
      responses:
        '200':
          description: Project successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Project not found
    delete:
      operationId: deleteProject
      summary: Delete a project
      description: Permanently deletes the specified project and all associated resources including experiments, audiences, and events.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '204':
          description: Project successfully deleted
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Project not found
components:
  parameters:
    perPage:
      name: per_page
      in: query
      required: false
      description: Number of results per page
      schema:
        type: integer
        default: 25
        minimum: 1
        maximum: 100
    page:
      name: page
      in: query
      required: false
      description: Page number for pagination
      schema:
        type: integer
        default: 1
        minimum: 1
    projectId:
      name: project_id
      in: path
      required: true
      description: The unique identifier for the project
      schema:
        type: integer
        format: int64
  schemas:
    Project:
      type: object
      description: A Feature Experimentation project
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the project
        name:
          type: string
          description: Human-readable name of the project
        account_id:
          type: integer
          format: int64
          description: The account this project belongs to
        platform:
          type: string
          description: The platform type for this project
          enum:
          - custom
        status:
          type: string
          description: Current status of the project
          enum:
          - active
          - archived
        sdks:
          type: array
          description: List of SDKs configured for this project
          items:
            type: string
        created:
          type: string
          format: date-time
          description: Timestamp when the project was created
        last_modified:
          type: string
          format: date-time
          description: Timestamp when the project was last modified
    ProjectInput:
      type: object
      description: Input for creating or updating a project
      properties:
        name:
          type: string
          description: Human-readable name of the project
        status:
          type: string
          description: Current status of the project
          enum:
          - active
          - archived
  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