Kibana Fleet outputs API
Fleet outputs APIs enable you to manage Fleet outputs, including creating, updating, and deleting output configurations, generating Logstash API keys, and monitoring output health.
Fleet outputs APIs enable you to manage Fleet outputs, including creating, updating, and deleting output configurations, generating Logstash API keys, and monitoring output health.
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 Fleet outputs 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: Fleet outputs
description: 'Fleet outputs APIs enable you to manage Fleet outputs, including creating, updating, and deleting output configurations, generating Logstash API keys, and monitoring output health.
'
x-displayName: Fleet outputs
paths:
/api/fleet/logstash_api_keys:
post:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb post">post</span> <span class="operation-path">/s/{space_id}/api/fleet/logstash_api_keys</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Generate an API key for Logstash to use with a Fleet output.<br/><br/>[Required authorization] Route required privileges: fleet-settings-all.'
operationId: post-fleet-logstash-api-keys
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
responses:
'200':
content:
application/json:
examples:
postLogstashApiKeyExample:
description: The generated Logstash API key
value:
api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA
schema:
additionalProperties: false
type: object
properties:
api_key:
type: string
required:
- api_key
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
summary: Generate a Logstash API key
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
/api/fleet/outputs:
get:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
List all Fleet outputs.<br/><br/>[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.'
operationId: get-fleet-outputs
parameters: []
responses:
'200':
content:
application/json:
examples:
getOutputsExample:
description: List of Fleet outputs
value:
items:
- hosts:
- https://elasticsearch.example.com:9200
id: output-id-1
is_default: true
is_default_monitoring: true
name: Default output
type: elasticsearch
page: 1
perPage: 20
total: 1
schema:
additionalProperties: false
type: object
properties:
items:
items:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_kafka'
maxItems: 10000
type: array
page:
type: number
perPage:
type: number
total:
type: number
required:
- items
- total
- page
- perPage
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
summary: Get outputs
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
post:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb post">post</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Create a new Fleet output.<br/><br/>[Required authorization] Route required privileges: fleet-settings-all.'
operationId: post-fleet-outputs
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:
examples:
postOutputRequestExample:
description: Create a new Elasticsearch output
value:
hosts:
- https://elasticsearch.example.com:9200
is_default: false
is_default_monitoring: false
name: My output
type: elasticsearch
schema:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_new_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_new_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_new_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_new_output_kafka'
responses:
'200':
content:
application/json:
examples:
postOutputExample:
description: The created Fleet output
value:
item:
hosts:
- https://elasticsearch.example.com:9200
id: output-id-2
is_default: false
is_default_monitoring: false
name: My output
type: elasticsearch
schema:
additionalProperties: false
type: object
properties:
item:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_kafka'
required:
- item
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
summary: Create output
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
/api/fleet/outputs/{outputId}:
delete:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb delete">delete</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs/{outputId}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Delete output by ID.<br/><br/>[Required authorization] Route required privileges: fleet-settings-all.'
operationId: delete-fleet-outputs-outputid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The ID of the output
in: path
name: outputId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
deleteOutputExample:
description: The output was successfully deleted
value:
id: output-id-1
schema:
additionalProperties: false
type: object
properties:
id:
type: string
required:
- id
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
'404':
content:
application/json:
examples:
notFoundExample:
description: No output was found with the given ID
value:
error: Not Found
message: Output output-id-1 not found
statusCode: 404
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Not Found
summary: Delete output
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
get:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs/{outputId}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Get output by ID.<br/><br/>[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.'
operationId: get-fleet-outputs-outputid
parameters:
- description: The ID of the output
in: path
name: outputId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
getOutputExample:
description: A Fleet output
value:
item:
hosts:
- https://elasticsearch.example.com:9200
id: output-id-1
is_default: true
is_default_monitoring: true
name: Default output
type: elasticsearch
schema:
additionalProperties: false
type: object
properties:
item:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_kafka'
required:
- item
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
'404':
content:
application/json:
examples:
notFoundExample:
description: No output was found with the given ID
value:
error: Not Found
message: Output output-id-1 not found
statusCode: 404
description: Not Found
summary: Get output
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb put">put</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs/{outputId}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Update output by ID.<br/><br/>[Required authorization] Route required privileges: fleet-settings-all OR fleet-agent-policies-all.'
operationId: put-fleet-outputs-outputid
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The ID of the output
in: path
name: outputId
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
putOutputRequestExample:
description: Update a Fleet output
value:
hosts:
- https://updated-elasticsearch.example.com:9200
name: Updated output
schema:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_update_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_update_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_update_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_update_output_kafka'
responses:
'200':
content:
application/json:
examples:
putOutputExample:
description: The updated Fleet output
value:
item:
hosts:
- https://updated-elasticsearch.example.com:9200
id: output-id-1
is_default: true
is_default_monitoring: true
name: Updated output
type: elasticsearch
schema:
additionalProperties: false
type: object
properties:
item:
anyOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_remote_elasticsearch'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_logstash'
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_kafka'
required:
- item
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
'404':
content:
application/json:
examples:
notFoundExample:
description: No output was found with the given ID
value:
error: Not Found
message: Output output-id-1 not found
statusCode: 404
description: Not Found
summary: Update output
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
/api/fleet/outputs/{outputId}/health:
get:
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/fleet/outputs/{outputId}/health</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Get the latest health status of an output by ID.<br/><br/>[Required authorization] Route required privileges: fleet-settings-read.'
operationId: get-fleet-outputs-outputid-health
parameters:
- description: The ID of the output
in: path
name: outputId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
getOutputHealthExample:
description: The latest health status of a Fleet output
value:
message: ''
state: HEALTHY
timestamp: '2024-01-15T10:00:00.000Z'
schema:
additionalProperties: false
type: object
properties:
message:
description: long message if unhealthy
type: string
state:
description: state of output, HEALTHY or DEGRADED
type: string
timestamp:
description: timestamp of reported state
type: string
required:
- state
- message
- timestamp
description: Successful response
'400':
content:
application/json:
examples:
genericErrorResponseExample:
description: Example of a generic error response
value:
error: Bad Request
message: An error message describing what went wrong
statusCode: 400
schema:
additionalProperties: false
description: Generic Error
type: object
properties:
attributes:
nullable: true
error:
type: string
errorType:
type: string
message:
type: string
statusCode:
type: number
required:
- message
- attributes
description: Bad Request
summary: Get the latest output health
tags:
- Fleet outputs
x-metaTags:
- content: Kibana
name: product_name
components:
schemas:
Kibana_HTTP_APIs_update_output_logstash:
additionalProperties: false
properties:
allow_edit:
items:
type: string
maxItems: 1000
type: array
ca_sha256:
nullable: true
type: string
ca_trusted_fingerprint:
nullable: true
type: string
config_yaml:
nullable: true
type: string
hosts:
items:
type: string
maxItems: 10
minItems: 1
type: array
id:
type: string
is_default:
type: boolean
is_default_monitoring:
type: boolean
is_internal:
type: boolean
is_preconfigured:
type: boolean
name:
type: string
otel_disable_beatsauth:
nullable: true
type: boolean
otel_exporter_config_yaml:
nullable: true
type: string
proxy_id:
nullable: true
type: string
secrets:
additionalProperties: false
type: object
properties:
ssl:
additionalProperties: false
type: object
properties:
key:
anyOf:
- additionalProperties: false
type: object
properties:
hash:
type: string
id:
type: string
required:
- id
- type: string
shipper:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_shipper'
nullable: true
ssl:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_ssl'
nullable: true
type:
enum:
- logstash
type: string
title: update_output_logstash
type: object
Kibana_HTTP_APIs_new_output_kafka:
additionalProperties: false
properties:
allow_edit:
items:
type: string
maxItems: 1000
type: array
auth_type:
enum:
- none
- user_pass
- ssl
- kerberos
type: string
broker_timeout:
type: number
ca_sha256:
nullable: true
type: string
ca_trusted_fingerprint:
nullable: true
type: string
client_id:
type: string
compression:
enum:
- gzip
- snappy
- lz4
- none
type: string
compression_level:
nullable: true
type: number
config_yaml:
nullable: true
type: string
connection_type:
enum:
- plaintext
- encryption
type: string
hash:
additionalProperties: false
type: object
properties:
hash:
type: string
random:
type: boolean
headers:
items:
additionalProperties: false
type: object
properties:
key:
type: string
value:
type: string
required:
- key
- value
maxItems: 100
type: array
hosts:
items:
type: string
maxItems: 10
minItems: 1
type: array
id:
type: string
is_default:
default: false
type: boolean
is_default_monitoring:
default: false
type: boolean
is_internal:
type: boolean
is_preconfigured:
type: boolean
key:
type: string
name:
type: string
otel_disable_beatsauth:
nullable: true
type: boolean
otel_exporter_config_yaml:
nullable: true
type: string
partition:
enum:
- random
- round_robin
- hash
type: string
password:
nullable: true
type: string
proxy_id:
nullable: true
type: string
random:
additionalProperties: false
type: object
properties:
group_events:
type: number
required_acks:
enum:
- 1
- 0
- -1
type: integer
round_robin:
additionalProperties: false
type: object
properties:
group_events:
type: number
sasl:
additionalProperties: false
nullable: true
type: object
properties:
mechanism:
enum:
- PLAIN
- SCRAM-SHA-256
- SCRAM-SHA-512
type: string
secrets:
additionalProperties: false
type: object
properties:
password:
anyOf:
- additionalProperties: false
type: object
properties:
hash:
type: string
id:
type: string
required:
- id
- type: string
ssl:
additionalProperties: false
type: object
properties:
key:
anyOf:
- additionalProperties: false
type: object
properties:
hash:
type: string
id:
type: string
required:
- id
- type: string
required:
- key
shipper:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_shipper'
nullable: true
ssl:
allOf:
- $ref: '#/components/schemas/Kibana_HTTP_APIs_output_ssl'
nullable: true
timeout:
type: number
topic:
type: string
type:
enum:
- kafka
type: string
username:
nullable: true
type: string
version:
type: string
required:
- name
- type
- hosts
- auth_type
title: new_output_kafka
type: object
Kibana_HTTP_APIs_new_output_logstash:
additionalProperties: false
properties:
allow_edit:
items:
type: string
maxItems: 1000
type: ar
# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kibana/refs/heads/main/openapi/kibana-fleet-outputs-api-openapi.yml