---
type: api
title: Uploads the Extension
description: Uploads archive for an extension.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/operation/operation-upload-extension
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/operation/operation-upload-extension
products:
  - Elastic Cloud Enterprise
---

# Uploads the Extension

## Paths

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

- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/authentication#basicauth)
- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/authentication#apikey)

#### Path Parameters

- `extension_id` (string)
  Id of an extension

## Description

Uploads archive for an extension.

## Request Body

`multipart/form-data`

- `file` (string) — required
  Zip file that contains the extension

## Responses

#### `200`

Archive uploaded 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` ({} ExtensionFileMetadata)
  - `last_modified_date` (string)
    The date and time the extension was last modified.
  - `size` (integer)
    The extension file size in bytes.
  - `url` (string)
    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 accept the extensions file. (code: `extensions.request_execution_failed`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  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` ([] BasicFailedReplyElement)
  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` ([] BasicFailedReplyElement)
  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

#### `503`

The extension download service is currently at capacity. Please retry shortly. (code: `extensions.download_service_busy`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  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

#### Console

```console
PUT /deployments/extensions/{extension_id}
```

#### curl

```curl
curl -X PUT "/deployments/extensions/{extension_id}"
```

