openapi: 3.0.3
info:
contact:
name: Kibana Team
description: 'The Kibana REST APIs enable you to manage resources such as connectors, data views, and saved objects.
The 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 Kibana APIs, use the following operations:
- GET: Fetches the information.
- PATCH: Applies partial modifications to the existing information.
- POST: Adds new information.
- PUT: Updates the existing information.
- DELETE: Removes the information.
You can prepend any Kibana API endpoint with `kbn:` and run the request in **Dev Tools → Console**.
For example:
```
GET kbn:/api/data_views
```
For more information about the console, refer to [Run API requests](https://www.elastic.co/docs/explore-analyze/query-filter/tools/console).
NOTE: Access to internal Kibana API endpoints will be restricted in Kibana version 9.0. Please move any integrations to publicly documented APIs.
## Documentation source and versions
This documentation is derived from the `main` branch of the [kibana](https://github.com/elastic/kibana) repository.
It is provided under license [Attribution-NonCommercial-NoDerivatives 4.0 International](https://creativecommons.org/licenses/by-nc-nd/4.0/).
This documentation contains work-in-progress information for future Elastic Stack releases.
'
title: Kibana APIs Actions streams API
version: ''
x-doc-license:
name: Attribution-NonCommercial-NoDerivatives 4.0 International
url: https://creativecommons.org/licenses/by-nc-nd/4.0/
x-feedbackLink:
label: Feedback
url: https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+
servers:
- url: https://{kibana_url}
variables:
kibana_url:
default: localhost:5601
security:
- apiKeyAuth: []
- basicAuth: []
tags:
- name: streams
description: "Streams provide a unified data management layer for ingestion, routing, and processing. There are three stream types:\n* **Wired** streams are managed by Kibana. They route documents to child streams based on\n field conditions and support custom field mappings and processing steps.\n\n* **Classic** streams map to existing Elasticsearch data streams. You can add processing\n steps to classic streams without changing their underlying index template.\n\n* **Query** streams are virtual aggregations backed by an ES|QL expression. They aggregate\n data from multiple streams into a single logical view without duplicating documents.\n"
x-displayName: Streams
externalDocs:
description: Streams documentation
url: https://www.elastic.co/docs/solutions/observability/streams
paths:
/api/streams:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches list of all streams
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams
parameters: []
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
listStreams:
value:
streams:
- description: Root logs stream
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps: []
updated_at: '2025-01-10T08:00:00.000Z'
settings: {}
wired:
fields:
'@timestamp':
type: date
log.level:
type: keyword
message:
type: match_only_text
routing:
- destination: logs.nginx
status: enabled
where:
eq: nginx
field: host.name
name: logs
type: wired
updated_at: '2025-01-10T08:00:00.000Z'
- description: Web server access logs, routed by severity
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps: []
updated_at: '2025-01-15T10:30:00.000Z'
settings: {}
wired:
fields:
host.name:
type: keyword
http.response.status_code:
type: long
message:
type: match_only_text
routing:
- destination: logs.nginx.errors
status: enabled
where:
field: http.response.status_code
gte: 500
name: logs.nginx
type: wired
updated_at: '2025-01-15T10:30:00.000Z'
- description: Legacy application logs
ingest:
classic: {}
failure_store:
disabled: {}
lifecycle:
dsl:
data_retention: 30d
processing:
steps:
- action: grok
from: message
ignore_missing: true
patterns:
- '%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log.level} %{GREEDYDATA:message}'
updated_at: '2024-12-01T09:00:00.000Z'
settings: {}
name: logs-myapp-default
type: classic
updated_at: '2024-12-01T09:00:00.000Z'
- description: All error-level logs across every stream
name: logs.errors
query:
esql: FROM logs* | WHERE log.level == "error"
view: logs.errors-view
type: query
updated_at: '2025-01-20T14:00:00.000Z'
summary: Get stream list
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/_disable:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/_disable
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Disables wired streams and deletes all existing stream definitions. The data of wired streams is deleted, but the data of classic streams is preserved.
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-disable
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses: {}
summary: Disable streams
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/_enable:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/_enable
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Enables wired streams
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-enable
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses: {}
summary: Enable streams
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/_resync:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/_resync
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Resyncs all streams, making sure that Elasticsearch assets are up to date
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-resync
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses: {}
summary: Resync streams
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}:
delete:
description: '**Spaces method and path for this operation:**
delete /s/{space_id}/api/streams/{name}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Deletes a stream definition and the underlying data stream
[Required authorization] Route required privileges: manage_stream.'
operationId: delete-streams-name
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
description: The stream was deleted successfully.
summary: Delete a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{name}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches a stream definition and associated dashboards
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-name
parameters:
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
getWiredStream:
value:
dashboards: []
data_stream_exists: true
effective_failure_store:
disabled: {}
from: logs
effective_lifecycle:
dsl:
data_retention: 7d
from: logs
effective_settings: {}
inherited_fields:
'@timestamp':
from: logs
type: date
log.level:
from: logs
type: keyword
privileges:
create_snapshot_repository: false
lifecycle: true
manage: true
manage_failure_store: true
monitor: true
read_failure_store: true
simulate: true
text_structure: true
view_index_metadata: true
queries: []
rules: []
stream:
description: Web server access logs, routed by severity
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps: []
updated_at: '2025-01-15T10:30:00.000Z'
settings: {}
wired:
fields:
host.name:
type: keyword
http.response.status_code:
type: long
message:
type: match_only_text
routing:
- destination: logs.nginx.errors
status: enabled
where:
field: http.response.status_code
gte: 500
name: logs.nginx
type: wired
updated_at: '2025-01-15T10:30:00.000Z'
description: Stream definition and associated metadata.
summary: Get a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/streams/{name}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Creates or updates a stream definition. Classic streams can not be created through this API, only updated
[Required authorization] Route required privileges: manage_stream.'
operationId: put-streams-name
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
createQueryStream:
value:
dashboards: []
queries: []
rules: []
stream:
description: All error-level logs across every stream
query:
esql: FROM logs* | WHERE log.level == "error"
view: logs.errors-view
type: query
createWiredStream:
value:
dashboards: []
queries: []
rules: []
stream:
description: Web server access logs, routed by severity
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps: []
settings: {}
wired:
fields:
host.name:
type: keyword
http.response.status_code:
type: long
message:
type: match_only_text
routing:
- destination: logs.nginx.errors
status: enabled
where:
field: http.response.status_code
gte: 500
type: wired
updateClassicStream:
value:
dashboards: []
queries: []
rules: []
stream:
description: Legacy application logs managed as a classic data stream
ingest:
classic: {}
failure_store:
disabled: {}
lifecycle:
dsl:
data_retention: 30d
processing:
steps:
- action: grok
from: message
ignore_missing: true
patterns:
- '%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log.level} %{GREEDYDATA:message}'
settings: {}
type: classic
schema:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamUpsertRequest'
responses:
'200':
description: The stream was created or updated successfully.
summary: Create or update a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/_fork:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/_fork
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Forks a wired stream and creates a child stream
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-name-fork
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the parent stream to fork from.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
forkStream:
value:
status: enabled
stream:
name: logs.nginx.errors
where:
eq: '500'
field: http.response.status_code
schema:
additionalProperties: false
type: object
properties:
draft:
type: boolean
status:
enum:
- enabled
- disabled
type: string
stream:
additionalProperties: false
type: object
properties:
name:
type: string
required:
- name
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
required:
- stream
- where
responses:
'200':
description: The stream was forked successfully.
summary: Fork a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/_ingest:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{name}/_ingest
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches the ingest settings of an ingest stream definition
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-name-ingest
parameters:
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
getWiredIngest:
value:
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps:
- action: grok
from: message
ignore_missing: false
patterns:
- '%{IPORHOST:client.ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:@timestamp}\] "%{WORD:http.method} %{DATA:url.original} HTTP/%{NUMBER:http.version}" %{NUMBER:http.response.status_code:int} (?:%{NUMBER:http.response.body.bytes:int}|-)'
updated_at: '2025-01-15T10:30:00.000Z'
settings: {}
wired:
fields:
client.ip:
type: ip
http.method:
type: keyword
http.response.body.bytes:
type: long
http.response.status_code:
type: long
url.original:
type: wildcard
routing:
- destination: logs.nginx.errors
status: enabled
where:
field: http.response.status_code
gte: 500
description: Ingest settings for the stream.
summary: Get ingest stream settings
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/streams/{name}/_ingest
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Upserts the ingest settings of an ingest stream definition
[Required authorization] Route required privileges: manage_stream.'
operationId: put-streams-name-ingest
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
upsertWiredIngest:
value:
ingest:
failure_store:
inherit: {}
lifecycle:
inherit: {}
processing:
steps:
- action: grok
from: message
ignore_missing: false
patterns:
- '%{IPORHOST:client.ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:@timestamp}\] "%{WORD:http.method} %{DATA:url.original} HTTP/%{NUMBER:http.version}" %{NUMBER:http.response.status_code:int} (?:%{NUMBER:http.response.body.bytes:int}|-)'
settings: {}
wired:
fields:
client.ip:
type: ip
http.method:
type: keyword
http.response.body.bytes:
type: long
http.response.status_code:
type: long
url.original:
type: wildcard
routing:
- destination: logs.nginx.errors
status: enabled
where:
eq: '500'
field: http.response.status_code
schema:
additionalProperties: false
type: object
properties:
ingest:
anyOf:
- additionalProperties: false
type: object
properties:
failure_store:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FailureStore'
lifecycle:
$ref: '#/components/schemas/Kibana_HTTP_APIs_IngestStreamLifecycle'
processing:
additionalProperties: false
type: object
properties:
steps:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
updated_at: {}
required:
- steps
settings:
additionalProperties: false
type: object
properties:
index.number_of_replicas:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.number_of_shards:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.refresh_interval:
additionalProperties: false
type: object
properties:
value:
anyOf:
- type: string
- enum:
- -1
type: number
required:
- value
wired:
additionalProperties: false
type: object
properties:
draft:
type: boolean
fields:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FieldDefinition'
routing:
items:
type: object
properties:
destination:
description: A non-empty string.
minLength: 1
type: string
draft:
type: boolean
status:
enum:
- enabled
- disabled
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
required:
- destination
- where
type: array
required:
- fields
- routing
required:
- lifecycle
- processing
- settings
- failure_store
- wired
- additionalProperties: false
type: object
properties:
classic:
additionalProperties: false
type: object
properties:
field_overrides:
$ref: '#/components/schemas/Kibana_HTTP_APIs_ClassicFieldDefinition'
failure_store:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FailureStore'
lifecycle:
$ref: '#/components/schemas/Kibana_HTTP_APIs_IngestStreamLifecycle'
processing:
additionalProperties: false
type: object
properties:
steps:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
updated_at: {}
required:
- steps
settings:
additionalProperties: false
type: object
properties:
index.number_of_replicas:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.number_of_shards:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.refresh_interval:
additionalProperties: false
type: object
properties:
value:
anyOf:
- type: string
- enum:
- -1
type: number
required:
- value
required:
- lifecycle
- processing
- settings
- failure_store
- classic
required:
- ingest
responses:
'200':
description: The ingest settings were updated successfully.
summary: Update ingest stream settings
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/_query:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{name}/_query
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches the query settings of a query stream definition
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-name-query
parameters:
- description: The name of the query stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
description: Query settings for the stream.
summary: Get query stream settings
tags:
- streams
x-state: Technical Preview; added in 9.4.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/streams/{name}/_query
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Upserts the query settings of a query stream definition
[Required authorization] Route required privileges: manage_stream.'
operationId: put-streams-name-query
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the query stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
upsertQueryStream:
value:
query:
esql: FROM logs* | WHERE log.level == "error" | KEEP @timestamp, message, host.name, log.level
schema:
additionalProperties: false
type: object
properties:
field_descriptions:
additionalProperties:
type: string
type: object
query:
additionalProperties: false
type: object
properties:
esql:
type: string
required:
- esql
required:
- query
responses:
'200':
description: The query stream settings were updated successfully.
summary: Upsert query stream settings
tags:
- streams
x-state: Technical Preview; added in 9.4.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/content/export:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/content/export
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Exports the content associated to a stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-name-content-export
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream to export content from.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
exportContent:
value:
description: Nginx stream content pack
include:
objects:
all: {}
name: nginx-pack
version: 1.0.0
schema:
additionalProperties: false
type: object
properties:
description:
type: string
include:
$ref: '#/components/schemas/Kibana_HTTP_APIs_ContentPackIncludedObjects'
name:
type: string
version:
type: string
required:
- name
- description
- version
- include
responses:
'200':
description: Content pack archive for the stream.
summary: Export stream content
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/content/import:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/content/import
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Links content objects to a stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-name-content-import
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream to import content into.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
examples:
importContent:
value:
content:
include: '{"objects":{"all":{}}}'
schema:
additionalProperties: false
type: object
properties:
content: {}
include:
type: string
required:
- include
- content
responses:
'200':
description: Content was imported into the stream successfully.
summary: Import content into a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/queries:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{name}/queries
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches all queries linked to a stream that are visible to the current user in the current space.
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-name-queries
parameters:
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
listQueries:
value:
queries:
- description: Count error-level log events grouped by host name
esql:
query: FROM logs.nginx | WHERE log.level == "error" | STATS count = COUNT(*) BY host.name
id: error-count-by-host
severity_score: 75
title: Error count by host
type: match
- description: Requests with response time above 2 seconds
esql:
query: FROM logs.nginx | WHERE http.response_time > 2000
id: high-latency-requests
severity_score: 50
title: High latency requests
type: match
description: List of queries linked to the stream.
summary: Get stream queries
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/queries/_bulk:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/queries/_bulk
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Bulk update queries of a stream. Can add new queries and delete existing ones.
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-name-queries-bulk
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
bulkQueries:
value:
operations:
- index:
description: Count error-level log events grouped by host name
esql:
query: FROM logs* | WHERE log.level == "error" | STATS count = COUNT(*) BY host.name
id: error-count-by-host
title: Error count by host
- delete:
id: old-query-id
schema:
additionalProperties: false
type: object
properties:
operations:
items:
anyOf:
- type: object
properties:
index:
type: object
properties:
description:
default: ''
type: string
esql:
type: object
properties:
query:
type: string
required:
- query
evidence:
items:
type: string
type: array
id:
description: A non-empty string.
minLength: 1
type: string
severity_score:
type: number
title:
description: A non-empty string.
minLength: 1
type: string
required:
- title
- esql
- id
required:
- index
- type: object
properties:
delete:
type: object
properties:
id:
type: string
required:
- id
required:
- delete
type: array
required:
- operations
responses:
'200':
description: Bulk operation completed successfully.
summary: Bulk update queries
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/queries/{queryId}:
delete:
description: '**Spaces method and path for this operation:**
delete /s/{space_id}/api/streams/{name}/queries/{queryId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Remove a query from a stream. Noop if the query is not found on the stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: delete-streams-name-queries-queryid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
- description: The identifier of the query to remove.
in: path
name: queryId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
description: The query was removed successfully.
summary: Remove a query from a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/streams/{name}/queries/{queryId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Adds a query to a stream. Noop if the query is already present on the stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: put-streams-name-queries-queryid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
- description: The identifier of the query.
in: path
name: queryId
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
upsertQuery:
value:
description: Count error-level log events grouped by host name
esql:
query: FROM logs* | WHERE log.level == "error" | STATS count = COUNT(*) BY host.name
title: Error count by host
schema:
additionalProperties: false
type: object
properties:
description:
default: ''
type: string
esql:
additionalProperties: false
type: object
properties:
query:
type: string
required:
- query
evidence:
items:
type: string
type: array
severity_score:
type: number
title:
description: A non-empty string.
minLength: 1
type: string
required:
- title
- esql
responses:
'200':
description: The query was added or updated successfully.
summary: Upsert a query to a stream
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/significant_events:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{name}/significant_events
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Read the significant events
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-name-significant-events
parameters:
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
- in: query
name: from
required: true
schema:
type: string
- in: query
name: to
required: true
schema:
type: string
- description: The bucket size for aggregating events (e.g. "1m", "1h").
in: query
name: bucketSize
required: true
schema:
type: string
- description: Query string to filter significant events on metadata fields
in: query
name: query
required: false
schema:
type: string
- description: 'Search mode: keyword (BM25), semantic (vector), or hybrid (RRF). When omitted, defaults to hybrid with a silent keyword fallback on failure. When set explicitly, failures propagate as errors.'
in: query
name: searchMode
required: false
schema:
enum:
- keyword
- semantic
- hybrid
type: string
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
significantEvents:
value:
aggregated_occurrences:
- count: 42
date: '2025-01-15T10:00:00.000Z'
- count: 18
date: '2025-01-15T11:00:00.000Z'
- count: 7
date: '2025-01-15T12:00:00.000Z'
significant_events:
- change_points:
type:
spike:
change_point: 1
p_value: 0.002
description: Count error-level log events grouped by host name
esql:
query: FROM logs.nginx | WHERE log.level == "error" | STATS count = COUNT(*) BY host.name
id: error-count-by-host
occurrences:
- count: 42
date: '2025-01-15T10:00:00.000Z'
- count: 18
date: '2025-01-15T11:00:00.000Z'
- count: 7
date: '2025-01-15T12:00:00.000Z'
rule_backed: false
severity_score: 75
stream_name: logs.nginx
title: Error count by host
type: match
description: Significant events for the stream.
summary: Read the significant events
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/significant_events/_generate:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/significant_events/_generate
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Generate significant events queries based on the stream data
[Required authorization] Route required privileges: read_stream.'
operationId: post-streams-name-significant-events-generate
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
- description: Optional connector ID. If not provided, the default AI connector from settings will be used.
in: query
name: connectorId
required: false
schema:
type: string
- in: query
name: from
required: true
schema:
type: string
- in: query
name: to
required: true
schema:
type: string
- description: Number of sample documents to use for generation from the current data of stream
in: query
name: sampleDocsSize
required: false
schema:
type: number
requestBody:
content:
application/json:
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
description: Generated significant event query definitions.
summary: Generate significant events
tags:
- streams
x-state: Technical Preview; added in 9.2.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/significant_events/_preview:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{name}/significant_events/_preview
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Preview significant event results based on a given query
[Required authorization] Route required privileges: read_stream.'
operationId: post-streams-name-significant-events-preview
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream.
in: path
name: name
required: true
schema:
type: string
- in: query
name: from
required: true
schema:
type: string
- in: query
name: to
required: true
schema:
type: string
- description: The bucket size for aggregating events (e.g. "1m", "1h").
in: query
name: bucketSize
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
type: object
properties:
query:
additionalProperties: false
type: object
properties:
esql:
additionalProperties: false
type: object
properties:
query:
type: string
required:
- query
required:
- esql
required:
- query
responses:
'200':
description: Significant event preview results.
summary: Preview significant events
tags:
- streams
x-state: Technical Preview; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{streamName}/attachments:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/streams/{streamName}/attachments
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Fetches all attachments linked to a stream that are visible to the current user in the current space. Optionally filter by attachment types, search query, and tags.
[Required authorization] Route required privileges: read_stream.'
operationId: get-streams-streamname-attachments
parameters:
- description: The name of the stream
in: path
name: streamName
required: true
schema:
type: string
- description: Search query to filter attachments by title
in: query
name: query
required: false
schema:
type: string
- description: Filter by attachment types (single value or array)
in: query
name: attachmentTypes
required: false
schema:
items:
enum:
- dashboard
- rule
- slo
type: string
type: array
- description: Filter by tags (single value or array)
in: query
name: tags
required: false
schema:
items:
type: string
type: array
requestBody:
content:
application/json:
examples:
listAttachmentsExample:
value: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
listAttachmentsResponse:
value:
attachments:
- createdAt: '2023-02-23T16:15:47.275Z'
description: Dashboard for monitoring production services
id: dashboard-123
streamNames:
- logs.awsfirehose
- logs.nginx
tags:
- monitoring
- production
title: My Dashboard
type: dashboard
updatedAt: '2023-03-24T14:39:17.636Z'
description: Successfully retrieved attachments
summary: Get stream attachments
tags:
- streams
x-state: Technical Preview; added in 9.3.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{streamName}/attachments/_bulk:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/streams/{streamName}/attachments/_bulk
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Bulk update attachments linked to a stream. Can link new attachments and delete existing ones. Supports mixed attachment types in a single request.
[Required authorization] Route required privileges: manage_stream.'
operationId: post-streams-streamname-attachments-bulk
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream
in: path
name: streamName
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
bulkAttachmentsExample:
value:
operations:
- index:
id: dashboard-123
type: dashboard
- delete:
id: rule-456
type: rule
schema:
additionalProperties: false
type: object
properties:
operations:
items:
anyOf:
- type: object
properties:
index:
type: object
properties:
id:
type: string
type:
enum:
- dashboard
- rule
- slo
type: string
required:
- id
- type
required:
- index
- type: object
properties:
delete:
type: object
properties:
id:
type: string
type:
enum:
- dashboard
- rule
- slo
type: string
required:
- id
- type
required:
- delete
type: array
required:
- operations
responses:
'200':
content:
application/json:
examples:
bulkAttachmentsResponse:
value:
acknowledged: true
description: Successfully performed bulk operations
summary: Bulk update attachments
tags:
- streams
x-state: Technical Preview; added in 9.3.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{streamName}/attachments/{attachmentType}/{attachmentId}:
delete:
description: '**Spaces method and path for this operation:**
delete /s/{space_id}/api/streams/{streamName}/attachments/{attachmentType}/{attachmentId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Unlinks an attachment from a stream. Noop if the attachment is not linked to the stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: delete-streams-streamname-attachments-attachmenttype-attachmentid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream
in: path
name: streamName
required: true
schema:
type: string
- description: The type of the attachment
in: path
name: attachmentType
required: true
schema:
enum:
- dashboard
- rule
- slo
type: string
- description: The ID of the attachment
in: path
name: attachmentId
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
unlinkAttachmentExample:
value: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
unlinkAttachmentResponse:
value:
acknowledged: true
description: Successfully unlinked attachment
summary: Unlink an attachment from a stream
tags:
- streams
x-state: Technical Preview; added in 9.3.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/streams/{streamName}/attachments/{attachmentType}/{attachmentId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Links an attachment to a stream. Noop if the attachment is already linked to the stream.
[Required authorization] Route required privileges: manage_stream.'
operationId: put-streams-streamname-attachments-attachmenttype-attachmentid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The name of the stream
in: path
name: streamName
required: true
schema:
type: string
- description: The type of the attachment
in: path
name: attachmentType
required: true
schema:
enum:
- dashboard
- rule
- slo
type: string
- description: The ID of the attachment
in: path
name: attachmentId
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
linkAttachmentExample:
value: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- nullable: true
- {}
responses:
'200':
content:
application/json:
examples:
linkAttachmentResponse:
value:
acknowledged: true
description: Successfully linked attachment
summary: Link an attachment to a stream
tags:
- streams
x-state: Technical Preview; added in 9.3.0
x-metaTags:
- content: Kibana
name: product_name
components:
schemas:
Kibana_HTTP_APIs_FailureStore:
anyOf:
- additionalProperties: false
type: object
properties:
inherit:
additionalProperties: false
type: object
properties: {}
required:
- inherit
- additionalProperties: false
type: object
properties:
disabled:
additionalProperties: false
type: object
properties: {}
required:
- disabled
- additionalProperties: false
type: object
properties:
lifecycle:
additionalProperties: false
type: object
properties:
enabled:
additionalProperties: false
type: object
properties:
data_retention:
description: A non-empty string.
minLength: 1
type: string
required:
- enabled
required:
- lifecycle
- additionalProperties: false
type: object
properties:
lifecycle:
additionalProperties: false
type: object
properties:
disabled:
additionalProperties: false
type: object
properties: {}
required:
- disabled
required:
- lifecycle
Kibana_HTTP_APIs_ClassicStreamUpsertRequest:
additionalProperties: false
type: object
properties:
dashboards:
items:
type: string
type: array
queries:
items:
type: object
properties:
description:
type: string
esql:
type: object
properties:
query:
type: string
required:
- query
evidence:
items:
type: string
type: array
id:
description: A non-empty string.
minLength: 1
type: string
severity_score:
type: number
title:
description: A non-empty string.
minLength: 1
type: string
type:
default: match
enum:
- match
- stats
type: string
required:
- id
- title
- description
- esql
type: array
rules:
items:
type: string
type: array
stream:
additionalProperties: false
type: object
properties:
description:
type: string
ingest:
additionalProperties: false
type: object
properties:
classic:
additionalProperties: false
type: object
properties:
field_overrides:
$ref: '#/components/schemas/Kibana_HTTP_APIs_ClassicFieldDefinition'
failure_store:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FailureStore'
lifecycle:
$ref: '#/components/schemas/Kibana_HTTP_APIs_IngestStreamLifecycle'
processing:
additionalProperties: false
type: object
properties:
steps:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
updated_at: {}
required:
- steps
settings:
additionalProperties: false
type: object
properties:
index.number_of_replicas:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.number_of_shards:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.refresh_interval:
additionalProperties: false
type: object
properties:
value:
anyOf:
- type: string
- enum:
- -1
type: number
required:
- value
required:
- lifecycle
- processing
- settings
- failure_store
- classic
query_streams:
items:
type: object
properties:
name:
type: string
required:
- name
type: array
type:
enum:
- classic
type: string
required:
- description
- ingest
- type
required:
- dashboards
- rules
- queries
- stream
Kibana_HTTP_APIs_StreamUpsertRequest:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_WiredStreamUpsertRequest'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_ClassicStreamUpsertRequest'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_QueryStreamUpsertRequest'
Kibana_HTTP_APIs_StreamlangConditionBlock:
additionalProperties: false
type: object
properties:
condition:
$ref: '#/components/schemas/Kibana_HTTP_APIs_ConditionWithSteps'
customIdentifier:
type: string
required:
- condition
Kibana_HTTP_APIs_StreamlangStep:
anyOf:
- anyOf:
- additionalProperties: false
description: Grok processor - Extract fields from text using grok patterns
type: object
properties:
action:
enum:
- grok
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Source field to parse with grok patterns
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
pattern_definitions:
additionalProperties:
type: string
type: object
patterns:
description: Grok patterns applied in order to extract fields
items:
description: A non-empty string.
minLength: 1
type: string
minItems: 1
type: array
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- patterns
- additionalProperties: false
description: Dissect processor - Extract fields from text using a lightweight, delimiter-based parser
type: object
properties:
action:
enum:
- dissect
type: string
append_separator:
description: Separator inserted when target fields are concatenated
minLength: 1
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Source field to parse with dissect pattern
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
pattern:
description: Dissect pattern describing field boundaries
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- pattern
- additionalProperties: false
description: Date processor - Parse dates from strings using one or more expected formats
type: object
properties:
action:
enum:
- date
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
formats:
description: Accepted input date formats, tried in order
items:
description: A non-empty string.
minLength: 1
type: string
type: array
from:
description: Source field containing the date/time text
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
locale:
description: Optional locale for date parsing
minLength: 1
type: string
output_format:
description: Optional output format for storing the parsed date as text
minLength: 1
type: string
timezone:
description: Optional timezone for date parsing
minLength: 1
type: string
to:
description: Target field for the parsed date (defaults to source)
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- formats
- additionalProperties: false
type: object
properties:
action:
enum:
- drop_document
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- additionalProperties: false
type: object
properties:
action:
enum:
- math
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
expression:
description: A non-empty string.
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- expression
- to
- additionalProperties: false
description: Rename processor - Change a field name and optionally its location
type: object
properties:
action:
enum:
- rename
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Existing source field to rename or move
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip when source field is missing
type: boolean
override:
description: Allow overwriting the target field if it already exists
type: boolean
to:
description: New field name or destination path
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- to
- additionalProperties: false
description: Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)
type: object
properties:
action:
enum:
- set
type: string
copy_from:
description: Copy value from another field instead of providing a literal
minLength: 1
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
override:
description: Allow overwriting an existing target field
type: boolean
to:
description: Target field to set or create
minLength: 1
type: string
value:
description: Literal value to assign to the target field
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- to
- additionalProperties: false
description: Append processor - Append one or more values to an existing or new array field
type: object
properties:
action:
enum:
- append
type: string
allow_duplicates:
description: If true, do not deduplicate appended values
type: boolean
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
to:
description: Array field to append values to
minLength: 1
type: string
value:
description: Values to append (must be literal, no templates)
items: {}
minItems: 1
type: array
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- to
- value
- additionalProperties: false
description: Remove by prefix processor - Remove a field and all nested fields matching the prefix
type: object
properties:
action:
enum:
- remove_by_prefix
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Field to remove along with all its nested fields
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
required:
- action
- from
- additionalProperties: false
description: Remove processor - Delete one or more fields from the document
type: object
properties:
action:
enum:
- remove
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Field to remove from the document
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- additionalProperties: false
type: object
properties:
action:
enum:
- replace
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
pattern:
minLength: 1
type: string
replacement:
type: string
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- pattern
- replacement
- additionalProperties: false
description: Redact processor - Mask sensitive data using Grok patterns
type: object
properties:
action:
enum:
- redact
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Source field to redact sensitive data from
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing (defaults to true)
type: boolean
pattern_definitions:
additionalProperties:
type: string
description: Custom pattern definitions to use in the patterns
type: object
patterns:
description: Grok patterns to match sensitive data (for example, "%{IP:client}", "%{EMAILADDRESS:email}")
items:
description: A non-empty string.
minLength: 1
type: string
minItems: 1
type: array
prefix:
description: Prefix to prepend to the redacted pattern name (defaults to "<")
type: string
suffix:
description: Suffix to append to the redacted pattern name (defaults to ">")
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- patterns
- additionalProperties: false
type: object
properties:
action:
enum:
- uppercase
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- additionalProperties: false
type: object
properties:
action:
enum:
- lowercase
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- additionalProperties: false
type: object
properties:
action:
enum:
- trim
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- additionalProperties: false
type: object
properties:
action:
enum:
- join
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
delimiter:
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
items:
minLength: 1
type: string
minItems: 1
type: array
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- delimiter
- to
- additionalProperties: false
description: Split processor - Split a field value into an array using a separator
type: object
properties:
action:
enum:
- split
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Source field to split into an array
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
preserve_trailing:
description: Preserve empty trailing fields in the split result
type: boolean
separator:
description: Regex separator used to split the field value into an array
minLength: 1
type: string
to:
description: Target field for the split array (defaults to source)
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- separator
- additionalProperties: false
type: object
properties:
action:
enum:
- sort
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Array field to sort
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
order:
description: Sort order - "asc" (ascending) or "desc" (descending). Defaults to "asc"
enum:
- asc
- desc
type: string
to:
description: Target field for the sorted array (defaults to source)
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- additionalProperties: false
description: Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)
type: object
properties:
action:
enum:
- convert
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
description: Source field to convert to a different data type
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
to:
description: Target field for the converted value (defaults to source)
minLength: 1
type: string
type:
description: 'Target data type: integer, long, double, boolean, or string'
enum:
- integer
- long
- double
- boolean
- string
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- type
- additionalProperties: false
type: object
properties:
action:
enum:
- concat
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
from:
items:
anyOf:
- type: object
properties:
type:
enum:
- field
type: string
value:
minLength: 1
type: string
required:
- type
- value
- type: object
properties:
type:
enum:
- literal
type: string
value:
type: string
required:
- type
- value
minItems: 1
type: array
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- from
- to
- allOf:
- additionalProperties: false
type: object
properties:
action:
enum:
- network_direction
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
destination_ip:
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
source_ip:
minLength: 1
type: string
target_field:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- source_ip
- destination_ip
- anyOf:
- additionalProperties: false
type: object
properties:
internal_networks:
items:
type: string
type: array
required:
- internal_networks
- additionalProperties: false
type: object
properties:
internal_networks_field:
minLength: 1
type: string
required:
- internal_networks_field
- additionalProperties: false
description: JsonExtract processor - Extract values from JSON strings using JSONPath-like selectors
type: object
properties:
action:
enum:
- json_extract
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
extractions:
description: List of extraction specifications
items:
description: A single extraction specification
type: object
properties:
selector:
description: JSONPath-like selector to extract value (e.g., "user.id", "$.metadata.client.ip", "items[0].name")
minLength: 1
type: string
target_field:
description: Target field to store the extracted value
minLength: 1
type: string
type:
description: Data type for the extracted value. Defaults to "keyword". Ensures consistent types across transpilers.
enum:
- keyword
- integer
- long
- double
- boolean
type: string
required:
- selector
- target_field
minItems: 1
type: array
field:
description: Source field containing the JSON string to parse
minLength: 1
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
description: Skip processing when source field is missing
type: boolean
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- field
- extractions
- additionalProperties: false
type: object
properties:
action:
enum:
- enrich
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
ignore_missing:
type: boolean
override:
type: boolean
policy_name:
description: A non-empty string.
minLength: 1
type: string
to:
minLength: 1
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- policy_name
- to
- additionalProperties: false
description: Manual ingest pipeline wrapper around native Elasticsearch processors
type: object
properties:
action:
description: Manual ingest pipeline - executes raw Elasticsearch ingest processors
enum:
- manual_ingest_pipeline
type: string
customIdentifier:
description: Custom identifier to correlate this processor across outputs
minLength: 1
type: string
description:
description: Human-readable notes about this processor step
type: string
ignore_failure:
description: Continue pipeline execution if this processor fails
type: boolean
on_failure:
description: Fallback processors to run when a processor fails
items:
additionalProperties: {}
type: object
type: array
processors:
description: List of raw Elasticsearch ingest processors to run
items:
additionalProperties: {}
type: object
type: array
tag:
description: Optional ingest processor tag for Elasticsearch
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: Conditional expression controlling whether this processor runs
required:
- action
- processors
- $ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangConditionBlock'
Kibana_HTTP_APIs_ClassicFieldDefinition:
additionalProperties:
$ref: '#/components/schemas/Kibana_HTTP_APIs_ClassicFieldDefinitionConfig'
type: object
Kibana_HTTP_APIs_FilterCondition:
anyOf:
- additionalProperties: false
description: A condition that compares a field to a value or range using an operator as the key.
type: object
properties:
contains:
anyOf:
- type: string
- type: number
- type: boolean
description: Contains comparison value.
endsWith:
anyOf:
- type: string
- type: number
- type: boolean
description: Ends-with comparison value.
eq:
anyOf:
- type: string
- type: number
- type: boolean
description: Equality comparison value.
field:
description: The document field to filter on.
minLength: 1
type: string
gt:
anyOf:
- type: string
- type: number
- type: boolean
description: Greater-than comparison value.
gte:
anyOf:
- type: string
- type: number
- type: boolean
description: Greater-than-or-equal comparison value.
includes:
anyOf:
- type: string
- type: number
- type: boolean
description: Checks if multivalue field includes the value.
lt:
anyOf:
- type: string
- type: number
- type: boolean
description: Less-than comparison value.
lte:
anyOf:
- type: string
- type: number
- type: boolean
description: Less-than-or-equal comparison value.
neq:
anyOf:
- type: string
- type: number
- type: boolean
description: Inequality comparison value.
range:
additionalProperties: false
description: Range comparison values.
type: object
properties:
gt:
anyOf:
- type: string
- type: number
- type: boolean
description: A value that can be a string, number, or boolean.
gte:
anyOf:
- type: string
- type: number
- type: boolean
description: A value that can be a string, number, or boolean.
lt:
anyOf:
- type: string
- type: number
- type: boolean
description: A value that can be a string, number, or boolean.
lte:
anyOf:
- type: string
- type: number
- type: boolean
description: A value that can be a string, number, or boolean.
startsWith:
anyOf:
- type: string
- type: number
- type: boolean
description: Starts-with comparison value.
required:
- field
- additionalProperties: false
description: A condition that checks for the existence or non-existence of a field.
type: object
properties:
exists:
description: Indicates whether the field exists or not.
type: boolean
field:
description: The document field to check.
minLength: 1
type: string
required:
- field
description: A basic filter condition, either unary or binary.
Kibana_HTTP_APIs_FieldDefinition:
additionalProperties:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FieldDefinitionConfig'
type: object
Kibana_HTTP_APIs_FieldDefinitionConfig:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_RecursiveRecord'
- anyOf:
- additionalProperties: false
type: object
properties:
description:
type: string
format:
description: A non-empty string.
minLength: 1
type: string
type:
enum:
- keyword
- match_only_text
- long
- double
- date
- boolean
- ip
- geo_point
- integer
- short
- byte
- float
- half_float
- text
- wildcard
- version
- unsigned_long
- date_nanos
type: string
required:
- type
- additionalProperties: false
type: object
properties:
description:
type: string
format:
not: {}
type:
not: {}
required:
- description
- additionalProperties: false
type: object
properties:
description:
type: string
type:
enum:
- system
type: string
required:
- type
Kibana_HTTP_APIs_ConditionWithSteps:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
- additionalProperties: false
type: object
properties:
else:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
steps:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
required:
- steps
Kibana_HTTP_APIs_WiredStreamUpsertRequest:
additionalProperties: false
type: object
properties:
dashboards:
items:
type: string
type: array
queries:
items:
type: object
properties:
description:
type: string
esql:
type: object
properties:
query:
type: string
required:
- query
evidence:
items:
type: string
type: array
id:
description: A non-empty string.
minLength: 1
type: string
severity_score:
type: number
title:
description: A non-empty string.
minLength: 1
type: string
type:
default: match
enum:
- match
- stats
type: string
required:
- id
- title
- description
- esql
type: array
rules:
items:
type: string
type: array
stream:
additionalProperties: false
type: object
properties:
description:
type: string
ingest:
additionalProperties: false
type: object
properties:
failure_store:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FailureStore'
lifecycle:
$ref: '#/components/schemas/Kibana_HTTP_APIs_IngestStreamLifecycle'
processing:
additionalProperties: false
type: object
properties:
steps:
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_StreamlangStep'
type: array
updated_at: {}
required:
- steps
settings:
additionalProperties: false
type: object
properties:
index.number_of_replicas:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.number_of_shards:
additionalProperties: false
type: object
properties:
value:
type: number
required:
- value
index.refresh_interval:
additionalProperties: false
type: object
properties:
value:
anyOf:
- type: string
- enum:
- -1
type: number
required:
- value
wired:
additionalProperties: false
type: object
properties:
draft:
type: boolean
fields:
$ref: '#/components/schemas/Kibana_HTTP_APIs_FieldDefinition'
routing:
items:
type: object
properties:
destination:
description: A non-empty string.
minLength: 1
type: string
draft:
type: boolean
status:
enum:
- enabled
- disabled
type: string
where:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
required:
- destination
- where
type: array
required:
- fields
- routing
required:
- lifecycle
- processing
- settings
- failure_store
- wired
query_streams:
items:
type: object
properties:
name:
type: string
required:
- name
type: array
type:
enum:
- wired
type: string
required:
- description
- ingest
- type
required:
- dashboards
- rules
- queries
- stream
Kibana_HTTP_APIs_ClassicFieldDefinitionConfig:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_RecursiveRecord'
- anyOf:
- additionalProperties: false
type: object
properties:
description:
type: string
format:
description: A non-empty string.
minLength: 1
type: string
type:
enum:
- keyword
- match_only_text
- long
- double
- date
- boolean
- ip
- geo_point
- integer
- short
- byte
- float
- half_float
- text
- wildcard
- version
- unsigned_long
- date_nanos
type: string
required:
- type
- additionalProperties: false
type: object
properties:
description:
type: string
type:
enum:
- system
type: string
required:
- type
Kibana_HTTP_APIs_Condition:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_FilterCondition'
- additionalProperties: false
description: A logical AND that groups multiple conditions.
type: object
properties:
and:
description: An array of conditions. All sub-conditions must be true for this condition to be true.
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
type: array
required:
- and
- additionalProperties: false
description: A logical OR that groups multiple conditions.
type: object
properties:
or:
description: An array of conditions. At least one sub-condition must be true for this condition to be true.
items:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
type: array
required:
- or
- additionalProperties: false
description: A logical NOT that negates a condition.
type: object
properties:
not:
$ref: '#/components/schemas/Kibana_HTTP_APIs_Condition'
description: A condition that negates another condition.
required:
- not
- additionalProperties: false
description: A condition that always evaluates to false.
type: object
properties:
never:
additionalProperties: false
description: An empty object. This condition never matches.
type: object
properties: {}
required:
- never
- additionalProperties: false
description: A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.
type: object
properties:
always:
additionalProperties: false
description: An empty object. This condition always matches.
type: object
properties: {}
required:
- always
description: The root condition object. It can be a simple filter or a combination of other conditions.
Kibana_HTTP_APIs_RecursiveRecord:
additionalProperties:
anyOf:
- anyOf:
- type: string
- type: number
- type: boolean
- nullable: true
- {}
- items:
anyOf:
- type: string
- type: number
- type: boolean
- nullable: true
- {}
type: array
- items: {}
type: array
- $ref: '#/components/schemas/Kibana_HTTP_APIs_RecursiveRecord'
type: object
Kibana_HTTP_APIs_IngestStreamLifecycle:
anyOf:
- additionalProperties: false
type: object
properties:
dsl:
additionalProperties: false
type: object
properties:
data_retention:
description: A non-empty string.
minLength: 1
type: string
downsample:
items:
type: object
properties:
after:
description: A non-empty string.
minLength: 1
type: string
fixed_interval:
description: A non-empty string.
minLength: 1
type: string
required:
- after
- fixed_interval
type: array
required:
- dsl
- additionalProperties: false
type: object
properties:
ilm:
additionalProperties: false
type: object
properties:
policy:
description: A non-empty string.
minLength: 1
type: string
required:
- policy
required:
- ilm
- additionalProperties: false
type: object
properties:
inherit:
additionalProperties: false
type: object
properties: {}
required:
- inherit
Kibana_HTTP_APIs_QueryStreamUpsertRequest:
additionalProperties: false
type: object
properties:
dashboards:
items:
type: string
type: array
queries:
items:
type: object
properties:
description:
type: string
esql:
type: object
properties:
query:
type: string
required:
- query
evidence:
items:
type: string
type: array
id:
description: A non-empty string.
minLength: 1
type: string
severity_score:
type: number
title:
description: A non-empty string.
minLength: 1
type: string
type:
default: match
enum:
- match
- stats
type: string
required:
- id
- title
- description
- esql
type: array
rules:
items:
type: string
type: array
stream:
additionalProperties: false
type: object
properties:
description:
type: string
field_descriptions:
additionalProperties:
type: string
type: object
query:
additionalProperties: false
type: object
properties:
esql:
type: string
view:
type: string
required:
- view
- esql
query_streams:
items:
type: object
properties:
name:
type: string
required:
- name
type: array
type:
enum:
- query
type: string
required:
- description
- type
- query
required:
- dashboards
- rules
- queries
- stream
Kibana_HTTP_APIs_ContentPackIncludedObjects:
anyOf:
- additionalProperties: false
type: object
properties:
objects:
additionalProperties: false
type: object
properties:
all:
additionalProperties: false
type: object
properties: {}
required:
- all
required:
- objects
- additionalProperties: false
type: object
properties:
objects:
additionalProperties: false
type: object
properties:
mappings:
type: boolean
queries:
items:
type: object
properties:
id:
type: string
required:
- id
type: array
routing:
items:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_ContentPackIncludedObjects'
- type: object
properties:
destination:
type: string
required:
- destination
type: array
required:
- mappings
- queries
- routing
required:
- objects
securitySchemes:
apiKeyAuth:
description: 'These APIs use key-based authentication. You must create an API key and use the encoded value in the request header. For example: `Authorization: ApiKey base64AccessApiKey`
'
in: header
name: Authorization
type: apiKey
basicAuth:
scheme: basic
type: http
x-topics:
- title: Kibana spaces
content: "Spaces enable you to organize your dashboards and other saved objects into meaningful categories.\nYou can use the default space or create your own spaces.\n\nTo run APIs in non-default spaces, you must add `s/{space_id}/` to the path.\nFor example:\n\n```bash\ncurl -X GET \"http://${KIBANA_URL}/s/marketing/api/data_views\" \\\n -H \"Authorization: ApiKey ${API_KEY}\"\n```\n\nIf you use the Kibana console to send API requests, it automatically adds the appropriate space identifier.\n\nTo learn more, check out [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces).\n"