Kibana synthetics API
Synthetics APIs enable you to check the status of your services and applications.
Synthetics APIs enable you to check the status of your services and applications.
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 synthetics 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: synthetics
x-displayName: Synthetics
description: Synthetics APIs enable you to check the status of your services and applications.
externalDocs:
description: Synthetic monitoring
url: https://www.elastic.co/docs/solutions/observability/synthetics
paths:
/api/synthetics/monitor/test/{monitorId}:
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/synthetics/monitor/test/{monitorId}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Trigger an immediate test execution for the specified monitor. The response includes the generated `testRunId`. If the test encounters issues in one or more service locations, an `errors` array is also returned with details about the failures.
'
operationId: post-synthetics-monitor-test
parameters:
- description: The ID (config_id) of the monitor to test.
in: path
name: monitorId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
testNowMonitorResponseExample1:
value: "{\n \"testRunId\": \"2bd506e5-4f9a-4aa6-a019-7988500afba0\",\n \"errors\": [\n {\n \"locationId\": \"us_central_staging\",\n \"error\": {\n \"status\": 401,\n \"reason\": \"no auth credentials provided\",\n \"failed_monitors\": null\n }\n }\n ]\n}"
schema:
type: object
properties:
errors:
description: Array of errors encountered while triggering the test, one per service location.
items:
type: object
properties:
error:
type: object
properties:
failed_monitors:
description: Optional list of monitors that failed at the location.
items:
type: object
nullable: true
type: array
reason:
description: Human-readable explanation of the failure.
type: string
status:
description: HTTP status code returned by the agent.
type: integer
required:
- status
- reason
- failed_monitors
locationId:
description: Identifier of the service location where the error occurred.
type: string
required:
- locationId
- error
type: array
testRunId:
description: Unique identifier for the triggered test run.
type: string
required:
- testRunId
description: Test run triggered successfully.
'404':
description: Monitor not found.
summary: Trigger an on-demand test run for a monitor
tags:
- synthetics
x-state: Generally available; added in 9.2.0
x-metaTags:
- content: Kibana
name: product_name
/api/synthetics/monitors:
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/synthetics/monitors</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Get a list of monitors.
You must have `read` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
'
operationId: get-synthetic-monitors
parameters:
- description: Additional filtering criteria.
in: query
name: filter
schema:
type: string
- description: The locations to filter by.
in: query
name: locations
schema:
oneOf:
- type: string
- type: array
- description: The monitor types to filter.
in: query
name: monitorTypes
schema:
oneOf:
- enum:
- browser
- http
- icmp
- tcp
type: string
- type: array
- description: The page number for paginated results.
in: query
name: page
schema:
type: integer
- description: The number of items to return per page.
in: query
name: per_page
schema:
type: integer
- description: The projects to filter by.
in: query
name: projects
schema:
oneOf:
- type: string
- type: array
- description: A free-text query string.
in: query
name: query
schema:
type: string
- description: The schedules to filter by.
in: query
name: schedules
schema:
oneOf:
- type: array
- type: string
- description: The field to sort the results by.
in: query
name: sortField
schema:
enum:
- name
- createdAt
- updatedAt
- status
type: string
- description: The sort order.
in: query
name: sortOrder
schema:
enum:
- asc
- desc
type: string
- description: The status to filter by.
in: query
name: status
schema:
oneOf:
- type: array
- type: string
- description: Tags to filter monitors.
in: query
name: tags
schema:
oneOf:
- type: string
- type: array
- description: 'Specifies whether to apply logical AND filtering for specific fields. Accepts either a string with values "tags" or "locations" or an array containing both.
'
in: query
name: useLogicalAndFor
schema:
oneOf:
- enum:
- tags
- locations
type: string
- items:
enum:
- tags
- locations
type: string
type: array
responses:
'200':
content:
application/json:
examples:
getSyntheticMonitorsResponseExample1:
description: A successful response from `GET /api/synthetics/monitors?tags=prod&monitorTypes=http&locations=us-east-1&projects=project1&status=up`.
value: "{\n \"page\": 1,\n \"total\": 24,\n \"monitors\": [\n {\n \"type\": \"icmp\",\n \"enabled\": false,\n \"alert\": {\n \"status\": {\n \"enabled\": true\n },\n \"tls\": {\n \"enabled\": true\n }\n },\n \"schedule\": {\n \"number\": \"3\",\n \"unit\": \"m\"\n },\n \"config_id\": \"e59142e5-1fe3-4aae-b0b0-19d6345e65a1\",\n \"timeout\": \"16\",\n \"name\": \"8.8.8.8:80\",\n \"locations\": [\n {\n \"id\": \"us_central\",\n \"label\": \"North America - US Central\",\n \"geo\": {\n \"lat\": 41.25,\n \"lon\": -95.86\n },\n \"isServiceManaged\": true\n }\n ],\n \"namespace\": \"default\",\n \"origin\": \"ui\",\n \"id\": \"e59142e5-1fe3-4aae-b0b0-19d6345e65a1\",\n \"max_attempts\": 2,\n \"wait\": \"7\",\n \"revision\": 3,\n \"mode\": \"all\",\n \"ipv4\": true,\n \"ipv6\": true,\n \"created_at\": \"2023-11-07T09:57:04.152Z\",\n \"updated_at\": \"2023-12-04T19:19:34.039Z\",\n \"host\": \"8.8.8.8:80\"\n }\n ],\n \"absoluteTotal\": 24,\n \"perPage\": 10,\n}"
schema:
type: object
description: A successful response.
summary: Get monitors
tags:
- synthetics
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/synthetics/monitors</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Create a new monitor with the specified attributes. A monitor can be one of the following types: HTTP, TCP, ICMP, or Browser. The required and default fields may vary based on the monitor type.
You must have `all` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
'
operationId: post-synthetic-monitors
requestBody:
content:
application/json:
examples:
postSyntheticMonitorsRequestExample1:
description: Create an HTTP monitor to check a website's availability.
summary: HTTP monitor
value: "{\n \"type\": \"http\",\n \"name\": \"Website Availability\",\n \"url\": \"https://example.com\",\n \"tags\": [\"website\", \"availability\"],\n \"locations\": [\"united_kingdom\"]\n}"
postSyntheticMonitorsRequestExample2:
description: Create a TCP monitor to monitor a server's availability.
summary: TCP monitor
value: "{\n \"type\": \"tcp\",\n \"name\": \"Server Availability\",\n \"host\": \"example.com\",\n \"private_locations\": [\"my_private_location\"]\n}"
postSyntheticMonitorsRequestExample3:
description: Create an ICMP monitor to perform ping checks.
summary: ICMP monitor
value: "{\n \"type\": \"icmp\",\n \"name\": \"Ping Test\",\n \"host\": \"example.com\",\n \"locations\": [\"united_kingdom\"]\n}"
postSyntheticMonitorsRequestExample4:
description: Create a browser monitor to check a website.
summary: Browser monitor
value: "{\n \"type\": \"browser\",\n \"name\": \"Example journey\",\n \"inline_script\": \"step('Go to https://google.com.co', () => page.goto('https://www.google.com'))\",\n \"locations\": [\"united_kingdom\"]\n}"
schema:
description: 'The request body should contain the attributes of the monitor you want to create. The required and default fields differ depending on the monitor type.
'
discriminator:
propertyName: type
oneOf:
- $ref: '#/components/schemas/Synthetics_browserMonitorFields'
- $ref: '#/components/schemas/Synthetics_httpMonitorFields'
- $ref: '#/components/schemas/Synthetics_icmpMonitorFields'
- $ref: '#/components/schemas/Synthetics_tcpMonitorFields'
required: true
responses:
'200':
content:
application/json:
examples:
postSyntheticMonitorsResponseWithWarning:
description: A response when a browser monitor specifies a timeout but has no private locations.
summary: Response with warning
value: "{\n \"type\": \"browser\",\n \"name\": \"Example journey\",\n \"enabled\": true,\n \"warnings\": [\n {\n \"id\": \"monitor-id\",\n \"message\": \"For browser monitors, timeout is only supported on private locations. Browser monitor \\\"Example journey\\\" specifies a timeout and is running on public locations: \\\"public-1, public-2\\\". The timeout will have no effect on these locations.\",\n \"publicLocationIds\": [\"public-1\", \"public-2\"]\n }\n ]\n}"
schema:
type: object
properties:
warnings:
description: 'An optional array of warnings about the monitor configuration.
'
items:
$ref: '#/components/schemas/Synthetics_monitorWarning'
type: array
description: 'A successful response. The response may include a `warnings` array when the monitor configuration has non-critical issues. For example, if a browser monitor specifies a timeout but has no private locations configured, a warning is returned indicating the timeout will have no effect.
'
'400':
content:
application/json:
examples:
invalidBrowserTimeout:
description: A 400 error when a browser monitor timeout is below 30 seconds.
summary: Invalid browser timeout
value: "{\n \"statusCode\": 400,\n \"error\": \"Bad Request\",\n \"message\": \"Browser Monitor timeout is invalid\",\n \"attributes\": {\n \"details\": \"Invalid timeout 20 seconds supplied. Minimum timeout for browser monitors is 30 seconds.\"\n }\n}"
schema:
type: object
properties:
attributes:
type: object
properties:
details:
example: Invalid timeout 20 seconds supplied. Minimum timeout for browser monitors is 30 seconds.
type: string
error:
example: Bad Request
type: string
message:
example: Browser Monitor timeout is invalid
type: string
statusCode:
example: 400
type: integer
description: 'Bad request. For browser monitors, a 400 error is returned if the timeout is less than 30 seconds.
'
summary: Create a monitor
tags:
- synthetics
x-metaTags:
- content: Kibana
name: product_name
/api/synthetics/monitors/_bulk_delete:
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/synthetics/monitors/_bulk_delete</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Delete multiple monitors by sending a list of config IDs.
'
operationId: delete-synthetic-monitors
requestBody:
content:
application/json:
examples:
bulkDeleteRequestExample1:
description: Run `POST /api/synthetics/monitors/_bulk_delete` to delete a list of monitors.
value: "{\n \"ids\": [\n \"monitor1-id\",\n \"monitor2-id\"\n ]\n}"
schema:
type: object
properties:
ids:
description: An array of monitor IDs to delete.
items:
type: string
type: array
required:
- ids
required: true
responses:
'200':
content:
application/json:
examples:
deleteMonitorsResponseExample1:
description: A response from successfully deleting multiple monitors.
value: "[\n {\n \"id\": \"monitor1-id\",\n \"deleted\": true\n },\n {\n \"id\": \"monitor2-id\",\n \"deleted\": true\n }\n]"
schema:
items:
description: The API response includes information about the deleted monitors.
type: object
properties:
deleted:
description: 'If it is `true`, the monitor was successfully deleted If it is `false`, the monitor was not deleted.
'
type: boolean
ids:
description: The unique identifier of the deleted monitor.
type: string
type: array
description: A successful response.
summary: Delete monitors
tags:
- synthetics
x-metaTags:
- content: Kibana
name: product_name
/api/synthetics/monitors/{id}:
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/synthetics/monitors/{id}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Delete a monitor from the Synthetics app.
You must have `all` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
'
operationId: delete-synthetic-monitor
parameters:
- description: The identifier for the monitor that you want to delete.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: OK
summary: Delete a monitor
tags:
- synthetics
x-metaTags:
- content: Kibana
name: product_name
get:
operationId: get-synthetic-monitor
parameters:
- description: The ID of the monitor.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
getSyntheticMonitorResponseExample1:
description: A successful response from `GET /api/synthetics/monitors/<id>`.
value: "{\n \"type\": \"http\",\n \"enabled\": true,\n \"alert\": {\n \"status\": {\n \"enabled\": true\n },\n \"tls\": {\n \"enabled\": true\n }\n },\n \"schedule\": {\n \"number\": \"3\",\n \"unit\": \"m\"\n },\n \"config_id\": \"a8188705-d01e-4bb6-87a1-64fa5e4b07ec\",\n \"timeout\": \"16\",\n \"name\": \"am i something\",\n \"locations\": [\n {\n \"id\": \"us_central\",\n \"label\": \"North America - US Central\",\n \"geo\": {\n \"lat\": 41.25,\n \"lon\": -95.86\n },\n \"isServiceManaged\": true\n }\n ],\n \"namespace\": \"default\",\n \"origin\": \"ui\",\n \"id\": \"a8188705-d01e-4bb6-87a1-64fa5e4b07ec\",\n \"max_attempts\": 2,\n \"__ui\": {\n \"is_tls_enabled\": false\n },\n \"max_redirects\": \"0\",\n \"response.include_body\": \"on_error\",\n \"response.include_headers\": true,\n \"check.request.method\": \"GET\",\n \"mode\": \"any\",\n \"response.include_body_max_bytes\": \"1024\",\n \"ipv4\": true,\n \"ipv6\": true,\n \"ssl.verification_mode\": \"full\",\n \"ssl.supported_protocols\": [\n \"TLSv1.1\",\n \"TLSv1.2\",\n \"TLSv1.3\"\n ],\n \"revision\": 13,\n \"created_at\": \"2023-11-08T08:45:29.334Z\",\n \"updated_at\": \"2023-12-18T20:31:44.770Z\",\n \"url\": \"https://fast.com\"\n}"
schema:
type: object
description: A successful response.
'404':
description: If the monitor is not found, the API returns a 404 error.
summary: Get a monitor
tags:
- synthetics
x-metaTags:
- content: Kibana
name: product_name
description: '**Spaces method and path for this operation:**
<div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/synthetics/monitors/{id}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.'
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/synthetics/monitors/{id}</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Update a monitor with the specified attributes. The required and default fields may vary based on the monitor type.
You must have `all` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
You can also partially update a monitor. This will only update the fields that are specified in the request body. All other fields are left unchanged. The specified fields should conform to the monitor type. For example, you can''t update the `inline_scipt` field of a HTTP monitor.
'
operationId: put-synthetic-monitor
parameters:
- description: The identifier for the monitor that you want to update.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
putSyntheticMonitorsRequestExample1:
description: Update an HTTP monitor that checks a website's availability.
summary: HTTP monitor
value: "{\n \"type\": \"http\",\n \"name\": \"Website Availability\",\n \"url\": \"https://example.com\",\n \"tags\": [\"website\", \"availability\"],\n \"locations\": [\"united_kingdom\"]\n}"
putSyntheticMonitorsRequestExample2:
description: Update a TCP monitor that monitors a server's availability.
summary: TCP monitor
value: "{\n \"type\": \"tcp\",\n \"name\": \"Server Availability\",\n \"host\": \"example.com\",\n \"private_locations\": [\"my_private_location\"]\n}"
putSyntheticMonitorsRequestExample3:
description: Update an ICMP monitor that performs ping checks.
summary: ICMP monitor
value: "{\n \"type\": \"icmp\",\n \"name\": \"Ping Test\",\n \"host\": \"example.com\",\n \"locations\": [\"united_kingdom\"]\n}"
putSyntheticMonitorsRequestExample4:
description: Update a browser monitor that checks a website.
summary: Browser monitor
value: "{\n \"type\": \"browser\",\n \"name\": \"Example journey\",\n \"inline_script\": \"step('Go to https://google.com.co', () => page.goto('https://www.google.com'))\",\n \"locations\": [\"united_kingdom\"]\n}"
schema:
description: 'The request body should contain the attributes of the monitor you want to update. The required and default fields differ depending on the monitor type.
'
discriminator:
propertyName: type
oneOf:
- $ref: '#/components/schemas/Synthetics_browserMonitorFields'
- $ref: '#/components/schemas/Synthetics_httpMonitorFields'
- $ref: '#/components/schemas/Synthetics_icmpMonitorFields'
- $ref: '#/components/schemas/Synthetics_tcpMonitorFields'
type: object
required: true
responses:
'200':
content:
application/json:
examples:
putSyntheticMonitorResponseWithWarning:
description: A response when a browser monitor specifies a timeout but has no private locations.
summary: Response with warning
value: "{\n \"type\": \"browser\",\n \"name\": \"Example journey\",\n \"enabled\": true,\n \"warnings\": [\n {\n \"id\": \"monitor-id\",\n \"message\": \"For browser monitors, timeout is only supported on private locations. Browser monitor \\\"Example journey\\\" specifies a timeout and is running on public locations: \\\"public-1, public-2\\\". The timeout will have no effect on these locations.\",\n \"publicLocationIds\": [\"public-1\", \"public-2\"]\n }\n ]\n}"
schema:
type: object
properties:
warnings:
description: 'An optional array of warnings about the monitor configuration.
'
items:
$ref: '#/components/schemas/Synthetics_monitorWarning'
type: array
description: 'A successful response. The response may include a `warnings` array when the monitor configuration has non-critical issues.
'
'400':
description: 'Bad request. For browser monitors, a 400 error is returned if the timeout is less than 30 seconds.
'
summary: Update a monitor
tags:
- synthetics
x-metaTags:
- content: Kibana
name: product_name
/api/synthetics/params:
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/synthetics/params</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Get a list of all parameters. You must have `read` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
'
operationId: get-parameters
responses:
'200':
content:
application/json:
examples:
getParametersResponseExample1:
description: A successful response for a user with read-only permissions to get a list of parameters.
summary: Read access
value: "[\n {\n \"id\": \"param1-id\",\n \"key\": \"param1\",\n \"description\": \"Description for param1\",\n \"tags\": [\"tag1\", \"tag2\"],\n \"namespaces\": [\"namespace1\"]\n },\n {\n \"id\": \"param2-id\",\n \"key\": \"param2\",\n \"description\": \"Description for param2\",\n \"tags\": [\"tag3\"],\n \"namespaces\": [\"namespace2\"]\n }\n]"
getParametersResponseExample2:
description: A successful response for a user with write permissions to get a list of parameters.
summary: Write access
value: "[\n {\n \"id\": \"param1-id\",\n \"key\": \"param1\",\n \"description\": \"Description for param1\",\n \"tags\": [\"tag1\", \"tag2\"],\n \"namespaces\": [\"namespace1\"],\n \"value\": \"value1\"\n },\n {\n \"id\": \"param2-id\",\n \"key\": \"param2\",\n \"description\": \"Description for param2\",\n \"tags\": [\"tag3\"],\n \"namespaces\": [\"namespace2\"],\n \"value\": \"value2\"\n }\n]"
schema:
items:
$ref: '#/components/schemas/Synthetics_getParameterResponse'
type: array
description: A successful response.
summary: Get parameters
tags:
- synthetics
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/synthetics/params</span></div>
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Add one or more parameters to the Synthetics app.
You must have `all` privileges for the Synthetics feature in the Observability section of the Kibana feature privileges.
'
operationId: post-parameters
requestBody:
content:
application/json:
examples:
postParametersRequestExample1:
description: Add a single parameter.
summary: Single parameter
value: "{\n \"key\": \"your-key-name\",\n \"value\": \"your-parameter-value\",\n \"description\": \"Param to use in browser monitor\",\n \"tags\": [\"authentication\", \"security\"],\n \"share_across_spaces\": true\n}"
postParametersRequestExample2:
description: Add multiple parameters.
summary: Multiple parameters
value: "[\n {\n \"key\": \"param1\",\n \"value\": \"value1\"\n },\n {\n \"key\": \"param2\",\n \"value\": \"value2\"\n }\n]"
schema:
oneOf:
- items:
$ref: '#/components/schemas/Synthetics_parameterRequest'
type: array
- $ref: '#/components/schemas/Synthetics_parameterRequest'
description: The request body can contain either a single parameter object or an array of parameter objects.
required: true
responses:
'200':
content:
application/json:
examples:
postParametersResponseExample1:
description: A successful response for a single added parameter.
summary: Single parameter
value: "{\n \"id\": \"unique-parameter-id\",\n \"key\": \"your-key-name\",\n \"value\": \"your-param-value\",\n \"description\": \"Param to use in browser monitor\",\n \"tags\": [\"authentication\", \"security\"],\n \"share_across_spaces\": true\n}"
postParametersResponseExample2:
description: A successful response for multiple added parameters.
summary: Multiple parameters
value: "[\n {\n \"id\": \"param1-id\",\n \"key\": \"par
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kibana/refs/heads/main/openapi/kibana-synthetics-api-openapi.yml