---
type: api
title: Update an Elasticsearch project
description: Only the fields included in the body of the request will be updated.
url: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/cloud-serverless/operation/operation-patchelasticsearchproject
resource: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/cloud-serverless/operation/operation-patchelasticsearchproject
products:
  - Elastic Cloud Serverless
---

# Update an Elasticsearch project

Authentication: required

- Server: `https://api.elastic-cloud.com`

## Paths

- `PATCH` `/api/v1/serverless/projects/elasticsearch/{id}`

#### Path parameters

- `id` (string · pattern: ^[a-z0-9]{32}$) — required
  The ID of the project

## Description

Only the fields included in the body of the request will be updated.

## Header parameters

- `If-Match` (string) — optional
  ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

## Request body

The Elasticsearch project patch body

`application/json`

- `name` (string · min length: 1 · max length: 255) — optional
  Descriptive name for a project.
- `alias` (string · min length: 1 · max length: 50 · pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$) — optional
  A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.
- `search_lake` (object) — optional — nullable
  Configuration for entire set of capabilities that make the data searchable in Elasticsearch. Pass `null` to reset configuration to the default values.
  - `search_power` (integer · min: 28 · max: 3000) — optional — nullable
    Controls how fast searches are against your project data. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. You can either increase the performance of searches on cached data by adding replicas, or reduce the quantity of cached data by a static factor to save on costs. Pass `null` to reset the Search Power to the default value.
  - `boost_window` (integer · min: 1 · max: 180) — optional — nullable
    Determines how much data can benefit from faster search. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. The system dynamically adjusts the cache allocated to your project based on how much data you ingest during the period defined by your Search Boost Window. Pass `null` to reset the Search Boost Window to the default value.
- `traffic_filters` (object[]) — optional — nullable
  traffic filters IDs
  - `id` (string) — required
    traffic filter ID
- `linked` (object) — optional — nullable
  Configuration for projects linked to this project
  - `projects` (map string to object · min properties: 1) — optional
    Map values (object)
    - `type` (enum) — required
      The type of the linked project
      Values: `elasticsearch`, `observability`, `security`, `vectordb`
- `metadata` (object · min properties: 1) — optional
  Metadata about the project
  - `tags` (map string to string · min properties: 1) — optional
    Tags that need to be updated for a project. The maximum number of tags that can be updated is 64.
    Map values (string · min length: 1 · max length: 128 · pattern: ^[a-z0-9][a-z0-9_-]*$)
  - `annotations` (map string to string · min properties: 1) — optional
    Annotations to set or delete on a project. A value sets or overwrites the key, and `null` deletes it. Keys that are left out are unchanged. After the patch, a project can have at most 64 annotations.
    Map values (string · min length: 1 · max length: 128 · pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$)
- `monitoring` (object) — optional — nullable
  Configuration for monitoring a project. Pass `null` to reset all monitoring configuration.
  - `logging` (object) — optional — nullable
    Configuration for project logs. Pass `null` to reset all log configuration.
    - `audit` (object) — optional — nullable
      Configuration for logs from a specific category. Pass as `null` to reset configuration for this category of logs.
      - `destination` (object) — optional
        Configuration for destination of logs.
        - `project_id` (string · pattern: ^[a-z0-9]{32}$) — required
          ID of the project.
        - `project_type` (enum) — optional
          The type of the linked project
          Values: `elasticsearch`, `observability`, `security`, `vectordb`
      - `enabled` (boolean) — optional
        When true, logs from this category are delivered to the configured destination. When false, delivery is paused but the configuration is preserved. Omit to leave the current value unchanged.
      - `ignore_filters` (object[] · max items: 10) — optional — nullable
        Named ignore filters applied to reduce the volume of logs delivered for this category. Can be passed as `null` to remove all ignore filters for this category.
        - `id` (string) — required
          The unique identifier of the ignore filter.

## Responses

#### `200`

The updated Elasticsearch project.

`application/json`

- `id` (string · pattern: ^[a-z0-9]{32}$)
  ID of the project.
- `name` (string · min length: 1 · max length: 255)
  Descriptive name for a project.
- `alias` (string · min length: 8 · max length: 57 · pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$)
  A domain label compatible with RFC-1035 standards. Project alias with a unique suffix added by the system to avoid naming conflicts.
- `region_id` (string)
  Unique human-readable identifier for a region in Elastic Cloud.
- `metadata` (object)
  Additional details about the project.
  - `created_at` (string · format: date-time)
    Date and time when the project was created.
  - `created_by` (string)
    ID of the user.
  - `organization_id` (string)
    The Organization ID who owns the project.
  - `suspended_at` (string · format: date-time)
    Date and time when the project was suspended.
  - `suspended_reason` (string)
    Reason why the project was suspended.
  - `tags` (map string to string · min properties: 1 · max properties: 64)
    Tags associated with a project in the form of key-value pairs. Tags are limited to a minimum of 1 and a maximum of 64 per project. Each tag key must begin with a lowercase letter (a-z), contain only lowercase letters, digits, underscores, and hyphens (a-z0-9_-), and have a maximum length of 32 characters.
    Map values (string · min length: 1 · max length: 128 · pattern: ^[a-z0-9][a-z0-9_-]*$)
  - `system_tags` (map string to string)
    System tags associated with a project in the form of key-value pairs. These tags are added by the internal system and are read-only. The keys are prefixed with an underscore to differentiate them from user tags.
    Map values (string · min length: 1 · max length: 128 · pattern: ^[a-z0-9][a-z0-9_-]*$)
  - `annotations` (map string to string · min properties: 1 · max properties: 64)
    Annotations associated with a project, as key-value pairs that keep their case. A project can have at most 64 annotations, separate from its tags. Each key must start with a letter, contain only letters, digits, underscores and hyphens (a-zA-Z0-9_-), and be at most 32 characters long. Annotations can't be used in cross-project search and can't filter the project list.
    Map values (string · min length: 1 · max length: 128 · pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$)
- `cloud_id` (string)
  The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.
- `traffic_filters` (object[])
  traffic filters IDs
  - `id` (string)
    traffic filter ID
- `linked` (object)
  Configuration for projects linked to this project
  - `projects` (map string to object)
    Map values (object)
    - `status` (enum)
      The state of the linked project.
      Values: `enabled`, `suspended`, `deleted`
    - `type` (enum)
      The type of the linked project
      Values: `elasticsearch`, `observability`, `security`, `vectordb`
- `monitoring` (object)
  Configuration for monitoring a project.
  - `logging` (object)
    Configuration for project logs.
    - `audit` (object)
      Configuration for logs from a specific category.
      - `destination` (object)
        Configuration for destination of logs.
        - `project_id` (string · pattern: ^[a-z0-9]{32}$)
          ID of the project.
        - `project_type` (enum)
          The type of the linked project
          Values: `elasticsearch`, `observability`, `security`, `vectordb`
        - `status` (enum)
          The state of log delivery to this destination. Controlled by the system and read-only: it is set to `suspended` or `deleted` when the destination project is suspended or deleted. Logs are only delivered when this is `enabled` and the logging category's `enabled` flag is true.
          Values: `enabled`, `suspended`, `deleted`
      - `enabled` (boolean)
        When true, logs from this category are delivered to the configured destination. When false, delivery is paused but the configuration is preserved.
      - `ignore_filters` (object[])
        References to logging ignore filters applied to reduce the volume of logs delivered for this category.
        - `id` (string)
          The unique identifier of the ignore filter.
- `type` (enum)
  the type of the project
  Values: `elasticsearch`
- `optimized_for` (enum)
  The purpose for which the hardware of this elasticsearch project is optimized. Also known as the Elasticsearch project subtype.

- The `general_purpose` option is suitable for most search use cases. For example, it is the right profile for full-text search, sparse vectors, and dense vectors that use compression such as BBQ. It is used by default when you create projects from the UI.
- The `vector` option is recommended only for uncompressed dense vectors (`dense_vector` fields with `int4` or `int8` quantization strategies) and high dimensionality. Refer to documentation about billing dimensions for the impact to virtual compute unit (VCU) consumption.
  Values: `general_purpose`, `vector`
- `search_lake` (object)
  Configuration for entire set of capabilities that make the data searchable in Elasticsearch.
  - `search_power` (integer · min: 28 · max: 3000)
    Controls how fast searches are against your project data. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. You can either increase the performance of searches on cached data by adding replicas, or reduce the quantity of cached data by a static factor to save on costs.
  - `boost_window` (integer · min: 1 · max: 180)
    Determines how much data can benefit from faster search. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. The system dynamically adjusts the cache allocated to your project based on how much data you ingest during the period defined by your Search Boost Window.
- `endpoints` (object)
  The endpoints to access the different apps of the project.
  - `elasticsearch` (string)
    The endpoint to access elasticsearch.
  - `kibana` (string)
    The endpoint to access kibana.
  - `ingest` (string)
    The endpoint to access the Managed OpenTelemetry Collector.
- `private_endpoints` (object)
  Private endpoints (URLs) for Elasticsearch projects when PrivateLink is enabled.
  - `elasticsearch` (string)
    The PrivateLink endpoint URL to access elasticsearch.
  - `kibana` (string)
    The PrivateLink endpoint URL to access kibana.
  - `ingest` (string)
    The PrivateLink endpoint URL to access the Managed OpenTelemetry Collector.
##### Response headers

- `ETag` (string)

#### `404`

Not Found

`application/json`

- `errors` (object[])
  - `message` (string)
    A human-readable message of the error.
  - `code` (string)
    An identifier for this type of error.
#### `409`

Conflict

`application/json`

- `errors` (object[])
  - `message` (string)
    A human-readable message of the error.
  - `code` (string)
    An identifier for this type of error.
#### `412`

Precondition failed

`application/json`

- `errors` (object[])
  - `message` (string)
    A human-readable message of the error.
  - `code` (string)
    An identifier for this type of error.
## Code examples

#### curl

```curl
curl -X PATCH "https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch/${ID}" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Response examples

#### 200

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "id": "string",
  "name": "my project",
  "alias": "my-project-alias-bdc0f7",
  "region_id": "aws-us-east-1",
  "metadata": {
    "created_at": "string",
    "created_by": "1014289666002276",
    "organization_id": "198583657190",
    "suspended_at": "string",
    "suspended_reason": "trial expired",
    "tags": {
      "key": "string"
    },
    "system_tags": {
      "key": "string"
    },
    "annotations": {
      "key": "string"
    }
  },
  "cloud_id": "my_project:LmF3cy5lbGFzdG",
  "traffic_filters": [
    {
      "id": "traffic-filter-1"
    }
  ],
  "linked": {
    "projects": {
      "key": {
        "status": "enabled",
        "type": "elasticsearch"
      }
    }
  },
  "monitoring": {
    "logging": {
      "audit": {
        "destination": {
          "project_id": "string",
          "project_type": "elasticsearch",
          "status": "enabled"
        },
        "enabled": false,
        "ignore_filters": [
          {
            "id": "audit-ignore-data-reads"
          }
        ]
      }
    }
  },
  "type": "elasticsearch",
  "optimized_for": "general_purpose",
  "search_lake": {
    "search_power": 100,
    "boost_window": 100
  },
  "endpoints": {
    "elasticsearch": "https://my-project-alias-df6c6d.es.us-east-1.aws.elastic.cloud",
    "kibana": "https://my-project-alias-df6c6d.kb.us-east-1.aws.elastic.cloud",
    "ingest": "https://my-project-alias-df6c6d.ingest.us-east-1.aws.elastic.cloud"
  },
  "private_endpoints": {
    "elasticsearch": "https://my-project-alias-df6c6d.es.private.us-east-1.aws.elastic.cloud",
    "kibana": "https://my-project-alias-df6c6d.kb.private.us-east-1.aws.elastic.cloud",
    "ingest": "https://my-project-alias-df6c6d.ingest.private.us-east-1.aws.elastic.cloud"
  }
}
```

#### 404

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
```

#### 409

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
```

#### 412

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
```

