openapi: 3.2.0
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 Significant Events 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: significant_events
x-displayName: Significant Events
paths:
/api/streams/{name}/queries:
get:
deprecated: true
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:
maxLength: 255
type: string
requestBody:
content:
application/json:
examples: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- {}
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:
- significant_events
x-state: Experimental; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/queries/_bulk:
post:
deprecated: true
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:
maxLength: 255
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: ''
maxLength: 10000
type: string
esql:
type: object
properties:
query:
maxLength: 10000
type: string
required:
- query
evidence:
items:
maxLength: 10000
type: string
type: array
expires_at:
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
type: string
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:
maxLength: 255
type: string
required:
- id
required:
- delete
type: array
required:
- operations
responses:
'200':
description: Bulk operation completed successfully.
summary: Bulk update queries
tags:
- significant_events
x-state: Experimental; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/queries/{queryId}:
delete:
deprecated: true
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:
maxLength: 255
type: string
- description: The identifier of the query to remove.
in: path
name: queryId
required: true
schema:
maxLength: 255
type: string
requestBody:
content:
application/json:
examples: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- {}
responses:
'200':
description: The query was removed successfully.
summary: Remove a query from a stream
tags:
- significant_events
x-state: Experimental; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
put:
deprecated: true
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:
maxLength: 255
type: string
- description: The identifier of the query.
in: path
name: queryId
required: true
schema:
maxLength: 255
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: ''
maxLength: 10000
type: string
esql:
additionalProperties: false
type: object
properties:
query:
maxLength: 10000
type: string
required:
- query
evidence:
items:
maxLength: 10000
type: string
type: array
expires_at:
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
type: string
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:
- significant_events
x-state: Experimental; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
/api/streams/{name}/significant_events:
get:
deprecated: true
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:
maxLength: 255
type: string
- description: Start of the time range as an ISO 8601 date string.
in: query
name: from
required: true
schema:
maxLength: 255
type: string
- description: End of the time range as an ISO 8601 date string.
in: query
name: to
required: true
schema:
maxLength: 255
type: string
- description: The bucket size for aggregating events (e.g. "1m", "1h").
in: query
name: bucketSize
required: true
schema:
maxLength: 255
pattern: ^(\d+)([smhd])$
type: string
- description: Query string to filter significant events on metadata fields
in: query
name: query
required: false
schema:
maxLength: 10000
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:
examples: {}
schema:
anyOf:
- additionalProperties: false
type: object
properties: {}
- {}
responses:
'200':
content:
application/json:
examples:
queryOccurrences:
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'
queries:
- 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
rule_uuid: 9fdfcf5a-4e1d-5ee3-b05d-7bc2b014e81c
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:
- significant_events
x-state: Experimental; added in 9.1.0
x-metaTags:
- content: Kibana
name: product_name
components:
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"