---
title: "Update a Project"
method: PATCH
path: "/projects/{project_id}"
tags: ["Projects"]
---

# Update a Project

`PATCH /projects/{project_id}`

Update a Project

## Path parameters

- `project_id` integer, required

## Request body

- ProjectUpdate
  - `account_id` integer — The ID of the account the Project is associated with
  - `confidence_threshold` number, double — The significance level at which you would like to declare winning and losing variations. A lower number minimizes the time needed to declare a winning or losing variation, but increases the risk that your results aren't true winners and losers. The precision for this number is up to 4 decimal places.
  - `dcp_service_id` integer — The ID of a Dynamic Customer Profile Service associated with this Project
  - `description` string — A short description of the Project
  - `name` string — The name of the Project
  - `status` 'active' | 'archived' — The current status of the Project
  - `web_snippet` WebSnippetUpdate
    - `enable_force_variation` boolean — Enables the option to force yourself into a specific variation on any page
    - `exclude_disabled_experiments` boolean — Set to true to remove paused and draft Experiment from the snippet
    - `exclude_names` boolean — Set to true to mask descriptive names
    - `include_jquery` boolean — Set to true to include jQuery in your snippet
    - `ip_anonymization` boolean — Set to true to change the last octet of IP addresses to 0 prior to logging
    - `ip_filter` string — A regular expression (max 1500 characters) matching ip addresses for filtering out visitors. Matching visitors will still see the Experiment, but they won't be counted in results.
    - `library` 'jquery-1.11.3-trim' | 'jquery-1.11.3-full' | 'jquery-1.6.4-trim' | 'jquery-1.6.4-full' | 'none' — The prefered jQuery library version you would like to use with your snippet. If you do not want to include jQuery, set include_jquery to false
    - `project_javascript` string — The javascript code which runs before Optimizely on all pages, regardless of whether or not there is a running Experiment
    - `visitor_id_locator_name` string, nullable — (BETA) The name of said identifier that locates the visitor id
    - `visitor_id_locator_type` 'cookie' | 'query' | 'localStorage' | 'js', nullable — (BETA) The type of identifer where the visitor id is located (e.g. cookies, query param)

## Response `200`

Return the updated Project

- Project
  - `account_id` integer — The account the Project is associated with
  - `confidence_threshold` number, double — The significance level at which you would like to declare winning and losing variations. A lower number minimizes the time needed to declare a winning or losing variation, but increases the risk that your results aren't true winners and losers. The precision for this number is up to 4 decimal places
  - `created` string, date-time — The time that the Project was originally created
  - `dcp_service_id` integer — The ID of a Dynamic Customer Profile Service associated with this Project
  - `description` string — A short description of the Project
  - `id` integer — The unique identifier for the Project
  - `is_classic` boolean — If `is_classic` is true it means that the project doesn't have Optimizely X enabled. In other words: this project is Optimizely Classic only. The v2 REST API can only be used for Optimizely X objects (with the exception of Audiences and Projects, which can be shared between Optimizely X and Classic), so when `is_classic` is set to true you will need to use the v1 API
  - `is_flags_enabled` boolean — If is_flags_enabled is true, this project uses the new Flags-First user experience and will use the [Flags API](https://library.optimizely.com/docs/api/flags/v1/index.html) to make changes to entities.
  - `last_modified` string, date-time — The time the Project was last modified
  - `name` string, required — The name of the Project
  - `platform` 'web' | 'ios' | 'android' | 'custom' — The platform of the Project
  - `sdks` string[] — For Full Stack, Mobile, and OTT projects, the language used for the SDK
  - `socket_token` string — The token used to identify your mobile app to Optimizely (mobile only)
  - `status` 'active' | 'archived' — The current status of the Project
  - `third_party_platform` 'salesforce', nullable — The third party platform with which the project is intended to be used. When this is set, a project might have special restrictions. This can have a value of "salesforce" but defaults to null. In order to set this field, an account must have the third party platforms feature and be a fullstack project.
  - `web_snippet` WebSnippet
    - `code_revision` integer — The current revision number of the Project snippet
    - `enable_force_variation` boolean — Enables the option to force yourself into a specific variation on any page
    - `exclude_disabled_experiments` boolean — Set to true to remove paused and draft Experiment from the snippet
    - `exclude_names` boolean — Set to true to mask descriptive names
    - `include_jquery` boolean — Set to true to include jQuery in your snippet
    - `ip_anonymization` boolean — Set to true to change the last octet of IP addresses to 0 prior to logging
    - `ip_filter` string — A regular expression (max 1500 characters) matching ip addresses for filtering out visitors. Matching visitors will still see the Experiment, but they won't be counted in results.
    - `js_file_size` integer — The current size in bytes of the Project snippet
    - `library` 'jquery-1.11.3-trim' | 'jquery-1.11.3-full' | 'jquery-1.6.4-trim' | 'jquery-1.6.4-full' | 'none' — The prefered jQuery library version you would like to use with your snippet. If you do not want to include jQuery, set include_jquery to false
    - `project_javascript` string — The javascript code which runs before Optimizely on all pages, regardless of whether or not there is a running Experiment
    - `visitor_id_locator_name` string, nullable — (BETA) The name of said identifier that locates the visitor id
    - `visitor_id_locator_type` 'cookie' | 'query' | 'localStorage' | 'js', nullable — (BETA) The type of identifer where the visitor id is located (e.g. cookies, query param)

## Other responses

- `400` — Invalid Project ID supplied
- `401` — Invalid credentials
- `403` — You do not have permission to update the specified Project
- `404` — Project not found
- `default` — Unexpected error

---

[API](https://skmtc.dev/optimizely/apis/optimizely-api.md) · [All operations](https://skmtc.dev/optimizely/apis/optimizely-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optimizely/optimizely-api/revisions/5151fe6a2297/schema)
