Splunk Observability Cloud Synthetics API tests V2

V2 API for creating, updating, retrieving, and deleting Splunk Synthetic Monitoring API tests.

OpenAPI Specification

splunk-observability-synthetics-api-tests-v2-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Splunk Observability Cloud — Synthetics API tests V2
  version: 1.0.0
  description: 'V2 API for creating, updating, retrieving, and deleting Splunk Synthetic Monitoring API tests.

    Request bodies follow the same JSON conventions as other Synthetics test APIs in this reference. Successful GET and create
    responses include deviceId on test.

    Requirements


    You must have an organization access token with the API permission or a session token endpoint.

    You have to have the Splunk Observability Cloud admin or power role to use the POST /v2/tests/api/try_now, POST /v2/tests/api/validate,
    PUT /v2/tests/api/{id}/validate, PUT /v2/tests/api/{id}, DELETE /v2/tests/api/{id}, and POST /v2/tests/api operations.

    You have to have the Splunk Observability Cloud admin, power, or read_only role to use the GET /v2/tests/api/{id} operation.'
  x-provenance:
    method: reconstructed
    authored_by: Splunk (content) / API Evangelist (assembly)
    reconstructed_by: API Evangelist
    reconstructed_on: '2026-08-19'
    first_party: false
    provider_published: false
    note: Splunk's own OpenAPI objects, extracted from the React Server Component payload embedded in each of the 48 API reference
      pages at dev.splunk.com. The operations and schemas are Splunk's; the assembly into standalone documents is API Evangelist's.
      Splunk serves no fetchable spec file — dev.splunk.com answers 200 with an identical 6,638-byte shell for every asset
      path, including invented control paths — so this is NOT first-party publication and is not graded as such.
  x-evidence:
  - type: source
    url: https://dev.splunk.com/observability/reference/
  - type: source
    url: https://dev.splunk.com/observability/docs/apibasics/api_list/
servers:
- url: https://api.{REALM}.observability.splunkcloud.com/v2/synthetics
  description: Splunk Synthetic Monitoring API tests V2 endpoint URL
  variables:
    REALM:
      default: us0
      description: Splunk Observability Cloud realm the organization is provisioned in (for example us0, us1, eu0, jp0, au0).
security:
- SessionToken: []
components:
  securitySchemes:
    SessionToken:
      type: apiKey
      in: header
      name: X-SF-Token
      description: Splunk Observability Cloud session token or org access token.
paths:
  /v2/tests/api:
    post:
      summary: createApiTest
      description: 'Creates a new API test, based on the specifications in the request body.

        Requirements


        You must have an organization access token with the API permission or a session token endpoint.

        You have to have the Splunk Observability Cloud admin or power role.'
      parameters:
      - name: Content-Type
        in: header
        description: Format of the request body. Always  "application/json".
        required: true
        schema:
          type: string
      - name: X-SF-TOKEN
        in: header
        description: Authentication token.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                test:
                  type: object
                  properties:
                    active:
                      type: boolean
                      default: true
                      example: true
                      description: Describes if the test is active.
                    automaticRetries:
                      type: integer
                      default: 0
                      example: 1
                      description: Automatically retry if the run fails
                    deviceId:
                      type: integer
                      format: int32
                      example: 1
                      description: The unique ID of the device.
                    locationIds:
                      type: array
                      items:
                        type: string
                      example:
                      - aws-us-east-1
                      title: LocationIds
                      description: An array of location IDs where the test runs.
                    name:
                      type: string
                      example: My API test
                    frequency:
                      type: integer
                      format: int32
                      example: 5
                      title: Frequency
                      description: How often to run your test.
                    schedulingStrategy:
                      type: string
                      example: round_robin
                      title: SchedulingStrategy
                      description: 'Type of scheduling strategy. This can only be:


                        round_robin

                        concurrent'
                    requests:
                      type: array
                      items:
                        type: object
                        properties:
                          configuration:
                            type: object
                            properties:
                              name:
                                type: string
                                example: Get products
                              requestMethod:
                                type: string
                                example: GET
                                description: 'Must be one of the following:


                                  GET

                                  POST

                                  PUT

                                  PATCH

                                  DELETE

                                  HEAD

                                  OPTIONS'
                              url:
                                type: string
                                example: https://dummyjson.com/products
                              headers:
                                type: object
                                properties:
                                  Accept:
                                    type: string
                                    example: application/json
                                  x-foo:
                                    type: string
                                    example: bar
                                description: HTTP headers to add to your request.
                              body:
                                type: string
                                example: '''{"alert_name":"the service is

                                  down","url":"https://foo.com/bar"}''

                                  '
                              certificateId:
                                type: integer
                                format: int64
                                nullable: true
                                example: 1
                                description: The unique ID of the client certificate.
                              httpVersion:
                                type: string
                                nullable: true
                                enum:
                                - '1.1'
                                - '2.0'
                                example: '1.1'
                                description: 'Must be one of the following:


                                  1.1

                                  2.0'
                          setup:
                            type: array
                            items:
                              anyOf:
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: First setup step
                                    title: ApiTestSetupName
                                    description: Name of your test setup step.
                                  type:
                                    type: string
                                    example: extract_json
                                    title: ApiTestExtractType
                                    description: 'The type of document to extract. This should be one of the following:


                                      extract_json

                                      extract_html

                                      extract_xml'
                                  source:
                                    type: string
                                    example: '{''foo'': ''bar''}'
                                    title: ApiTestSource
                                    description: Source document to extract fields from.
                                  extractor:
                                    type: string
                                    example: $$.foo
                                    title: ApiTestExtractor
                                    description: Extracting language. This must be in JSONPath, XMLPath, or HTMLPath
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestExtractSetup
                                description: Setup instructions for extracting data for API tests.
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: First setup step
                                    title: ApiTestSetupName
                                    description: Name of your test setup step.
                                  type:
                                    type: string
                                    example: javascript
                                    description: Value must be javascript
                                  code:
                                    type: string
                                    example: console.log('hello world')
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestJavascript
                                description: Instructions for custom Javascript code
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: First setup step
                                    title: ApiTestSetupName
                                    description: Name of your test setup step.
                                  type:
                                    type: string
                                    example: save
                                    description: Value must be save
                                  value:
                                    type: string
                                    example: '{{response.body}}'
                                    description: 'The value of the variable you are saving. If you are saving the

                                      response body, the value of this field should be {{response.body}}.

                                      Other valid options include:


                                      {{custom.<myCustomVariable>}}

                                      {{env.<myGlobalVariable>}}

                                      {{response.code}}

                                      {{response.first_byte_time}}

                                      {{response.body_size}}

                                      {{response.dns_time}}

                                      {{response.response_time}}

                                      {{headers.<headerName>}}'
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestSave
                                description: Save a custom field, response value, response header, or response body to a variable.
                          validations:
                            type: array
                            items:
                              anyOf:
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: My validation step
                                    title: ApiTestValidationName
                                    description: Name of your validation step.
                                  type:
                                    type: string
                                    example: assert_numeric
                                    description: 'Type of assertion. Possible values for this must be paired with a valid
                                      comparator. Values are:


                                      assert_string

                                      assert_numeric'
                                  actual:
                                    type: string
                                    example: '{{response.code}}'
                                    description: 'The actual value to validate. This can be any string, a variable, or a metric
                                      value. Valid options include:


                                      {{custom.<myCustomVariable>}}


                                      {{env.<myGlobalVariable>}}


                                      {{response.body}}


                                      {{response.code}}


                                      {{response.first_byte_time}}


                                      {{response.body_size}}


                                      {{response.dns_time}}


                                      {{response.response_time}}


                                      {{headers.<headerName>}}'
                                  expected:
                                    type: string
                                    example: 200
                                    description: What you expect the variable to be.
                                  comparator:
                                    type: string
                                    example: equals
                                    description: 'Comparator between the actual value and the expected value. Must be

                                      one of the following depending on the type:

                                      For assert_string:


                                      is_empty

                                      is_not_empty

                                      contains

                                      does_not_contain

                                      equals

                                      does_not_equal

                                      matches

                                      does_not_match


                                      For assert_numeric:


                                      is_less_than

                                      is_less_than_or_equal_to

                                      equals

                                      does_not_equal

                                      is_greater_than

                                      is_greater_than_or_equal_to'
                                title: ApiTestValidationAssert
                                description: Validation step to assert custom data, response value, response header, or response
                                  body.
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: My validation step
                                    title: ApiTestValidationName
                                    description: Name of your validation step.
                                  type:
                                    type: string
                                    example: extract_json
                                    title: ApiTestExtractType
                                    description: 'The type of document to extract. This should be one of the following:


                                      extract_json

                                      extract_html

                                      extract_xml'
                                  source:
                                    type: string
                                    example: '{''foo'': ''bar''}'
                                    title: ApiTestSource
                                    description: Source document to extract fields from.
                                  extractor:
                                    type: string
                                    example: $$.foo
                                    title: ApiTestExtractor
                                    description: Extracting language. This must be in JSONPath, XMLPath, or HTMLPath
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestValidationExtract
                                description: 'Validation step to extract values from custom data, response body, response
                                  header, or

                                  existing variable'
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: First setup step
                                    title: ApiTestSetupName
                                    description: Name of your test setup step.
                                  type:
                                    type: string
                                    example: javascript
                                    description: Value must be javascript
                                  code:
                                    type: string
                                    example: console.log('hello world')
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestJavascript
                                description: Instructions for custom Javascript code
                              - type: object
                                properties:
                                  name:
                                    type: string
                                    example: First setup step
                                    title: ApiTestSetupName
                                    description: Name of your test setup step.
                                  type:
                                    type: string
                                    example: save
                                    description: Value must be save
                                  value:
                                    type: string
                                    example: '{{response.body}}'
                                    description: 'The value of the variable you are saving. If you are saving the

                                      response body, the value of this field should be {{response.body}}.

                                      Other valid options include:


                                      {{custom.<myCustomVariable>}}

                                      {{env.<myGlobalVariable>}}

                                      {{response.code}}

                                      {{response.first_byte_time}}

                                      {{response.body_size}}

                                      {{response.dns_time}}

                                      {{response.response_time}}

                                      {{headers.<headerName>}}'
                                  variable:
                                    type: string
                                    example: myVariable
                                    title: ApiTestVariable
                                    description: Variable to save your extraction.
                                title: ApiTestSave
                                description: Save a custom field, response value, response header, or response body to a variable.
                      title: ApiTestRequests
                    customProperties:
                      type: array
                      items:
                        type: object
                        required:
                        - key
                        - value
                        properties:
                          key:
                            type: string
                            example: Env
                          value:
                            type: string
                            example: production
                      title: CustomProperties
                      description: An array of custom properties.  The section Custom Properties Criteria lists the requirements
                        for custom property names and values.
              title: TestRequestBody
              description: 'The request body sent by the following method/endpoint operations:


                POST /v2/tests/api

                PATCH /v2/tests/api/{id}

                PUT /v2/tests/api/{id}

                POST /v2/tests/api/validate

                POST /v2/tests/api/{id}/validate

                PUT /v2/tests/api/{id}/validate'
            examples:
              example:
                value:
                  test:
                    active: true
                    automaticRetries: 1
                    customProperties:
                    - key: Env
                      value: production
                    deviceId: 1
                    frequency: 5
                    locationIds:
                    - aws-us-east-1
                    name: My API test
                    requests:
                    - configuration:
                        body: '''{"alert_name":"the service is

                          down","url":"https://foo.com/bar"}''

                          '
                        certificateId: 1
                        headers:
                          Accept: application/json
                          x-foo: bar
                        httpVersion: '1.1'
                        name: Get products
                        requestMethod: GET
                        url: https://dummyjson.com/products
                      setup:
                      - extractor: $$.foo
                        name: First setup step
                        source: '{''foo'': ''bar''}'
                        type: extract_json
                        variable: myVariable
                      validations:
                      - actual: '{{response.code}}'
                        comparator: equals
                        expected: 200
                        name: My validation step
                        type: assert_numeric
                    schedulingStrategy: round_robin
      responses:
        '201':
          description: HTTP 201 response
          content:
            application/json:
              schema:
                properties:
                  test:
                    title: TestApiResponse
                    properties:
                      id:
                        type: integer
                        format: int64
                        readOnly: true
                        example: 1
                        description: 'Timestamp of when the test was last updated, in UTC.

                          This field is read-only, and the system always sets the value.'
                      name:
                        type: string
                        example: My Test
                        description: Name of the test.
                      active:
                        type: boolean
                        example: true
                        description: Describes if the test is active.
                      automaticRetries:
                        type: integer
                        default: 0
                        example: 1
                        description: Automatically retry if the run fails
                      frequency:
                        type: integer
                        format: int32
                        example: 5
                        title: Frequency
                        description: How often to run your test.
                      schedulingStrategy:
                        type: string
                        example: round_robin
                        title: SchedulingStrategy
                        description: 'Type of scheduling strategy. This can only be:


                          round_robin

                          concurrent'
                      createdAt:
                        type: string
                        readOnly: true
                        example: '2022-09-14T14:35:37.801Z'
                        title: CreatedAt
                        description: 'Timestamp of when the test was last updated, in UTC.

                          This field is read-only, and the system always sets the value.'
                      createdBy:
                        type: string
                        readOnly: true
                        example: abcdefgh1234
                        title: CreatedBy
                        description: 'Member ID of who created the test.

                          This field is read-only, and the system always sets the value.'
                      updatedAt:
                        type: string
                        readOnly: true
                        example: '2022-09-14T14:35:38.099Z'
                        title: UpdatedAt
                        description: 'Timestamp of when the test was last updated, in UTC.

                          This field is read-only, and the system always sets the value.'
                      updatedBy:
                        type: string
                        readOnly: true
                        example: abcdefgh1234
                        title: UpdatedBy
                        description: 'Member ID of who last updated the test.

                          This field is read-only, and the system always sets the value.'
                      locationIds:
                        type: array
                        items:
                          type: string
                        example:
                        - aws-us-east-1
                        title: LocationIds
                        description: An array of location IDs where the test runs.
                      type:
                        type: string
                        example: api
                      customProperties:
                        type: array
                        items:
                          type: object
                          required:
                          - key
                          - value
                          properties:
                            key:
                              type: string
                              example: Env
                            value:
                              type: string
                              example: production
                        title: CustomProperties
                        description: An array of custom properties.  The section Custom Properties Criteria lists the requirements
                          for custom property names and values.
                      lastRunStatus:
                        type: string
                        example: success
                        enum:
                        - pending
                        - success
                        - failed
                        title: LastRunStatus
                        description: Status of the last test run.
                      lastRunAt:
                        type: string
                        readOnly: true
                        example: '2022-09-14T14:36:45.156Z'
                        title: LastRunAt
                        description: 'Timestamp of when the test was last run, in UTC.

                          This field is read-only, and the system always sets the value.'
                      deviceId:
                        type: integer
                        format: int32
                        example: 1
                        description: The unique ID of the device used for this test.
                      requests:
                        type: array
                        items:
                          type: object
                          properties:
                            configuration:
                              type: object
                              properties:
                                name:
                                  type: string
                                  example: Get products
                                requestMethod:
                                  type: string
                                  example: GET
                                  description: 'Must be one of the following:


                                    GET

                                    POST

                                    PUT

                                    PATCH

                                    DELETE

                                    HEAD

                                    OPTIONS'
                                url:
                                  type: string
                                  example: https://dummyjson.com/products
                                headers:
                                  type: object
                                  properties:
                                    Accept:
                                      type: string
                                      example: application/json
                                    x-foo:
                                      type: string
                                      example: bar
                                  description: HTTP headers to add to your request.
                                body:
                                  type: string
                                  example: '''{"alert_name":"the service is

                                    down","url":"https://foo.com/bar"}''

                                    '
                                certificateId:
                                  type: integer
                                  format: int64
                                  nullable: true
                                  example: 1
                                  description: The unique ID of the client certificate.
                                httpVersion:
                                  type: string
                                  nullable: true
                                  enum:
                                  - '1.1'
                                  - '2.0'
                                  example: '1.1'
                                  description: 'Must be one of the following:


                                    1.1

                                    2.0'
                            setup:
                              type: array
                              items:
            

# --- truncated at 32 KB (172 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/splunk-observability/refs/heads/main/openapi/splunk-observability-synthetics-api-tests-v2-openapi.yml