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

# Update an Observability project

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

## Paths

- `PATCH` `/api/v1/serverless/projects/observability/{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.

## Authentication

- Api key: `Authorization: <value>`
  API keys are used to authenticate requests to the Elastic Cloud Serverless REST API.
  Generate your secret API key in https://cloud.elastic.co/account/keys
  You must provide the API key for all API requests in the Authorization header as follows:
  
  ```
  "Authorization: ApiKey $API_KEY"
  ```
  
  For example, if you interact with the API using the curl command:
  
  ```
  curl -H "Authorization: ApiKey essu_..." https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch
  ```

## Header parameters

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

## Request body

The patched Observability project

`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.
- `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`
- `product_tier` (enum) — optional
  the tier of the observability project. The default is "complete" when not specified at creation time.
  Values: `complete`, `logs_essentials`
- `metadata` (object) — optional
  Metadata about the project
  - `tags` (map string to string · min properties: 1) — required
    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_-]*$)

## Responses

#### `200`

The updated Observability 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_-]*$)
- `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`
- `type` (enum)
  the type of the project
  Values: `observability`
- `product_tier` (enum)
  the tier of the observability project. The default is "complete" when not specified at creation time.
  Values: `complete`, `logs_essentials`
- `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.
  - `apm` (string)
    The endpoint to access apm.
  - `ingest` (string)
    The endpoint to access the Managed OTLP Endpoint.
- `private_endpoints` (object)
  Private endpoints (URLs) for Observability projects when PrivateLink is enabled.
  - `elasticsearch` (string)
    The PrivateLink endpoint URL to access elasticsearch.
  - `kibana` (string)
    The PrivateLink endpoint URL to access kibana.
  - `apm` (string)
    The PrivateLink endpoint URL to access APM.
  - `ingest` (string)
    The PrivateLink endpoint URL to access the Managed OTLP Endpoint.
##### 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/observability/${ID}" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{}'
```

