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 Markdowns 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: Markdowns
paths:
/api/markdowns:
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/markdowns
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Returns a paginated list of markdown library items. Each result includes title, description, and metadata, but not the content. Use `GET /api/markdowns/{id}` to retrieve the complete state.'
operationId: get-markdowns
parameters:
- description: The page of results to return.
in: query
name: page
required: false
schema:
default: 1
minimum: 1
type: number
- description: The number of results to return per page.
in: query
name: per_page
required: false
schema:
default: 20
maximum: 1000
minimum: 1
type: number
- description: Filters results by `title` and `description` using Elasticsearch [`simple_query_string`](https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-simple-query-string-query) syntax. Multi-word terms require all words to match.
in: query
name: query
required: false
schema:
type: string
responses:
'200':
content:
application/json:
examples:
searchMarkdownsResponse:
description: Paginated list of markdown library item summaries. Each item includes the ID, a subset of state fields (`title` and `description`), and metadata. The full `content` is not included; use `GET /api/markdowns/{id}` to retrieve a specific item.
summary: Search markdown library items response
value:
data:
- data:
description: Intro and context for the web logs dashboard.
title: Web logs overview
id: 5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
meta:
created_at: '2026-04-13T10:00:00.000Z'
managed: false
updated_at: '2026-04-13T10:00:00.000Z'
version: WzU5LDFd
meta:
page: 1
per_page: 20
total: 1
schema:
additionalProperties: false
type: object
properties:
data:
description: List of markdown library items matching the query.
items:
additionalProperties: false
type: object
properties:
data:
additionalProperties: false
type: object
properties:
description:
description: A short description of the markdown library item.
type: string
title:
description: The markdown library item title.
type: string
required:
- title
id:
description: The markdown library item ID.
type: string
meta:
$ref: '#/components/schemas/Kibana_HTTP_APIs_kbn-as-code-meta'
required:
- id
- data
- meta
maxItems: 1000
minItems: 0
type: array
meta:
additionalProperties: false
type: object
properties:
page:
default: 1
description: The returned page of results.
minimum: 1
type: number
per_page:
default: 20
description: The number of results returned per page.
maximum: 1000
minimum: 1
type: number
total:
description: The total number of results matching the query.
type: number
required:
- total
required:
- data
- meta
description: success
'403':
description: forbidden
summary: List markdown library items
tags:
- Markdowns
x-codeSamples:
- label: Search markdown library items - cURL
lang: cURL
source: "curl -X GET \"${KIBANA_URL}/api/markdowns?query=welcome&per_page=10\" \\\n -H \"Authorization: ApiKey ${API_KEY}\"\n"
- label: Search markdown library items - Console
lang: Console
source: 'GET kbn:/api/markdowns?query=welcome&per_page=10
'
x-state: Experimental; added in 9.6.0
x-metaTags:
- content: Kibana
name: product_name
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/markdowns
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Creates a new markdown library item and returns its ID, full state, and metadata.'
operationId: post-markdowns
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:
createMarkdown:
summary: Create a markdown library item
value:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
schema:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
responses:
'201':
content:
application/json:
examples:
createMarkdownResponse:
description: Response to creating a markdown library item. Returns the generated ID, the full item state in `data`, and metadata.
summary: Create markdown library item response
value:
data:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
id: 5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
meta:
created_at: '2026-04-13T10:00:00.000Z'
managed: false
updated_at: '2026-04-13T10:00:00.000Z'
version: WzU5LDFd
schema:
additionalProperties: false
type: object
properties:
data:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
id:
description: The unique ID of the markdown library item, as returned by the create or search endpoints.
type: string
meta:
$ref: '#/components/schemas/Kibana_HTTP_APIs_kbn-as-code-meta'
required:
- id
- data
- meta
description: created
'400':
description: invalid request
'403':
description: forbidden
summary: Create a markdown library item
tags:
- Markdowns
x-codeSamples:
- label: Create a markdown library item - cURL
lang: cURL
source: "curl -X POST \"${KIBANA_URL}/api/markdowns\" \\\n -H \"Authorization: ApiKey ${API_KEY}\" \\\n -H \"kbn-xsrf: true\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"title\": \"Web logs overview\",\n \"description\": \"Intro and context for the web logs dashboard.\",\n \"content\": \"## Web logs overview\\n\\nA quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).\\n\\n**Key metrics in this dashboard:**\\n\\n- Total request count by HTTP method\\n- Average response size over time\\n- Geographic distribution of client IPs\\n\\n> Use the time picker above to narrow the dashboard to an incident window.\\n\\nFor field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).\\n\",\n \"settings\": {\n \"open_links_in_new_tab\": true\n }\n}'\n"
- label: Create a markdown library item - Console
lang: Console
source: "POST kbn:/api/markdowns\n{\n \"title\": \"Web logs overview\",\n \"description\": \"Intro and context for the web logs dashboard.\",\n \"content\": \"## Web logs overview\\n\\nA quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).\\n\\n**Key metrics in this dashboard:**\\n\\n- Total request count by HTTP method\\n- Average response size over time\\n- Geographic distribution of client IPs\\n\\n> Use the time picker above to narrow the dashboard to an incident window.\\n\\nFor field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).\\n\",\n \"settings\": {\n \"open_links_in_new_tab\": true\n }\n}\n"
x-state: Experimental; added in 9.6.0
x-metaTags:
- content: Kibana
name: product_name
/api/markdowns/{id}:
delete:
description: '**Spaces method and path for this operation:**
delete /s/{space_id}/api/markdowns/{id}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Permanently deletes a markdown library item by ID.'
operationId: delete-markdowns-id
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The markdown library item ID, as returned by the create or search endpoints.
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: No content, the markdown library item was successfully deleted.
'403':
description: forbidden
'404':
description: not found
summary: Delete a markdown library item
tags:
- Markdowns
x-codeSamples:
- label: Delete a markdown library item - cURL
lang: cURL
source: "curl -X DELETE \"${KIBANA_URL}/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e\" \\\n -H \"Authorization: ApiKey ${API_KEY}\" \\\n -H \"kbn-xsrf: true\"\n"
- label: Delete a markdown library item - Console
lang: Console
source: 'DELETE kbn:/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
'
x-state: Experimental; added in 9.6.0
x-metaTags:
- content: Kibana
name: product_name
get:
description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/markdowns/{id}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Returns the complete state of a markdown library item by ID.'
operationId: get-markdowns-id
parameters:
- description: The markdown library item ID, as returned by the create or search endpoints.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
getMarkdownResponse:
description: The full markdown library item state including `content`, `settings`, and metadata.
summary: Get markdown library item response
value:
data:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
id: 5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
meta:
created_at: '2026-04-13T10:00:00.000Z'
managed: false
updated_at: '2026-04-13T10:00:00.000Z'
version: WzU5LDFd
schema:
additionalProperties: false
type: object
properties:
data:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
id:
description: The unique ID of the markdown library item, as returned by the create or search endpoints.
type: string
meta:
$ref: '#/components/schemas/Kibana_HTTP_APIs_kbn-as-code-meta'
required:
- id
- data
- meta
description: success
'403':
description: forbidden
'404':
description: not found
summary: Get a markdown library item by ID
tags:
- Markdowns
x-codeSamples:
- label: Get a markdown library item - cURL
lang: cURL
source: "curl -X GET \"${KIBANA_URL}/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e\" \\\n -H \"Authorization: ApiKey ${API_KEY}\"\n"
- label: Get a markdown library item - Console
lang: Console
source: 'GET kbn:/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
'
x-state: Experimental; added in 9.6.0
x-metaTags:
- content: Kibana
name: product_name
put:
description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/markdowns/{id}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Replaces the full state of a markdown library item. Partial updates are not supported.
To make incremental changes, retrieve the item first, modify the fields you need, then send the complete object back.
If no item exists with the specified ID, a new one is created.
'
operationId: put-markdowns-id
parameters:
- description: A required header to protect against CSRF attacks
in: header
name: kbn-xsrf
required: true
schema:
example: 'true'
type: string
- description: The unique ID of the markdown library item to be created or updated.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
upsertMarkdown:
summary: Upsert a markdown library item
value:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
- _New:_ error rate broken down by status code
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
schema:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
responses:
'200':
content:
application/json:
examples:
updatedMarkdownResponse:
description: The complete updated markdown library item state after a full replacement. PUT replaces the entire item, so any fields omitted from the request are reset to their defaults.
summary: Update markdown library item response
value:
data:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
- _New:_ error rate broken down by status code
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
id: 5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e
meta:
created_at: '2026-04-13T10:00:00.000Z'
managed: false
updated_at: '2026-04-13T11:00:00.000Z'
version: WzYwLDFd
schema:
additionalProperties: false
type: object
properties:
data:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
id:
description: The unique ID of the markdown library item, as returned by the create or search endpoints.
type: string
meta:
$ref: '#/components/schemas/Kibana_HTTP_APIs_kbn-as-code-meta'
required:
- id
- data
- meta
description: updated
'201':
content:
application/json:
examples:
createdMarkdownResponse:
description: Returned when the upsert created a new item because no item existed with the specified ID.
summary: Create markdown library item response (via upsert)
value:
data:
content: '## Web logs overview
A quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).
**Key metrics in this dashboard:**
- Total request count by HTTP method
- Average response size over time
- Geographic distribution of client IPs
> Use the time picker above to narrow the dashboard to an incident window.
For field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).
'
description: Intro and context for the web logs dashboard.
settings:
open_links_in_new_tab: true
title: Web logs overview
id: web-logs-overview
meta:
created_at: '2026-04-13T10:00:00.000Z'
managed: false
updated_at: '2026-04-13T10:00:00.000Z'
version: WzU5LDFd
schema:
additionalProperties: false
type: object
properties:
data:
additionalProperties: false
type: object
properties:
content:
description: The Markdown text rendered by the panel. Supports GitHub-flavored Markdown, including headings, paragraphs, lists, links, images, tables, blockquotes, and code blocks. Use `\n` for line breaks within JSON strings.
type: string
description:
description: A short description of the markdown library item.
type: string
settings:
additionalProperties: false
default:
open_links_in_new_tab: true
description: Display settings for the markdown panel.
type: object
properties:
open_links_in_new_tab:
default: true
description: Open links in a new browser tab.
type: boolean
title:
description: The markdown library item title.
minLength: 1
type: string
required:
- content
- title
id:
description: The unique ID of the markdown library item, as returned by the create or search endpoints.
type: string
meta:
$ref: '#/components/schemas/Kibana_HTTP_APIs_kbn-as-code-meta'
required:
- id
- data
- meta
description: created
'400':
description: invalid request
'403':
description: forbidden
summary: Upsert a markdown library item
tags:
- Markdowns
x-codeSamples:
- label: Upsert a markdown library item - cURL
lang: cURL
source: "curl -X PUT \"${KIBANA_URL}/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e\" \\\n -H \"Authorization: ApiKey ${API_KEY}\" \\\n -H \"kbn-xsrf: true\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"title\": \"Web logs overview\",\n \"description\": \"Intro and context for the web logs dashboard.\",\n \"content\": \"## Web logs overview\\n\\nA quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).\\n\\n**Key metrics in this dashboard:**\\n\\n- Total request count by HTTP method\\n- Average response size over time\\n- Geographic distribution of client IPs\\n- _New:_ error rate broken down by status code\\n\\n> Use the time picker above to narrow the dashboard to an incident window.\\n\\nFor field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).\\n\",\n \"settings\": {\n \"open_links_in_new_tab\": true\n }\n}'\n"
- label: Upsert a markdown library item - Console
lang: Console
source: "PUT kbn:/api/markdowns/5e1f3a20-c4d6-11ef-be8b-3c7c2b9d1f4e\n{\n \"title\": \"Web logs overview\",\n \"description\": \"Intro and context for the web logs dashboard.\",\n \"content\": \"## Web logs overview\\n\\nA quick reference for the **Kibana sample web logs** dataset (`kibana_sample_data_logs`).\\n\\n**Key metrics in this dashboard:**\\n\\n- Total request count by HTTP method\\n- Average response size over time\\n- Geographic distribution of client IPs\\n- _New:_ error rate broken down by status code\\n\\n> Use the time picker above to narrow the dashboard to an incident window.\\n\\nFor field reference, see the [sample data documentation](https://www.elastic.co/docs/manage-data/ingest/sample-data).\\n\",\n \"settings\": {\n \"open_links_in_new_tab\": true\n }\n}\n"
x-state: Experimental; added in 9.6.0
x-metaTags:
- content: Kibana
name: product_name
components:
schemas:
Kibana_HTTP_APIs_kbn-as-code-meta:
additionalProperties: false
type: object
properties:
created_at:
description: Timestamp when the object was created (ISO 8601).
type: string
created_by:
description: User profile ID of the user who created the object.
type: string
managed:
description: When `true`, the object is managed by Kibana and cannot be edited by users.
type: boolean
owner:
description: Identifier of the plugin or team that owns this object.
type: string
updated_at:
description: Timestamp when the object was last updated (ISO 8601).
type: string
updated_by:
description: User profile ID of the user who last updated the object.
type: string
version:
description: Internal version identifier for optimistic concurrency control.
type: string
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"