Elastic Stack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Elk Stack Search API
56 actions
56 updates
phrasing
extends
openapi/elk-stack-search-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Elastic Stack's API. It is a proposal applied on top of the contract, not a document Elastic Stack publishes.
What the actions change
x-apievangelist-phrasing
Targets 56 · first 16 shown; the file carries all of them
$.info
$.paths['/_async_search/{id}'].get
$.paths['/_async_search/{id}'].delete
$.paths['/_async_search/status/{id}'].get
$.paths['/_async_search'].post
$.paths['/{index}/_async_search'].post
$.paths['/_search/scroll'].get
$.paths['/_search/scroll'].post
$.paths['/_search/scroll'].delete
$.paths['/_search/scroll/{scroll_id}'].get
$.paths['/_search/scroll/{scroll_id}'].post
$.paths['/_search/scroll/{scroll_id}'].delete
$.paths['/_pit'].delete
$.paths['/_count'].get
$.paths['/_count'].post
$.paths['/{index}/_count'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Elk Stack Search API
version: 1.0.0
extends: openapi/elk-stack-search-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 55
- target: $.paths['/_async_search/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get the results of an async search
effect: read
questions:
- How do I retrieve the hits from an async search I submitted earlier?
- Can I wait a few seconds for an async search to finish before its results come back?
instructions:
- text: Get the results of async search {id}.
slots:
id: path.id
- text: Fetch async search {id} results, waiting up to {wait_for_completion_timeout} for completion.
slots:
id: path.id
wait_for_completion_timeout: query.wait_for_completion_timeout
method: generated
generated: '2026-09-26'
- target: $.paths['/_async_search/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Cancel or delete an async search
effect: destructive
questions:
- How do I cancel an async search that is still running?
- Can I delete the saved results of a finished async search?
instructions:
- text: Delete async search {id}.
slots:
id: path.id
- text: Cancel the running asynchronous search {id} and discard its stored results.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_async_search/status/{id}'].get
update:
x-apievangelist-phrasing:
intent: Check an async search's status
effect: read
questions:
- Is my async search still running, without pulling back its hits?
- What is the completion status of a submitted asynchronous search?
instructions:
- text: Check the status of async search {id}.
slots:
id: path.id
- text: Tell me if asynchronous search {id} has completed, without returning results.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_async_search'].post
update:
x-apievangelist-phrasing:
intent: Start an async search across all indices
effect: read
questions:
- How do I run a long search in the background across the whole cluster?
- Can an async search keep its results after it completes?
instructions:
- text: Submit an async search across all indices for {q}.
slots:
q: query.q
- text: Start a background cluster-wide search with query {query} and keep results for {keep_alive}.
slots:
query: requestBody.query
keep_alive: query.keep_alive
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_async_search'].post
update:
x-apievangelist-phrasing:
intent: Start an async search on specific indices
effect: read
questions:
- How do I launch an asynchronous search limited to one index or data stream?
- Can I get partial results from a background search on a single index while it runs?
instructions:
- text: Submit an async search on index {index} for {q}.
slots:
index: path.index
q: query.q
- text: Run query {query} asynchronously against {index} only.
slots:
query: requestBody.query
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll'].get
update:
x-apievangelist-phrasing:
intent: Get the next scroll batch via GET
effect: read
questions:
- How do I fetch the next page of a scrolling search using a GET request?
- Is the scroll API still recommended for paging past 10,000 hits?
instructions:
- text: Get the next scroll page for scroll ID {scroll_id} with a GET.
slots:
scroll_id: requestBody.scroll_id
- text: Continue scrolling {scroll_id} via GET and keep the context alive for {scroll}.
slots:
scroll_id: requestBody.scroll_id
scroll: requestBody.scroll
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll'].post
update:
x-apievangelist-phrasing:
intent: Get the next scroll batch via POST
effect: read
questions:
- Can I POST a scroll ID in the body to retrieve the next batch of hits?
- What body fields does the POST scroll request take?
instructions:
- text: POST scroll_id {scroll_id} to pull the next batch of results.
slots:
scroll_id: requestBody.scroll_id
- text: Advance my scrolling search {scroll_id} with a POST body, extending it by {scroll}.
slots:
scroll_id: requestBody.scroll_id
scroll: requestBody.scroll
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll'].delete
update:
x-apievangelist-phrasing:
intent: Clear scroll contexts named in the body
effect: destructive
questions:
- How do I free the resources held by open scroll contexts?
- Can I clear several scrolling searches by listing their IDs in the body?
instructions:
- text: Clear the scroll contexts {scroll_id}.
slots:
scroll_id: requestBody.scroll_id
- text: Release all the scrolling search contexts listed in the request body.
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll/{scroll_id}'].get
update:
x-apievangelist-phrasing:
intent: Get the next scroll batch by ID in the path (GET)
effect: read
questions:
- Can I put the scroll ID in the URL path of a GET to keep paging?
- What does the GET scroll endpoint with an ID in the path return?
instructions:
- text: GET /_search/scroll/{path_scroll_id} to fetch the next page, body scroll_id {scroll_id}.
slots:
path_scroll_id: path.scroll_id
scroll_id: requestBody.scroll_id
- text: Page forward through scroll {path_scroll_id} using the path-ID GET variant.
slots:
path_scroll_id: path.scroll_id
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll/{scroll_id}'].post
update:
x-apievangelist-phrasing:
intent: Get the next scroll batch by ID in the path (POST)
effect: read
questions:
- Is there a POST scroll endpoint that takes the scroll ID in the path?
- Can I POST to a scroll URL that includes the ID to get more hits?
instructions:
- text: POST to /_search/scroll/{path_scroll_id} for the next hits, with body scroll_id {scroll_id}.
slots:
path_scroll_id: path.scroll_id
scroll_id: requestBody.scroll_id
- text: Retrieve more scroll results for {path_scroll_id} through the path-ID POST form.
slots:
path_scroll_id: path.scroll_id
method: generated
generated: '2026-09-26'
- target: $.paths['/_search/scroll/{scroll_id}'].delete
update:
x-apievangelist-phrasing:
intent: Clear a scroll context by ID in the path
effect: destructive
questions:
- Can I clear one scroll by putting its ID in the URL?
- How do I delete a specific scroll search context by path?
instructions:
- text: Clear scroll {scroll_id} via its path.
slots:
scroll_id: path.scroll_id
- text: Free the search context for scroll ID {scroll_id} given in the URL.
slots:
scroll_id: path.scroll_id
method: generated
generated: '2026-09-26'
- target: $.paths['/_pit'].delete
update:
x-apievangelist-phrasing:
intent: Close a point in time
effect: destructive
questions:
- How do I close a point in time before its keep_alive expires?
- Why should I close PITs as soon as I finish searching with them?
instructions:
- text: Close point in time {id}.
slots:
id: requestBody.id
- text: Release the PIT {id} now that pagination is done.
slots:
id: requestBody.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_count'].get
update:
x-apievangelist-phrasing:
intent: Count matching documents in all indices (GET)
effect: read
questions:
- How many documents across the cluster match a simple query string?
- Can I count every document in all indices with a quick GET?
instructions:
- text: Count documents across all indices matching {q}.
slots:
q: query.q
- text: Give me the total document count for the whole cluster using GET.
method: generated
generated: '2026-09-26'
- target: $.paths['/_count'].post
update:
x-apievangelist-phrasing:
intent: Count matching documents in all indices (POST)
effect: read
questions:
- Can I count cluster-wide matches by POSTing Query DSL in the body?
- What does the count API return when I post no query at all?
instructions:
- text: POST query {query} to count hits in every index.
slots:
query: requestBody.query
- text: Tally all-index matches for this Query DSL body {query}, stopping after {terminate_after} per shard.
slots:
query: requestBody.query
terminate_after: query.terminate_after
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_count'].get
update:
x-apievangelist-phrasing:
intent: Count matching documents in an index (GET)
effect: read
questions:
- How many documents are in one specific index?
- Can I count hits in a data stream with a q parameter on a GET?
instructions:
- text: Count the documents in index {index}.
slots:
index: path.index
- text: Using GET, count how many docs in {index} match {q}.
slots:
index: path.index
q: query.q
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_count'].post
update:
x-apievangelist-phrasing:
intent: Count matching documents in an index (POST)
effect: read
questions:
- Can I POST a Query DSL body to count matches inside one index?
- How do I count documents in a data stream using a request body query?
instructions:
- text: POST query {query} to count matching docs in {index}.
slots:
query: requestBody.query
index: path.index
- text: Tally hits in index {index} for body query {query} with min score {min_score}.
slots:
index: path.index
query: requestBody.query
min_score: query.min_score
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_explain/{id}'].get
update:
x-apievangelist-phrasing:
intent: Explain a document's match with a query string
effect: read
questions:
- Why does a particular document match my query string, and how was it scored?
- Can I see a score explanation for one document using a GET request?
instructions:
- text: Explain why document {id} in {index} matches {q}.
slots:
id: path.id
index: path.index
q: query.q
- text: Show the relevance score breakdown of doc {id} from index {index} via GET.
slots:
id: path.id
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_explain/{id}'].post
update:
x-apievangelist-phrasing:
intent: Explain a document's match with a Query DSL body
effect: read
questions:
- Why doesn't a certain document match the Query DSL I POST?
- Can I post a full query body to get a scoring explanation for one doc?
instructions:
- text: POST query {query} to explain the match for document {id} in {index}.
slots:
query: requestBody.query
id: path.id
index: path.index
- text: Tell me how {index} doc {id} scores against this DSL body {query}.
slots:
index: path.index
id: path.id
query: requestBody.query
method: generated
generated: '2026-09-26'
- target: $.paths['/_field_caps'].get
update:
x-apievangelist-phrasing:
intent: Get field capabilities across all indices (GET)
effect: read
questions:
- Which fields are searchable and aggregatable across the entire cluster?
- Can I check a field's type in every index with a simple GET?
instructions:
- text: Get field capabilities for {fields} across all indices.
slots:
fields: query.fields
- text: Show cluster-wide capabilities of fields {fields}, including unmapped ones, via GET.
slots:
fields: query.fields
method: generated
generated: '2026-09-26'
- target: $.paths['/_field_caps'].post
update:
x-apievangelist-phrasing:
intent: Get field capabilities across all indices (POST)
effect: read
questions:
- Can I POST an index filter to narrow field capabilities cluster-wide?
- How do I include runtime mappings when checking field capabilities in every index?
instructions:
- text: POST a field caps request for {fields} over all indices filtered by {index_filter}.
slots:
fields: requestBody.fields
index_filter: requestBody.index_filter
- text: Check capabilities of body fields {fields} everywhere, adding runtime mappings {runtime_mappings}.
slots:
fields: requestBody.fields
runtime_mappings: requestBody.runtime_mappings
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_field_caps'].get
update:
x-apievangelist-phrasing:
intent: Get field capabilities for an index (GET)
effect: read
questions:
- What types do fields have in one particular index?
- Can I see whether a field is aggregatable in a single data stream using GET?
instructions:
- text: Get field capabilities for {fields} in index {index}.
slots:
fields: query.fields
index: path.index
- text: Via GET, list which fields in {index} are searchable and aggregatable.
slots:
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_field_caps'].post
update:
x-apievangelist-phrasing:
intent: Get field capabilities for an index (POST)
effect: read
questions:
- Can I POST an index filter when checking field types in one index?
- How do I check field capabilities for a single index with a request body?
instructions:
- text: POST a field caps request for body fields {fields} on {index}.
slots:
fields: requestBody.fields
index: path.index
- text: Check {index} field capabilities with index filter {index_filter} in the body.
slots:
index: path.index
index_filter: requestBody.index_filter
method: generated
generated: '2026-09-26'
- target: $.paths['/_msearch'].get
update:
x-apievangelist-phrasing:
intent: Run several searches in one GET request
effect: read
questions:
- How do I send multiple searches in a single NDJSON request?
- Can I cap how many searches run concurrently in a multi-search GET?
instructions:
- text: Run a multi-search GET across all indices.
- text: Execute these batched searches with GET, at most {max_concurrent_searches} at a time.
slots:
max_concurrent_searches: query.max_concurrent_searches
method: generated
generated: '2026-09-26'
- target: $.paths['/_msearch'].post
update:
x-apievangelist-phrasing:
intent: Run several searches in one POST request
effect: read
questions:
- Can I POST header and body pairs to run many searches at once?
- What format does the multi-search POST body use?
instructions:
- text: POST a multi-search NDJSON body over the whole cluster.
- text: Send a batch of searches by POST, defaulting to indices {index}.
slots:
index: query.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_msearch'].get
update:
x-apievangelist-phrasing:
intent: Run several searches on an index (GET)
effect: read
questions:
- Can I run multiple searches that default to one index with a GET?
- How do I batch searches scoped to a specific data stream using GET?
instructions:
- text: Run a multi-search GET against index {index}.
slots:
index: path.index
- text: Using GET, execute my batched queries on {index} with {max_concurrent_searches} running concurrently.
slots:
index: path.index
max_concurrent_searches: query.max_concurrent_searches
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_msearch'].post
update:
x-apievangelist-phrasing:
intent: Run several searches on an index (POST)
effect: read
questions:
- Can I POST an NDJSON batch of searches that target one index by default?
- How do I run many queries against a single index in one POST?
instructions:
- text: POST a multi-search body to index {index}.
slots:
index: path.index
- text: Batch-run searches on {index} via POST and return typed aggregation keys.
slots:
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/_msearch/template'].get
update:
x-apievangelist-phrasing:
intent: Run several templated searches (GET)
effect: read
questions:
- How do I run multiple stored search templates in one GET request?
- Can I batch templated searches cluster-wide with a GET?
instructions:
- text: Run a multi search template GET over all indices.
- text: Execute several templated searches by GET with search type {search_type}.
slots:
search_type: query.search_type
method: generated
generated: '2026-09-26'
- target: $.paths['/_msearch/template'].post
update:
x-apievangelist-phrasing:
intent: Run several templated searches (POST)
effect: read
questions:
- Can I POST a newline-delimited file of template searches with curl?
- Why should I use --data-binary when posting multiple templated searches?
instructions:
- text: POST a multi search template NDJSON body across the cluster.
- text: Send my batch of templated queries by POST, limited to {max_concurrent_searches} concurrent.
slots:
max_concurrent_searches: query.max_concurrent_searches
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_msearch/template'].get
update:
x-apievangelist-phrasing:
intent: Run several templated searches on an index (GET)
effect: read
questions:
- Can I run multiple search templates that default to one index using GET?
- How do I batch template-based searches on a single data stream with a GET?
instructions:
- text: Run a multi search template GET on index {index}.
slots:
index: path.index
- text: Using GET, execute several stored templates against {index}.
slots:
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_msearch/template'].post
update:
x-apievangelist-phrasing:
intent: Run several templated searches on an index (POST)
effect: read
questions:
- Can I POST a batch of template searches scoped to one index?
- How do I send multiple templated queries for a single index in one POST?
instructions:
- text: POST an NDJSON list of stored template calls against {index}.
slots:
index: path.index
- text: Batch my templated searches on {index} by POST with search type {search_type}.
slots:
index: path.index
search_type: query.search_type
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_pit'].post
update:
x-apievangelist-phrasing:
intent: Open a point in time on an index
effect: write
questions:
- How do I get a consistent snapshot of an index to paginate with search_after?
- How long does a point in time stay open?
instructions:
- text: Open a point in time on {index} kept alive for {keep_alive}.
slots:
index: path.index
keep_alive: query.keep_alive
- text: Create a PIT over {index} for {keep_alive}, filtered by {index_filter}.
slots:
index: path.index
keep_alive: query.keep_alive
index_filter: requestBody.index_filter
method: generated
generated: '2026-09-26'
- target: $.paths['/_rank_eval'].get
update:
x-apievangelist-phrasing:
intent: Evaluate search ranking quality (GET)
effect: read
questions:
- How do I measure the quality of my search rankings against typical queries?
- Can I score ranking relevance cluster-wide with a GET request?
instructions:
- text: Evaluate ranking quality for rated requests {requests} across all indices.
slots:
requests: requestBody.requests
- text: Using GET, score these rated queries {requests} with metric {metric}.
slots:
requests: requestBody.requests
metric: requestBody.metric
method: generated
generated: '2026-09-26'
- target: $.paths['/_rank_eval'].post
update:
x-apievangelist-phrasing:
intent: Evaluate search ranking quality (POST)
effect: read
questions:
- Can I POST rated search requests and a metric like precision to evaluate ranking?
- Which relevance metric does ranking evaluation compute by POST?
instructions:
- text: POST a rank evaluation of {requests} over the whole cluster.
slots:
requests: requestBody.requests
- text: Compute {metric} for my rated queries {requests} by POST.
slots:
metric: requestBody.metric
requests: requestBody.requests
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_rank_eval'].get
update:
x-apievangelist-phrasing:
intent: Evaluate ranking quality on an index (GET)
effect: read
questions:
- How well does one index rank results for my set of test queries?
- Can I evaluate relevance for a single index using GET?
instructions:
- text: Evaluate ranking of {requests} on index {index}.
slots:
requests: requestBody.requests
index: path.index
- text: Using GET, measure {metric} for rated queries {requests} against {index}.
slots:
metric: requestBody.metric
requests: requestBody.requests
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_rank_eval'].post
update:
x-apievangelist-phrasing:
intent: Evaluate ranking quality on an index (POST)
effect: read
questions:
- Can I POST rated requests to judge search quality for one index?
- How do I benchmark a single data stream's relevance with a POST?
instructions:
- text: POST a rank eval of {requests} to index {index}.
slots:
requests: requestBody.requests
index: path.index
- text: Benchmark relevance of {index} by POST using metric {metric} and rated queries {requests}.
slots:
index: path.index
metric: requestBody.metric
requests: requestBody.requests
method: generated
generated: '2026-09-26'
- target: $.paths['/_render/template'].get
update:
x-apievangelist-phrasing:
intent: Render an inline search template (GET)
effect: read
questions:
- How do I preview the query a search template produces for given params?
- Can I render an inline template source with a GET request?
instructions:
- text: Render template source {source} with params {params}.
slots:
source: requestBody.source
params: requestBody.params
- text: Using GET, show the search body that stored template {id} expands to.
slots:
id: requestBody.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_render/template'].post
update:
x-apievangelist-phrasing:
intent: Render an inline search template (POST)
effect: read
questions:
- Can I POST a Mustache template and params to see the resulting request body?
- What does a rendered search template look like before it runs?
instructions:
- text: POST template {source} with {params} and return the rendered query.
slots:
source: requestBody.source
params: requestBody.params
- text: Expand the stored template named {id} in the body by POST, filling {params}.
slots:
id: requestBody.id
params: requestBody.params
method: generated
generated: '2026-09-26'
- target: $.paths['/_render/template/{id}'].get
update:
x-apievangelist-phrasing:
intent: Render a stored search template by ID (GET)
effect: read
questions:
- How do I render a stored template by putting its ID in the URL with GET?
- Can I check what a saved search template outputs for certain params?
instructions:
- text: Render stored template {id} with params {params}.
slots:
id: path.id
params: requestBody.params
- text: Via GET, preview the query produced by saved template {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_render/template/{id}'].post
update:
x-apievangelist-phrasing:
intent: Render a stored search template by ID (POST)
effect: read
questions:
- Can I POST params to a stored template's URL to render it?
- Is there a POST form of rendering a template that takes the ID in the path?
instructions:
- text: POST params {params} to render saved template {id}.
slots:
params: requestBody.params
id: path.id
- text: Show the expanded search request for path template {id} using POST.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/_search'].get
update:
x-apievangelist-phrasing:
intent: Search all indices with a GET request
effect: read
questions:
- How do I search every index in the cluster with a simple query string?
- If I send both q and a body query, which one is used?
instructions:
- text: Search all indices for {q}.
slots:
q: query.q
- text: Run a cluster-wide GET search for {q} returning {size} hits sorted by {sort}.
slots:
q: query.q
size: query.size
sort: query.sort
method: generated
generated: '2026-09-26'
- target: $.paths['/_search'].post
update:
x-apievangelist-phrasing:
intent: Search all indices with a POST request body
effect: read
questions:
- Can I POST Query DSL with aggregations to search the whole cluster?
- Does the search API support kNN vector search in a POST body?
instructions:
- text: POST search query {query} across every index.
slots:
query: requestBody.query
- text: Run a cluster-wide body search with aggregations {aggregations} and size {size}.
slots:
aggregations: requestBody.aggregations
size: requestBody.size
- text: Do a kNN search across all indices using {knn}.
slots:
knn: requestBody.knn
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_search'].get
update:
x-apievangelist-phrasing:
intent: Search one index with a GET request
effect: read
questions:
- How do I search a single index or data stream for a keyword?
- Can I page through one index's hits with from and size on a GET?
instructions:
- text: Search index {index} for {q}.
slots:
index: path.index
q: query.q
- text: Using GET, return hits {from} to {from}+{size} from {index}.
slots:
from: query.from
size: query.size
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_search'].post
update:
x-apievangelist-phrasing:
intent: Search one index with a POST request body
effect: read
questions:
- Can I POST a Query DSL body with highlighting to search one index?
- How do I run aggregations over a single data stream in a POST search?
instructions:
- text: POST query {query} to search {index}.
slots:
query: requestBody.query
index: path.index
- text: Aggregate {index} with {aggregations} in a body search.
slots:
index: path.index
aggregations: requestBody.aggregations
- text: Search {index} using retriever {retriever} in the request body.
slots:
index: path.index
retriever: requestBody.retriever
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_mvt/{field}/{zoom}/{x}/{y}'].get
update:
x-apievangelist-phrasing:
intent: Get a geo vector tile with a GET request
effect: read
questions:
- How do I get a Mapbox vector tile of geo points for a map tile with GET?
- Can I fetch geospatial hits as a binary vector tile by zoom, x and y?
instructions:
- text: Get vector tile {zoom}/{x}/{y} of field {field} in {index}.
slots:
zoom: path.zoom
x: path.x
y: path.y
field: path.field
index: path.index
- text: Using GET, build a {grid_agg} grid tile at {zoom}/{x}/{y} for {field} from index {index}.
slots:
grid_agg: query.grid_agg
zoom: path.zoom
x: path.x
y: path.y
field: path.field
index: path.index
method: generated
generated: '2026-09-26'
- target: $.paths['/{index}/_mvt/{field}/{zoom}/{x}/{y}'].post
update:
x-apievangelist-phrasing:
intent: Get a geo vector tile with a POST body
effect: read
questions:
- Can I POST a query and aggregations to filter what goes into a vector tile?
- What request body options does the vector tile POST search accept?
instructions:
- text: POST query {query} for tile {zoom}/{x}/{y} on {field} in {index}.
slots:
query: requestBody.query
zoom: path.zoom
x: path.x
y: path.y
field: path.field
index: path.index
- text: Render map tile {zoom}/{x}/{y} of geo field {field} in {index} with body aggs {aggs}.
slots:
zoom: path.zoom
x: path.x
y: path.y
field: path.field
index: path.index
aggs: requestBody.aggs
method: generated
generated: '2026-09-26'
- target: $.paths['/_search_shards'].get
update:
x-apievangelist-phrasing:
intent: See which shards a search would hit (GET)
effect: read
questions:
- Which indices and shards would a search against the whole cluster run on?
- Can I troubleshoot routing and shard preferences with a GET?
instructions:
- text: Show the search shards across all indices.
- text: Using GET, list shards a search with routing {routing} would target.
slots:
routing: query.routing
method: generated
generated: '2026-09-26'
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elk-stack/refs/heads/main/overlays/elk-stack-search-api-phrasing-overlay.yaml