All Products
Search
Document Center

Elasticsearch:API overview

Last Updated:Sep 21, 2026

This page lists the commonly used APIs of Elasticsearch Agent Engine Edition. Request parameters, response fields, and limits are documented on the operation pages linked from this page. The APIs and examples are based on Agent Engine Edition 9.99.0, and this page is not a complete list of Elasticsearch APIs.

Find APIs by operation

For an introduction to Agent Engine Edition capabilities and complete getting-started steps, see Feature overview.

Operation

References

Create, update, and delete Collections; manage Slices, Backings, and Aliases

Manage Collections and Slices

Read and write documents, process data in batches, and run queries

Document write, read, and query operations

Configure vector fields and run KNN queries

Vector fields and KNN

Warm up Slice caches and query warm-up tasks

Warm up Slice caches

Copy Slice data and manage Copy Slice tasks

Copy Slice

Create and use writable Branch Slices

Branch Slice (Beta)

Configure vector clusters and automatically select candidate Slices

Vector-cluster recall mode

View the running status of Collections, Backings, and Slices

CAT observation

Two more entry points sit outside the table. For instance monitoring and permission configuration, see Instance Operations. For quantity limits and feature boundaries, see Limits of Agent Engine Edition.

Select a request target

Access a regular index by its index name. When you use a Collection, access data through the Collection name or a Collection Alias, and provide _slice in the request URL where the API requires it. For instance endpoints, networks, and authentication, see Create and connect to an Agent Engine Edition instance.

Agent Engine Edition responses also expose system-managed names and identifiers. Distinguish them from the business names that your application supplies:

Response information

Meaning and usage

The _index field in write, read, or query responses; the registration response field backing_index

May be a .sc-* underlying index name. Use it only for troubleshooting. Applications must still access data through the Collection name or Alias.

The returned _routing value

May be a system-assigned internal Slice identifier (slice_uid), which differs from the business Slice name. Do not parse it or use it as the value of _slice or routing in subsequent requests. Continue to use the Slice name that your application originally supplied.

The Slice management response fields slice and slice_id

The business Slice name, such as tenant-a. It differs from the internal slice_uid.

The Branch response field target_uid

The internal identity of the destination Slice, used to verify the result of repeated creation requests. To access the destination, continue to use the target_slice name.

If you delete a Slice and then register a Slice with the same name, the internal identity of the newly registered Slice may differ from that of the deleted Slice. Applications must not derive business names from internal identifiers or treat the new Slice as a continuation of the lifecycle of the deleted Slice.

Evaluate requests and results

  • Request content type — Use Content-Type: application/json for JSON requests. Use Content-Type: application/x-ndjson for Bulk and Multi Search requests, and keep the line feed at the end of the request body.

  • Item-level failures — Bulk, Multi Search, batch management, single-Slice registration, and batch Slice registration APIs may report item-level failures in an HTTP 200 response. Do not rely only on the HTTP status code. Handle non-2xx responses, and in successful responses check the top-level errors and items[].result fields.

  • HTTP 429 — The server is currently rejecting the request. Use capped exponential backoff, and retry only operations that are idempotent or whose outcome you have already confirmed.

  • Connection timeouts and HTTP 5xx — A connection timeout or an HTTP 5xx response does not mean that the write did not occur. Before you retry, verify the result by using a stable document ID or another idempotency mechanism. You can also read the document back through one of the read endpoints in the Collection and Slice API quick reference table.

  • URL length — When you pass a large number of _slice values in the URL, the request is also subject to the HTTP request line length limit (4096 bytes by default, controlled by http.max_initial_line_length). If Slice names are long, too_long_http_line_exception may occur before the Slice quantity limit is reached.

  • Management timeouts — Collection management APIs commonly use master_timeout (the time to wait for the master node to process the request; default: 30s) and timeout (the time to wait for an acknowledgment or the current result; default: 30s). If a management request returns acknowledged=false or times out, the server-side operation has not necessarily been rolled back. Query the current state of the resource before you retry.

Collection and Slice API quick reference

The following table summarizes the public APIs for Collection and Slice scenarios, grouped by purpose, and excludes internal platform maintenance APIs. Endpoints for Collections, Slices, Backings, Copy Slice, Branch Slice, and Slice warm-up are Agent Engine Edition extensions, as are the Collection, Backing, and Slice monitoring endpoints; the remaining endpoints are standard Elasticsearch APIs. In the API column, square brackets enclose an optional path segment and curly braces enclose a placeholder that you replace with your own value. Use this table to look up the endpoint for a known task, and use the operation table in Find APIs by operation to reach the detail page for that task.

Purpose

API

Create a Collection

PUT /_slice_collection/{collection}

Get a Collection

GET /_slice_collection[/{collection}]

Update a Collection

POST /_slice_collection/{collection}/_update

Delete a Collection

DELETE /_slice_collection/{collection}

Register a Slice

PUT /_slice_collection/{collection}/slices/{slice}

Register Slices in a batch

PUT /_slice_collection/{collection}/slices

Query a single Slice

GET /_slice_collection/{collection}/slices/{slice}

List Slices with pagination

GET /_slice_collection/{collection}/slices

Delete a Slice

DELETE /_slice_collection/{collection}/slices/{slice}

Pre-create Backings

PUT /_slice_collection/{collection}/backings?count={count}

Read and write a single document

/{collection}/_doc/{id}, /{collection}/_create/{id}, /{collection}/_update/{id}, /{collection}/_source/{id}. To automatically generate an ID, use POST /{collection}/_doc. To check whether a document exists, use HEAD /{collection}/_doc/{id}

Write and read in batches

POST /_bulk, POST /{collection}/_bulk, POST /{collection}/_mget

Search and count

POST /{collection}/_search, POST /{collection}/_count, POST /_msearch, POST /{collection}/_msearch

Run search templates, manage async searches, and inspect or validate queries

POST /{collection}/_search/template, POST /{collection}/_async_search, GET /_async_search/{id}, DELETE /_async_search/{id}, POST /{collection}/_validate/query, GET /{collection}/_search_shards, POST /{collection}/_explain/{id}

Update or delete by query

POST /{collection}/_update_by_query, POST /{collection}/_delete_by_query

Reindex

POST /_reindex

Update mappings

PUT /{collection}/_mapping

Update dynamic settings

PUT /{collection}/_settings

Explicit refresh

POST /{collection}/_refresh

Warm up Slice caches

POST /{collection}/_warm_slice?_slice={slice}

Query a warm-up task

GET /_tasks/{taskId}

Manage Collection Aliases

POST /_aliases, GET /_alias[/{alias}]

Start Copy Slice

POST /_slice_collection/{collection}/slices/{source}/_copy/{target}

Query Copy Slice status

GET /_slice_collection/{collection}/_copy/{copy_id}

Cancel Copy Slice

POST /_slice_collection/{collection}/_copy/{copy_id}/_cancel

Create a Branch Slice (Beta)

PUT /_slice_collection/{collection}/slices/{source}/_branch/{target}

View Collection running status

GET /_cat/slice_collection[/{name}]

View Backing running status

GET /_cat/slice_collection/{collection}/backings[/{backing}]

View Slice running status

GET /_cat/slice_collection/{collection}/slices[/{slice}]

Cluster and node monitoring

GET /_cluster/health, GET /_nodes/stats, GET /_tasks