---
type: api
title: Update Extension
description: Updates an extension.
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/cloud-enterprise/v4/operation/operation-update-extension
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/cloud-enterprise/v4/operation/operation-update-extension
products:
  - Elastic Cloud Enterprise
---

# Update Extension

## Paths

- `POST` `/deployments/extensions/{extension_id}`

#### Path parameters

- `extension_id` (string) — required
  Id of an extension

## Description

Updates an extension.

## Authentication

- Basic: `Authorization: Basic <credentials>`
- Api key: `Authorization: <value>`

## Request body

The extension update data.

`application/json`

- `name` (string) — required
  The extension name.
- `description` (string) — optional
  The extension description.
- `download_url` (string) — optional
  The URL to download the extension archive.
- `extension_type` (enum) — required
  The extension type.
  Values: `plugin`, `bundle`
- `version` (string) — required
  The Elasticsearch version.

## Responses

#### `200`

Extension updated successfully.

`application/json`

- `id` (string)
  The extension ID
- `name` (string)
  The extension name.
- `description` (string)
  The extension description.
- `url` (string)
  The extension URL to be used in the plan.
- `download_url` (string)
  The download URL specified during extension creation.
- `extension_type` (enum)
  The extension type.
  Values: `plugin`, `bundle`
- `version` (string)
  The Elasticsearch version.
- `deployments` (string[])
  List of deployments using this extension. Up to only 10000 deployments will be included in the list.
- `file_metadata` (object)
  - `last_modified_date` (string · format: date-time)
    The date and time the extension was last modified.
  - `size` (integer · format: int64)
    The extension file size in bytes.
  - `url` (string · format: uri)
    The temporary URL to download the extension file. Usable for verification.
##### Response headers

- `x-cloud-resource-version` (string)
  The resource version, which is used to avoid update conflicts with concurrent operations
- `x-cloud-resource-created` (string)
  The date-time when the resource was created (ISO format relative to UTC)
- `x-cloud-resource-last-modified` (string)
  The date-time when the resource was last modified (ISO format relative to UTC)

#### `400`

Could not download the extension from the specified URL. (code: `extensions.request_execution_failed`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `401`

* The extension does not belong to you. (code: `extensions.unauthorised`)
* Your current session does not have a user id associated with it. (code: `extensions.no_user_id`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `404`

The extension you want does not exist. (code: `extensions.not_found`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `409`

The version you sent does not match the persisted version. (code: `extensions.version_conflict`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

## Code examples

#### curl

```curl
curl -X POST "${API_URL}/deployments/extensions/${EXTENSION_ID}" \
  -u "${USERNAME}:${PASSWORD}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "extension_type": "plugin",
    "version": "string"
  }'
```

