Kibana synthetics API

Synthetics APIs enable you to check the status of your services and applications.

OpenAPI Specification

kibana-synthetics-api-openapi.yml Raw ↑
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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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