# Create an extension **POST /deployments/extensions** Creates the extension. The extensions API supports two types of usage patterns. A). Specify a `download_url`, http or https URL, where the extension is currently hosted. This will result in extension being copied to elastic repository. B). Create only the extension metadata using the `POST` endpoint and then use `PUT` to upload the extension file. Leave the `download_url` unspecified in this case. ## Servers - https://api.elastic-cloud.com/api/v1: https://api.elastic-cloud.com/api/v1 () ## Parameters ### Body: application/json (object) the data that creates the extension - **name** (string) The extension name. Only ASCII alphanumeric and [_.-] characters allowed - **description** (string) The extension description. - **download_url** (string) The URL to download the extension archive. - **extension_type** (string) The extension type. - **version** (string) The Elasticsearch version. ## Responses ### 201 The extension that was just created. #### 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) #### Body: application/json (object) - **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** (string) The extension type. - **version** (string) The Elasticsearch version. - **deployments** (array[string]) List of deployments using this extension. Up to only 10000 deployments will be included in the list. - **file_metadata** (object) ### 400 Could not download the extension from the specified URL. (code: `extensions.request_execution_failed`) #### Headers - **x-cloud-error-codes** (string) The error codes associated with the response #### Body: application/json (object) - **errors** (array[object]) A list of errors that occurred in the failing request ### 404 Your current session does not have a user id associated with it. (code: `extensions.no_user_id`) #### Headers - **x-cloud-error-codes** (string) The error codes associated with the response #### Body: application/json (object) - **errors** (array[object]) A list of errors that occurred in the failing request ### 409 An extension already exists with the generated id. Please try again. (code: `extensions.id_already_exists`) #### Headers - **x-cloud-error-codes** (string) The error codes associated with the response #### Body: application/json (object) - **errors** (array[object]) A list of errors that occurred in the failing request [Powered by Bump.sh](https://bump.sh)