Elastic Features API

The features APIs retrieve information about the features that are currently enabled and available on the node.

Operations 2

GET /_features Get the features #
POST /_features/_reset Reset the features #

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/elastic:elastic-features-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

elastic-features-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Elasticsearch Features API
  description: 'Elasticsearch provides REST APIs that are used by the UI components and can be called directly to configure and access Elasticsearch features.

    ## Documentation source and versions

    This documentation is derived from the main branch of the elasticsearch-specification repository. It is provided under license Attribution-NonCommercial-NoDerivatives 4.0 International.

    This documentation contains work-in-progress information for future Elastic Stack releases.'
  license:
    name: Apache 2.0
    url: https://github.com/elastic/elasticsearch-specification/blob/main/LICENSE
  version: ''
security:
- apiKeyAuth: []
- basicAuth: []
- bearerAuth: []
tags:
- name: Features
  description: The features APIs retrieve information about the features that are currently enabled and available on the node.
  externalDocs:
    description: Learn more.
    url: https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore#feature-state
  x-displayName: Features
paths:
  /_features:
    get:
      tags:
      - Features
      summary: Get the features
      description: 'Get a list of features that can be included in snapshots using the `feature_states` field when creating a snapshot.

        You can use this API to determine which feature states to include when taking a snapshot.

        By default, all feature states are included in a snapshot if that snapshot includes the global state, or none if it does not.


        A feature state includes one or more system indices necessary for a given feature to function.

        In order to ensure data integrity, all system indices that comprise a feature state are snapshotted and restored together.


        The features listed by this API are a combination of built-in features and features defined by plugins.

        In order for a feature state to be listed in this API and recognized as a valid feature state by the create snapshot API, the plugin that defines that feature must be installed on the master node.'
      externalDocs:
        description: '"Create'
        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/get-features-api.html
      operationId: features-get-features
      parameters:
      - in: query
        name: master_timeout
        description: Period to wait for a connection to the master node.
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Duration'
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  features:
                    type: array
                    items:
                      $ref: '#/components/schemas/features._types.Feature'
                required:
                - features
              examples:
                GetFeaturesResponseExample1:
                  description: A successful response for retrieving a list of feature states that can be included when taking a snapshot.
                  value: "{\n  \"features\": [\n    {\n      \"name\": \"tasks\",\n      \"description\": \"Manages task results\"\n    },\n    {\n      \"name\": \"kibana\",\n      \"description\": \"Manages Kibana configuration and reports\"\n    }\n  ]\n}"
      x-state: Generally available; Added in 7.12.0
      x-variations:
      - "<div>\n              <span class=\"operation-verb get\">GET</span>\n              <span class=\"operation-path\">/_features</span>\n              </div>\n            "
      x-api: get_features.features
      x-category: info
      x-codeSamples:
      - lang: Console
        source: 'GET _features

          '
      - lang: Python
        source: resp = client.features.get_features()
      - lang: JavaScript
        source: const response = await client.features.getFeatures();
      - lang: Ruby
        source: response = client.features.get_features
      - lang: PHP
        source: $resp = $client->features()->getFeatures();
      - lang: curl
        source: 'curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_features"'
      - lang: Java
        source: 'client.features().getFeatures(g -> g);

          '
      x-metaTags:
      - content: Elasticsearch
        name: product_name
  /_features/_reset:
    post:
      tags:
      - Features
      summary: Reset the features
      description: 'Clear all of the state information stored in system indices by Elasticsearch features, including the security and machine learning indices.


        WARNING: Intended for development and testing use only. Do not reset features on a production cluster.


        Return a cluster to the same state as a new installation by resetting the feature state for all Elasticsearch features.

        This deletes all state information stored in system indices.


        The response code is HTTP 200 if the state is successfully reset for all features.

        It is HTTP 500 if the reset operation failed for any feature.


        Note that select features might provide a way to reset particular system indices.

        Using this API resets all features, both those that are built-in and implemented as plugins.


        To list the features that will be affected, use the get features API.


        IMPORTANT: The features installed on the node you submit this request to are the features that will be reset. Run on the master node if you have any doubts about which plugins are installed on individual nodes.'
      operationId: features-reset-features
      parameters:
      - in: query
        name: master_timeout
        description: Period to wait for a connection to the master node.
        deprecated: false
        schema:
          $ref: '#/components/schemas/_types.Duration'
        style: form
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  features:
                    type: array
                    items:
                      $ref: '#/components/schemas/features._types.Feature'
                required:
                - features
              examples:
                ResetFeaturesResponseExample1:
                  description: A successful response for clearing state information stored in system indices by Elasticsearch features.
                  value: "{\n  \"features\" : [\n    {\n      \"feature_name\" : \"security\",\n      \"status\" : \"SUCCESS\"\n    },\n    {\n      \"feature_name\" : \"tasks\",\n      \"status\" : \"SUCCESS\"\n    }\n  ]\n}"
      x-state: Technical preview; Added in 7.12.0
      x-variations:
      - "<div>\n              <span class=\"operation-verb post\">POST</span>\n              <span class=\"operation-path\">/_features/_reset</span>\n              </div>\n            "
      x-api: reset_features.features
      x-category: info
      x-codeSamples:
      - lang: Console
        source: 'POST /_features/_reset

          '
      - lang: Python
        source: resp = client.features.reset_features()
      - lang: JavaScript
        source: const response = await client.features.resetFeatures();
      - lang: Ruby
        source: response = client.features.reset_features
      - lang: PHP
        source: $resp = $client->features()->resetFeatures();
      - lang: curl
        source: 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_features/_reset"'
      - lang: Java
        source: 'client.features().resetFeatures(r -> r);

          '
      x-metaTags:
      - content: Elasticsearch
        name: product_name
components:
  schemas:
    _types.Duration:
      externalDocs:
        url: https://www.elastic.co/docs/reference/elasticsearch/rest-apis/api-conventions#time-units
      description: 'A duration. Units can be `nanos`, `micros`, `ms` (milliseconds), `s` (seconds), `m` (minutes), `h` (hours) and

        `d` (days). Also accepts "0" without a unit and "-1" to indicate an unspecified value.'
      oneOf:
      - type: string
      - type: string
        enum:
        - '-1'
      - type: string
        enum:
        - '0'
    features._types.Feature:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
      required:
      - name
      - description
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: "Elasticsearch APIs support key-based authentication.\nYou must create an API key and use the encoded value in the request header.\nFor example:\n\n```\ncurl -X GET \"${ES_URL}/_cat/indices?v=true\" \\\n  -H \"Authorization: ApiKey ${API_KEY}\"\n```\n\nTo get API keys, use the `/_security/api_key` APIs."
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API.

        For examples, refer to [Token-based authentication services](https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/token-based-authentication-services)'
x-tagGroups:
- name: AI & Machine Learning
  tags:
  - analytics
  - graph
  - inference
  - ml
  - ml anomaly
  - ml data frame
  - ml trained model
  - query_rules
  - text_structure
- name: Cluster Management
  tags:
  - ccr
  - cluster
  - connector
  - data stream
  - ilm
  - indices
  - rollup
  - script
  - search_application
  - searchable_snapshots
  - slm
  - snapshot
- name: Data Processing
  tags:
  - enrich
  - fleet
  - ingest
  - logstash
  - synonyms
  - transform
- name: Information & Monitoring
  tags:
  - cat
  - features
  - health_report
  - info
  - license
  - migration
  - tasks
  - watcher
  - xpack
- name: Search & Document APIs
  tags:
  - document
  - eql
  - esql
  - search
  - sql
- name: Security
  tags:
  - security