Splunk Observability Cloud Synthetics API tests (V1)

API for creating, updating, retrieving, and deleting Splunk Synthetic Monitoring API tests using the legacy service routes (/tests/api).

OpenAPI Specification

splunk-observability-synthetics-api-tests-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Splunk Observability Cloud — Synthetics API tests (V1)
  version: 1.0.2
  description: 'API for creating, updating, retrieving, and deleting Splunk Synthetic Monitoring API tests using the legacy
    service routes (/tests/api).

    Note: This API is deprecated. For new integrations, use the Synthetics API tests V2 API instead. V2 endpoints are available
    under /v2/tests/api.

    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 /tests/api/try_now, POST /tests/api/validate,
    PUT /tests/api/{id}/validate, PUT /tests/api/{id}, DELETE /tests/api/{id}, and POST /tests/api operations.

    You have to have the Splunk Observability Cloud admin, power, or read_only role to use the GET /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: Endpoint URL (legacy API tests V1; deprecated)
  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:
  /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 /tests/api

                PATCH /tests/api/{id}

                PUT /tests/api/{id}

                POST /tests/api/validate

                POST /tests/api/{id}/validate

                PUT /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.'
                      device:
                        type: object
                        title: Device
                        properties:
                          id:
                            type: integer
                            format: int64
                            example: 1
                            description: The unique ID of the device.
                          label:
                            type: string
                            example: iPhone
                            description: User facing label of the device.
                          viewportWidth:
                            type: integer
                            format: int32
                            example: 375
                            description: Viewport width of the device.
                          viewportHeight:
                            type: integer
                            format: int32
                            example: 844
                            description: Viewport height of the device.
                          networkConnection:
                            type: object
                            title: Network Connection
                            properties:
                              description:
                                type: string
                                example: Mobile LTE
                                nullable: true
                                description: Type of network connection.
                              uploadBandwidth:
                                type: integer
                                format: int32
                                example: 12000
                                nullable: true
                                description: Upload limit of the network connection, in Kbps.
                              downloadBandwidth:
                                type: integer
                                format: int32
                                example: 12000
                                nullable: true
                                description: Download limit of the network connection, in Kbps.
                              latency:
                                type: integer
                                format: int32
                                example: 70
                                nullable: true
                                description: Latency amount of the network connection, in milliseconds.
                              packetLoss:
                                type: number
                                format: double
                                nullable: true
                                description: Packet loss amount of the network connection.
                      requests:
                        type: array
                        items:
                          type: object
                          properties:
                            configuration:
                              type: object
                              properties:
                                name:
                  

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