Elastic Stack (ELK Stack) Extensions API
The Extensions API from Elastic Stack (ELK Stack) — 2 operation(s) for extensions.
The Extensions API from Elastic Stack (ELK Stack) — 2 operation(s) for extensions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/elk-stack-extensions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '1'
title: Elastic Cloud Enterprise Extensions API
termsOfService: ''
servers:
- url: https://{{hostname}}/api/v1
security:
- basicAuth: []
- apiKey: []
tags:
- name: Extensions
paths:
/deployments/extensions:
get:
tags:
- Extensions
summary: List Extensions
description: Retrieves all of the available extensions.
operationId: list-extensions
responses:
'200':
description: The extensions that are available
content:
application/json:
schema:
$ref: '#/components/schemas/Extensions'
x-doc:
tag: Deployments - Extensions
post:
tags:
- Extensions
summary: Create an extension
description: "Creates the extension.\n The extensions API supports two types of usage patterns.\n 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.\n 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.\n"
operationId: create-extension
responses:
'201':
description: The extension that was just created.
headers:
x-cloud-resource-version:
description: The resource version, which is used to avoid update conflicts with concurrent operations
schema:
type: string
x-cloud-resource-created:
description: The date-time when the resource was created (ISO format relative to UTC)
schema:
type: string
x-cloud-resource-last-modified:
description: The date-time when the resource was last modified (ISO format relative to UTC)
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'404':
description: 'Your current session does not have a user id associated with it. (code: `extensions.no_user_id`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.no_user_id
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'400':
description: 'Could not download the extension from the specified URL. (code: `extensions.request_execution_failed`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.request_execution_failed
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'409':
description: 'An extension already exists with the generated id. Please try again. (code: `extensions.id_already_exists`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.id_already_exists
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
x-doc:
tag: Deployments - Extensions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateExtensionRequest'
description: the data that creates the extension
required: true
/deployments/extensions/{extension_id}:
get:
tags:
- Extensions
summary: Get Extension
description: Retrieves an extension.
operationId: get-extension
parameters:
- name: extension_id
in: path
description: Id of an extension
required: true
schema:
type: string
- name: include_deployments
in: query
description: Include deployments referencing this extension. Up to only 10000 deployments will be included.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: The Extension
headers:
x-cloud-resource-version:
description: The resource version, which is used to avoid update conflicts with concurrent operations
schema:
type: string
x-cloud-resource-created:
description: The date-time when the resource was created (ISO format relative to UTC)
schema:
type: string
x-cloud-resource-last-modified:
description: The date-time when the resource was last modified (ISO format relative to UTC)
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'404':
description: 'The extension requested does not exist. (code: `extensions.not_found`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.not_found
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
x-doc:
tag: Deployments - Extensions
post:
tags:
- Extensions
summary: Update Extension
description: Updates an extension.
operationId: update-extension
parameters:
- name: extension_id
in: path
description: Id of an extension
required: true
schema:
type: string
responses:
'200':
description: Extension updated successfully.
headers:
x-cloud-resource-version:
description: The resource version, which is used to avoid update conflicts with concurrent operations
schema:
type: string
x-cloud-resource-created:
description: The date-time when the resource was created (ISO format relative to UTC)
schema:
type: string
x-cloud-resource-last-modified:
description: The date-time when the resource was last modified (ISO format relative to UTC)
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'401':
description: '* 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`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.unauthorised
- extensions.no_user_id
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'404':
description: 'The extension you want does not exist. (code: `extensions.not_found`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.not_found
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'400':
description: 'Could not download the extension from the specified URL. (code: `extensions.request_execution_failed`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.request_execution_failed
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'409':
description: 'The version you sent does not match the persisted version. (code: `extensions.version_conflict`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.version_conflict
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
x-doc:
tag: Deployments - Extensions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateExtensionRequest'
description: The extension update data.
required: true
put:
tags:
- Extensions
summary: Uploads the Extension
description: Uploads archive for an extension.
operationId: upload-extension
parameters:
- name: extension_id
in: path
description: Id of an extension
required: true
schema:
type: string
responses:
'200':
description: Archive uploaded successfully.
headers:
x-cloud-resource-version:
description: The resource version, which is used to avoid update conflicts with concurrent operations
schema:
type: string
x-cloud-resource-created:
description: The date-time when the resource was created (ISO format relative to UTC)
schema:
type: string
x-cloud-resource-last-modified:
description: The date-time when the resource was last modified (ISO format relative to UTC)
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'401':
description: '* 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`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.unauthorised
- extensions.no_user_id
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'404':
description: 'The extension you want does not exist. (code: `extensions.not_found`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.not_found
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'400':
description: 'Could not accept the extensions file. (code: `extensions.request_execution_failed`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.request_execution_failed
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
x-doc:
tag: Deployments - Extensions
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
description: Zip file that contains the extension
format: binary
required:
- file
delete:
tags:
- Extensions
summary: Delete Extension
description: Deletes a Extension.
operationId: delete-extension
parameters:
- name: extension_id
in: path
description: Id of an extension
required: true
schema:
type: string
responses:
'200':
description: Extension deleted successfully.
headers:
x-cloud-resource-version:
description: The resource version, which is used to avoid update conflicts with concurrent operations
schema:
type: string
x-cloud-resource-created:
description: The date-time when the resource was created (ISO format relative to UTC)
schema:
type: string
x-cloud-resource-last-modified:
description: The date-time when the resource was last modified (ISO format relative to UTC)
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyResponse'
'401':
description: '* 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`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.unauthorised
- extensions.no_user_id
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'404':
description: 'The extension requested does not exist. (code: `extensions.not_found`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.not_found
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
'409':
description: 'The version you sent does not match the persisted version. (code: `extensions.version_conflict`)'
headers:
x-cloud-error-codes:
description: The error codes associated with the response
schema:
type: string
enum:
- extensions.version_conflict
content:
application/json:
schema:
$ref: '#/components/schemas/BasicFailedReply'
x-doc:
tag: Deployments - Extensions
components:
schemas:
BasicFailedReplyElement:
type: object
required:
- code
- message
properties:
code:
type: string
description: A structured code representing the error type that occurred
message:
type: string
description: A human readable message describing the error that occurred
fields:
type: array
description: If the error can be tied to a specific field or fields in the user request, this lists those fields
items:
type: string
BasicFailedReply:
type: object
required:
- errors
properties:
errors:
type: array
description: A list of errors that occurred in the failing request
items:
$ref: '#/components/schemas/BasicFailedReplyElement'
Extensions:
type: object
required:
- extensions
properties:
extensions:
type: array
description: The list of extensions.
items:
$ref: '#/components/schemas/Extension'
description: A collection of extensions
EmptyResponse:
type: object
Extension:
type: object
required:
- extension_type
- id
- name
- url
- version
properties:
id:
type: string
description: The extension ID
name:
type: string
description: The extension name.
description:
type: string
description: The extension description.
url:
type: string
description: The extension URL to be used in the plan.
download_url:
type: string
description: The download URL specified during extension creation.
extension_type:
type: string
description: The extension type.
enum:
- plugin
- bundle
version:
type: string
description: The Elasticsearch version.
deployments:
type: array
description: List of deployments using this extension. Up to only 10000 deployments will be included in the list.
items:
type: string
file_metadata:
description: The extension file metadata.
$ref: '#/components/schemas/ExtensionFileMetadata'
description: An API extension. It represents clusters' plugins and bundles
UpdateExtensionRequest:
type: object
required:
- extension_type
- name
- version
properties:
name:
type: string
description: The extension name.
description:
type: string
description: The extension description.
download_url:
type: string
description: The URL to download the extension archive.
extension_type:
type: string
description: The extension type.
enum:
- plugin
- bundle
version:
type: string
description: The Elasticsearch version.
description: The body of a request to update an extension
CreateExtensionRequest:
type: object
required:
- extension_type
- name
- version
properties:
name:
type: string
description: The extension name. Only ASCII alphanumeric and [_.-] characters allowed
description:
type: string
description: The extension description.
download_url:
type: string
description: The URL to download the extension archive.
extension_type:
type: string
description: The extension type.
enum:
- plugin
- bundle
version:
type: string
description: The Elasticsearch version.
description: The body of a request to create a new extension
ExtensionFileMetadata:
type: object
properties:
last_modified_date:
type: string
format: date-time
description: The date and time the extension was last modified.
size:
type: integer
format: int64
description: The extension file size in bytes.
url:
type: string
format: uri
description: The temporary URL to download the extension file. Usable for verification.
securitySchemes:
apiKey:
type: apiKey
name: Authorization
in: header
basicAuth:
type: http
scheme: basic
x-elastic:
curl:
auth: '-H "Authorization: ApiKey $ECE_API_KEY"'