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