Management API conventions

edit

Management API conventions

edit

[preview] This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.

The Management REST APIs for Elastic Cloud Serverless let you manage resources that are available in multiple solutions. These resources include connectors, data views, and saved objects. If you’ve previously used the Elastic Stack, the Management APIs are similar to Kibana APIs.

Management API calls are stateless. Each request that you make happens in isolation from other calls and must include all of the necessary information for Kibana to fulfill the request. API requests return JSON output, which is a format that is machine-readable and works well for automation.

To interact with Management APIs, use the following operations:

  • GET: Fetches the information.
  • POST: Adds new information.
  • PUT: Updates the existing information.
  • DELETE: Removes the information.

You can prepend any Management API endpoint with kbn: and run the request in Dev Tools → Console. For example:

GET kbn:/api/data_views

Check out Console.

Request headers
edit

When you call Management APIs outside of the Console, you must provide a request header. The Management APIs support the Authorization, Content-Type, and kbn-xsrf headers.

Authorization: ApiKey
Management APIs use key-based authentication. You must create an API key and use the encoded value in the request header. To learn about creating keys, go to API keys.
Content-Type: application/json
You must use this header when you send a payload in the API request. Typically, if you include the kbn-xsrf header, you must also include the Content-Type header.
kbn-xsrf: true
You must use this header for all API calls except GET or HEAD operations.

For example:

curl -X POST \
  "${KIBANA_URL}/api/data_views/data_view" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H 'Content-Type: application/json' \
  -H 'kbn-xsrf: true' \
  -d '{
    "data_view": {
      "title": "books*",
      "name": "My Books Data View"
      }
    }
'