Elastic Stack (ELK Stack) Snapshot API

The snapshot API from Elastic Stack (ELK Stack) — 12 operation(s) for snapshot.

Operations 18

POST /_snapshot/{repository}/_cleanup Clean up the snapshot repository #
PUT /_snapshot/{repository}/{snapshot}/_clone/{target_snapshot} Clone a snapshot #
GET /_snapshot/{repository}/{snapshot} Get snapshot information #
PUT /_snapshot/{repository}/{snapshot} Create a snapshot #
POST /_snapshot/{repository}/{snapshot} Create a snapshot #
DELETE /_snapshot/{repository}/{snapshot} Delete snapshots #
GET /_snapshot/{repository} Get snapshot repository information #
PUT /_snapshot/{repository} Create or update a snapshot repository #
POST /_snapshot/{repository} Create or update a snapshot repository #
DELETE /_snapshot/{repository} Delete snapshot repositories #
GET /_snapshot Get snapshot repository information #
POST /_snapshot/{repository}/_analyze Analyze a snapshot repository #
POST /_snapshot/{repository}/_verify_integrity Verify the repository integrity #
POST /_snapshot/{repository}/{snapshot}/_restore Restore a snapshot #
GET /_snapshot/_status Get the snapshot status #
GET /_snapshot/{repository}/_status Get the snapshot status #
GET /_snapshot/{repository}/{snapshot}/_status Get the snapshot status #
POST /_snapshot/{repository}/_verify Verify a snapshot repository #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elk-stack-snapshot-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

elk-stack-snapshot-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Elasticsearch Request & Response Specification Snapshot API
  license:
    name: Apache 2.0
    url: https://github.com/elastic/elasticsearch-specification/blob/main/LICENSE
  version: ''
tags:
- name: snapshot
paths:
  /_snapshot/{repository}/_cleanup:
    post:
      tags:
      - snapshot
      summary: Clean up the snapshot repository
      description: 'Trigger the review of the contents of a snapshot repository and delete any stale data not referenced by existing snapshots.


        ## Required authorization


        * Cluster privileges: `manage`

        '
      externalDocs:
        description: About managing snapshot
        url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/self-managed#snapshots-repository-cleanup
        x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/clean-up-snapshot-repo-api.html
      operationId: snapshot-cleanup-repository
      parameters:
      - in: path
        name: repository
        description: The name of the snapshot repository to clean up.
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: query
        name: master_timeout
        description: 'The period to wait for a connection to the master node.

          If the master node is not available before the timeout expires, the request fails and returns an error.

          To indicate that the request should never timeout, set it to `-1`'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      - in: query
        name: timeout
        description: 'The period to wait for a response from all relevant nodes in the cluster after updating the cluster metadata.

          If no response is received before the timeout expires, the cluster metadata update still applies but the response will indicate that it was not completely acknowledged.

          To indicate that the request should never timeout, set it to `-1`.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    description: Statistics for cleanup operations.
                    allOf:
                    - $ref: '#/components/schemas/snapshot.cleanup_repository.CleanupRepositoryResults'
                required:
                - results
              examples:
                SnapshotCleanupRepositoryResponseExample1:
                  description: A successful response from `POST /_snapshot/my_repository/_cleanup`.
                  value: "{\n  \"results\": {\n    \"deleted_bytes\": 20,\n    \"deleted_blobs\": 5\n  }\n}"
      x-state: Generally available; Added in 7.4.0
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_snapshot/{repository}/{snapshot}/_clone/{target_snapshot}:
    put:
      tags:
      - snapshot
      summary: Clone a snapshot
      description: 'Clone part of all of a snapshot into another snapshot in the same repository.


        ## Required authorization


        * Cluster privileges: `manage`

        '
      operationId: snapshot-clone
      parameters:
      - in: path
        name: repository
        description: The name of the snapshot repository that both source and target snapshot belong to.
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: path
        name: snapshot
        description: The source snapshot name.
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: path
        name: target_snapshot
        description: The target snapshot name.
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: query
        name: master_timeout
        description: 'The period to wait for the master node.

          If the master node is not available before the timeout expires, the request fails and returns an error.

          To indicate that the request should never timeout, set it to `-1`.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                indices:
                  description: 'A comma-separated list of indices to include in the snapshot.

                    Multi-target syntax is supported.'
                  type: string
              required:
              - indices
            examples:
              SnapshotCloneRequestExample1:
                description: Run `PUT /_snapshot/my_repository/source_snapshot/_clone/target_snapshot` to clone the `source_snapshot` into a new `target_snapshot`.
                value: "{\n  \"indices\": \"index_a,index_b\"\n}"
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_types.AcknowledgedResponseBase'
      x-state: Generally available; Added in 7.10.0
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_snapshot/{repository}/{snapshot}:
    get:
      tags:
      - snapshot
      summary: Get snapshot information
      description: 'NOTE: The `after` parameter and `next` field enable you to iterate through snapshots with some consistency guarantees regarding concurrent creation or deletion of snapshots.

        It is guaranteed that any snapshot that exists at the beginning of the iteration and is not concurrently deleted will be seen during the iteration.

        Snapshots concurrently created may be seen during an iteration.


        ## Required authorization


        * Cluster privileges: `monitor_snapshot`

        '
      operationId: snapshot-get
      parameters:
      - in: path
        name: repository
        description: 'A comma-separated list of snapshot repository names used to limit the request.

          Wildcard (`*`) expressions are supported.'
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: path
        name: snapshot
        description: 'A comma-separated list of snapshot names to retrieve

          Wildcards (`*`) are supported.


          * To get information about all snapshots in a registered repository, use a wildcard (`*`) or `_all`.

          * To get information about any snapshots that are currently running, use `_current`.'
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Names'
        style: simple
      - in: query
        name: after
        description: An offset identifier to start pagination from as returned by the next field in the response body.
        deprecated: false
        schema:
          type: string
        x-state: Generally available; Added in 7.14.0
        style: form
      - in: query
        name: from_sort_value
        description: 'The value of the current sort column at which to start retrieval.

          It can be a string `snapshot-` or a repository name when sorting by snapshot or repository name.

          It can be a millisecond time value or a number when sorting by `index-` or shard count.'
        deprecated: false
        schema:
          type: string
        x-state: Generally available; Added in 7.16.0
        style: form
      - in: query
        name: ignore_unavailable
        description: If `false`, the request returns an error for any snapshots that are unavailable.
        deprecated: false
        schema:
          default: false
          type: boolean
        style: form
      - in: query
        name: index_details
        description: 'If `true`, the response includes additional information about each index in the snapshot comprising the number of shards in the index, the total size of the index in bytes, and the maximum number of segments per shard in the index.

          The default is `false`, meaning that this information is omitted.'
        deprecated: false
        schema:
          default: false
          type: boolean
        x-state: Generally available; Added in 7.13.0
        style: form
      - in: query
        name: index_names
        description: If `true`, the response includes the name of each index in each snapshot.
        deprecated: false
        schema:
          default: true
          type: boolean
        x-state: Generally available; Added in 8.3.0
        style: form
      - in: query
        name: include_repository
        description: If `true`, the response includes the repository name in each snapshot.
        deprecated: false
        schema:
          default: true
          type: boolean
        style: form
      - in: query
        name: master_timeout
        description: 'The period to wait for a connection to the master node.

          If no response is received before the timeout expires, the request fails and returns an error.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      - in: query
        name: order
        description: 'The sort order.

          Valid values are `asc` for ascending and `desc` for descending order.

          The default behavior is ascending order.'
        deprecated: false
        schema:
          default: asc
          allOf:
          - $ref: '#/components/schemas/_types.SortOrder'
        x-state: Generally available; Added in 7.14.0
        style: form
      - in: query
        name: offset
        description: Numeric offset to start pagination from based on the snapshots matching this request. Using a non-zero value for this parameter is mutually exclusive with using the after parameter. Defaults to 0.
        deprecated: false
        schema:
          default: 0.0
          type: number
        x-state: Generally available; Added in 7.15.0
        style: form
      - in: query
        name: size
        description: 'The maximum number of snapshots to return.

          The default is -1, which means to return all that match the request without limit.'
        deprecated: false
        schema:
          default: -1.0
          type: number
        x-state: Generally available; Added in 7.14.0
        style: form
      - in: query
        name: slm_policy_filter
        description: 'Filter snapshots by a comma-separated list of snapshot lifecycle management (SLM) policy names that snapshots belong to.


          You can use wildcards (`*`) and combinations of wildcards followed by exclude patterns starting with `-`.

          For example, the pattern `*,-policy-a-\*` will return all snapshots except for those that were created by an SLM policy with a name starting with `policy-a-`.

          Note that the wildcard pattern `*` matches all snapshots created by an SLM policy but not those snapshots that were not created by an SLM policy.

          To include snapshots that were not created by an SLM policy, you can use the special pattern `_none` that will match all snapshots without an SLM policy.'
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        x-state: Generally available; Added in 7.16.0
        style: form
      - in: query
        name: sort
        description: 'The sort order for the result.

          The default behavior is sorting by snapshot start time stamp.'
        deprecated: false
        schema:
          default: start_time
          allOf:
          - $ref: '#/components/schemas/snapshot._types.SnapshotSort'
        x-state: Generally available; Added in 7.14.0
        style: form
      - in: query
        name: state
        description: 'Only return snapshots with a state found in the given comma-separated list of snapshot states.

          The default is all snapshot states.'
        deprecated: false
        schema:
          oneOf:
          - $ref: '#/components/schemas/snapshot._types.SnapshotState'
          - type: array
            items:
              $ref: '#/components/schemas/snapshot._types.SnapshotState'
        x-state: Generally available; Added in 9.1.0
        style: form
      - in: query
        name: verbose
        description: 'If `true`, returns additional information about each snapshot such as the version of Elasticsearch which took the snapshot, the start and end times of the snapshot, and the number of shards snapshotted.


          NOTE: The parameters `size`, `order`, `after`, `from_sort_value`, `offset`, `slm_policy_filter`, and `sort` are not supported when you set `verbose=false` and the sort order for requests with `verbose=false` is undefined.'
        deprecated: false
        schema:
          default: true
          type: boolean
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  remaining:
                    description: The number of remaining snapshots that were not returned due to size limits and that can be fetched by additional requests using the `next` field value.
                    x-state: Generally available; Added in 7.15.0
                    type: number
                  total:
                    description: The total number of snapshots that match the request when ignoring the size limit or `after` query parameter.
                    x-state: Generally available; Added in 7.15.0
                    type: number
                  next:
                    description: 'If the request contained a size limit and there might be more results, a `next` field will be added to the response.

                      It can be used as the `after` query parameter to fetch additional results.'
                    type: string
                  responses:
                    type: array
                    items:
                      $ref: '#/components/schemas/snapshot.get.SnapshotResponseItem'
                  snapshots:
                    type: array
                    items:
                      $ref: '#/components/schemas/snapshot._types.SnapshotInfo'
                required:
                - remaining
                - total
              examples:
                SnapshotGetResponseExample1:
                  description: 'A successful response from `GET /_snapshot/my_repository/snapshot_*?sort=start_time&from_sort_value=1577833200000`. The response contains information for all snapshots with names starting with `snapshot_` and that started on or after timestamp `1577833200000` (Jan 1st 2020) when sorted by snapshot start time in the default ascending order.

                    '
                  value: "{\n  \"snapshots\": [\n    {\n      \"snapshot\": \"snapshot_1\",\n      \"uuid\": \"dKb54xw67gvdRctLCxSket\",\n      \"repository\": \"my_repository\",\n      \"version_id\": <version_id>,\n      \"version\": <version>,\n      \"indices\": [],\n      \"data_streams\": [],\n      \"feature_states\": [],\n      \"include_global_state\": true,\n      \"state\": \"SUCCESS\",\n      \"start_time\": \"2020-07-06T21:55:18.128Z\",\n      \"start_time_in_millis\": 1593093628849,\n      \"end_time\": \"2020-07-06T21:55:18.129Z\",\n      \"end_time_in_millis\": 1593093628850,\n      \"duration_in_millis\": 1,\n      \"failures\": [],\n      \"shards\": {\n        \"total\": 0,\n        \"failed\": 0,\n        \"successful\": 0\n      }\n    },\n    {\n      \"snapshot\": \"snapshot_2\",\n      \"uuid\": \"vdRctLCxSketdKb54xw67g\",\n      \"repository\": \"my_repository\",\n      \"version_id\": <version_id>,\n      \"version\": <version>,\n      \"indices\": [],\n      \"data_streams\": [],\n      \"feature_states\": [],\n      \"include_global_state\": true,\n      \"state\": \"SUCCESS\",\n      \"start_time\": \"2020-07-06T21:55:18.130Z\",\n      \"start_time_in_millis\": 1593093628851,\n      \"end_time\": \"2020-07-06T21:55:18.130Z\",\n      \"end_time_in_millis\": 1593093628851,\n      \"duration_in_millis\": 0,\n      \"failures\": [],\n      \"shards\": {\n        \"total\": 0,\n        \"failed\": 0,\n        \"successful\": 0\n      }\n    },\n    {\n      \"snapshot\": \"snapshot_3\",\n      \"uuid\": \"dRctdKb54xw67gvLCxSket\",\n      \"repository\": \"my_repository\",\n      \"version_id\": <version_id>,\n      \"version\": <version>,\n      \"indices\": [],\n      \"data_streams\": [],\n      \"feature_states\": [],\n      \"include_global_state\": true,\n      \"state\": \"SUCCESS\",\n      \"start_time\": \"2020-07-06T21:55:18.131Z\",\n      \"start_time_in_millis\": 1593093628852,\n      \"end_time\": \"2020-07-06T21:55:18.135Z\",\n      \"end_time_in_millis\": 1593093628856,\n      \"duration_in_millis\": 4,\n      \"failures\": [],\n      \"shards\": {\n        \"total\": 0,\n        \"failed\": 0,\n        \"successful\": 0\n      }\n    }\n  ],\n  \"total\": 3,\n  \"remaining\": 0\n}"
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    put:
      tags:
      - snapshot
      summary: Create a snapshot
      description: 'Take a snapshot of a cluster or of data streams and indices.


        ## Required authorization


        * Cluster privileges: `create_snapshot`

        '
      externalDocs:
        description: More about managing snapshots
        url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/create-snapshots
        x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/create-snapshot-api.html
      operationId: snapshot-create
      parameters:
      - $ref: '#/components/parameters/snapshot.create-repository'
      - $ref: '#/components/parameters/snapshot.create-snapshot'
      - $ref: '#/components/parameters/snapshot.create-master_timeout'
      - $ref: '#/components/parameters/snapshot.create-wait_for_completion'
      requestBody:
        $ref: '#/components/requestBodies/snapshot.create'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.create-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    post:
      tags:
      - snapshot
      summary: Create a snapshot
      description: 'Take a snapshot of a cluster or of data streams and indices.


        ## Required authorization


        * Cluster privileges: `create_snapshot`

        '
      externalDocs:
        description: More about managing snapshots
        url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/create-snapshots
        x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/create-snapshot-api.html
      operationId: snapshot-create-1
      parameters:
      - $ref: '#/components/parameters/snapshot.create-repository'
      - $ref: '#/components/parameters/snapshot.create-snapshot'
      - $ref: '#/components/parameters/snapshot.create-master_timeout'
      - $ref: '#/components/parameters/snapshot.create-wait_for_completion'
      requestBody:
        $ref: '#/components/requestBodies/snapshot.create'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.create-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    delete:
      tags:
      - snapshot
      summary: Delete snapshots
      description: '


        ## Required authorization


        * Cluster privileges: `manage`

        '
      operationId: snapshot-delete
      parameters:
      - in: path
        name: repository
        description: The name of the repository to delete a snapshot from.
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Name'
        style: simple
      - in: path
        name: snapshot
        description: 'A comma-separated list of snapshot names to delete.

          It also accepts wildcards (`*`).'
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Names'
        style: simple
      - in: query
        name: master_timeout
        description: 'The period to wait for the master node.

          If the master node is not available before the timeout expires, the request fails and returns an error.

          To indicate that the request should never timeout, set it to `-1`.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      - in: query
        name: wait_for_completion
        description: 'If `true`, the request returns a response when the matching snapshots are all deleted.

          If `false`, the request returns a response as soon as the deletes are scheduled.'
        deprecated: false
        schema:
          default: true
          type: boolean
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_types.AcknowledgedResponseBase'
              examples:
                SnapshotDeleteResponseExample1:
                  description: 'A successful response from `DELETE /_snapshot/my_repository/snapshot_2,snapshot_3`. The request deletes `snapshot_2` and `snapshot_3` from the repository named `my_repository`.

                    '
                  value: "{\n  \"acknowledged\" : true\n}"
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_snapshot/{repository}:
    get:
      tags:
      - snapshot
      summary: Get snapshot repository information
      description: '


        ## Required authorization


        * Cluster privileges: `monitor_snapshot`

        '
      operationId: snapshot-get-repository-1
      parameters:
      - $ref: '#/components/parameters/snapshot.get_repository-repository'
      - $ref: '#/components/parameters/snapshot.get_repository-local'
      - $ref: '#/components/parameters/snapshot.get_repository-master_timeout'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.get_repository-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    put:
      tags:
      - snapshot
      summary: Create or update a snapshot repository
      description: 'IMPORTANT: If you are migrating searchable snapshots, the repository name must be identical in the source and destination clusters.

        To register a snapshot repository, the cluster''s global metadata must be writeable.

        Ensure there are no cluster blocks (for example, `cluster.blocks.read_only` and `clsuter.blocks.read_only_allow_delete` settings) that prevent write access.


        Several options for this API can be specified using a query parameter or a request body parameter.

        If both parameters are specified, only the query parameter is used.


        ## Required authorization


        * Cluster privileges: `manage`

        '
      externalDocs:
        description: About managing snapshot
        url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/self-managed
        x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/put-snapshot-repo-api.html
      operationId: snapshot-create-repository
      parameters:
      - $ref: '#/components/parameters/snapshot.create_repository-repository'
      - $ref: '#/components/parameters/snapshot.create_repository-master_timeout'
      - $ref: '#/components/parameters/snapshot.create_repository-timeout'
      - $ref: '#/components/parameters/snapshot.create_repository-verify'
      requestBody:
        $ref: '#/components/requestBodies/snapshot.create_repository'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.create_repository-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    post:
      tags:
      - snapshot
      summary: Create or update a snapshot repository
      description: 'IMPORTANT: If you are migrating searchable snapshots, the repository name must be identical in the source and destination clusters.

        To register a snapshot repository, the cluster''s global metadata must be writeable.

        Ensure there are no cluster blocks (for example, `cluster.blocks.read_only` and `clsuter.blocks.read_only_allow_delete` settings) that prevent write access.


        Several options for this API can be specified using a query parameter or a request body parameter.

        If both parameters are specified, only the query parameter is used.


        ## Required authorization


        * Cluster privileges: `manage`

        '
      externalDocs:
        description: About managing snapshot
        url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/self-managed
        x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/put-snapshot-repo-api.html
      operationId: snapshot-create-repository-1
      parameters:
      - $ref: '#/components/parameters/snapshot.create_repository-repository'
      - $ref: '#/components/parameters/snapshot.create_repository-master_timeout'
      - $ref: '#/components/parameters/snapshot.create_repository-timeout'
      - $ref: '#/components/parameters/snapshot.create_repository-verify'
      requestBody:
        $ref: '#/components/requestBodies/snapshot.create_repository'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.create_repository-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
    delete:
      tags:
      - snapshot
      summary: Delete snapshot repositories
      description: 'When a repository is unregistered, Elasticsearch removes only the reference to the location where the repository is storing the snapshots.

        The snapshots themselves are left untouched and in place.


        ## Required authorization


        * Cluster privileges: `manage`

        '
      operationId: snapshot-delete-repository
      parameters:
      - in: path
        name: repository
        description: 'The ame of the snapshot repositories to unregister.

          Wildcard (`*`) patterns are supported.'
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Names'
        style: simple
      - in: query
        name: master_timeout
        description: 'The period to wait for the master node.

          If the master node is not available before the timeout expires, the request fails and returns an error.

          To indicate that the request should never timeout, set it to `-1`.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      - in: query
        name: timeout
        description: 'The period to wait for a response from all relevant nodes in the cluster after updating the cluster metadata.

          If no response is received before the timeout expires, the cluster metadata update still applies but the response will indicate that it was not completely acknowledged.

          To indicate that the request should never timeout, set it to `-1`.'
        deprecated: false
        schema:
          default: 30s
          allOf:
          - $ref: '#/components/schemas/_types.Duration'
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_types.AcknowledgedResponseBase'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_snapshot:
    get:
      tags:
      - snapshot
      summary: Get snapshot repository information
      description: '


        ## Required authorization


        * Cluster privileges: `monitor_snapshot`

        '
      operationId: snapshot-get-repository
      parameters:
      - $ref: '#/components/parameters/snapshot.get_repository-local'
      - $ref: '#/components/parameters/snapshot.get_repository-master_timeout'
      responses:
        '200':
          $ref: '#/components/responses/snapshot.get_repository-200'
      x-state: Generally available
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_snapshot/{repository}/_analyze:
    post:
      tags:
      - snapshot
      summary: Analyze a snapshot repository
      description: 'Performs operations on a snapshot repository in order to check for incorrect behaviour.


        There are a large number of third-party storage systems available, not all of which are suitable for use as a snapshot repository by Elasticsearch.

        Some storage systems behave incorrectly, or perform poorly, especially when accessed concurrently by multiple clients as the nodes of an Elasticsearch cluster do.

        This API performs a collection of read and write operations on your repository which are designed to detect incorrect behaviour and to measure the performance characteristics of your storage system.


        The default values for the parameters are deliberately low to reduce the impact of running an analysis inadvertently and to provide a sensible starting point for your investigations.

        Run your first analysis with the default parameter values to check for simple problems.

        Some repositories may behave correctly when lightly loaded but incorrectly under production-like workloads.

        If the first analysis is successful, run a sequence of increasingly large analyses until you encounter a failure or you reach a `blob_count` of at least `2000`, a `max_blob_size` of at least `2gb`, a `max_total_data_size` of at least `1tb`, and a `register_operation_count` of at least `100`.

        Always specify a generous timeout, possibly `1h` or longer, to allow time for each analysis to run to completion.

        Some repositories may behave correctly when accessed by a small number of Elasticsearch nodes but incorrectly when accessed concurrently by a production-scale cluster.

        Perform the analyses using a multi-node cluster of a similar size to your production cluster so that it can detect any problems that only arise when the repository is accessed by many nodes at once.


        If the analysis fails, Elasticsearch detected that your repository behaved unexpectedly.

        This usually means you are using a third-party storage system with an incorrect or incompatible implementation of the API it claims to support.

        If so, this storage system is not suitable for use as a snapshot repository.

        Repository analysis triggers conditions that occur only rarely when taking snapshots in a production system.

        Snapshotting to unsuitable storage may appear to work correctly most of the time despite repository analysis failures.

        However your snapshot data is at risk if you store it in a snapshot repository that does not reliably pass repository analysis.

        You can demonstrate that the analysis failure is due to an incompatible storage implementation by verifying that Elasticsearch does not detect the same problem when analysing the reference implementation of the storage protocol you are using.

        For instance, if you are using storage that offers an API which the supplier claims to be compatible with AWS S3, verify that repositories in AWS S3 do not fail repository analysis.

        This allows you to demonstrate to your storage supplier that a repository analysis failure must only be caused by an incompatibility with A

# --- truncated at 32 KB (626 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elk-stack/refs/heads/main/openapi/elk-stack-snapshot-api-openapi.yml