Splunk Observability Cloud Synthetics HTTP tests

API for creating, updating, retrieving, and deleting Synthetics HTTP tests.

OpenAPI Specification

splunk-observability-synthetics-http-tests-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Splunk Observability Cloud — Synthetics HTTP tests
  version: 1.0.1
  description: 'API for creating, updating, retrieving, and deleting Synthetics HTTP tests.

    Requirements


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

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

    You have to have the Splunk Observability Cloud admin, power, or read_only role to use the GET /tests/http/{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
  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/http:
    post:
      summary: createHttpTest
      description: 'Creates a new HTTP 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 to use the API.

        You need 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:
                    name:
                      type: string
                      example: My HTTP test
                    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'
                    locationIds:
                      type: array
                      items:
                        type: string
                      example:
                      - aws-us-east-1
                      title: LocationIds
                      description: An array of location IDs where the test runs.
                    authentication:
                      type: object
                      properties:
                        username:
                          type: string
                          example: myuser
                        password:
                          type: string
                          example: password123
                      title: Authentication
                    url:
                      type: string
                      example: https://splunk.com
                      description: URL to test
                    active:
                      type: boolean
                      example: true
                    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.
                    verifyCertificates:
                      type: boolean
                      example: true
                    requestMethod:
                      type: string
                      example: POST
                      title: RequestMethod
                      description: 'Must be one of the following:


                        GET

                        POST

                        PUT

                        PATCH

                        DELETE

                        HEAD

                        OPTIONS'
                    body:
                      type: string
                      example: '''{"alert_name":"the service is

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

                        '
                      title: Body
                    validations:
                      type: array
                      items:
                        anyOf:
                        - type: object
                          properties:
                            type:
                              type: string
                              example: assert_numeric
                              description: 'Type of assertion. Possible values for this 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:


                                {{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: ValidationAssert
                          description: Validation step to assert response value, response header, or response body.
                    userAgent:
                      type: string
                      example: Mozilla/5.0 (iPhone13,2; U; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML,
                        like Gecko) Version/10.0 Mobile/15E148 Safari/602.1
                      title: UserAgent
                      description: Configure the User-Agent HTTP header
                    port:
                      type: integer
                      format: int32
                      minimum: 0
                      maximum: 65535
                      nullable: true
                      example: 3000
                      title: PortSchema
                      description: Port number from 0-65535. Can be null.
                    certificateId:
                      type: integer
                      format: int64
                      example: 1
                      nullable: true
                      title: CertificateId
                      description: The unique ID of the client certificate.
              title: HttpTestValidateRequest
              description: Request body to validate HTTP tests.
            examples:
              example:
                value:
                  test:
                    active: true
                    authentication:
                      password: password123
                      username: myuser
                    automaticRetries: 1
                    body: '''{"alert_name":"the service is

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

                      '
                    certificateId: 1
                    customProperties:
                    - key: Env
                      value: production
                    frequency: 5
                    locationIds:
                    - aws-us-east-1
                    name: My HTTP test
                    port: 3000
                    requestMethod: POST
                    schedulingStrategy: round_robin
                    url: https://splunk.com
                    userAgent: Mozilla/5.0 (iPhone13,2; U; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML,
                      like Gecko) Version/10.0 Mobile/15E148 Safari/602.1
                    validations:
                    - actual: '{{response.code}}'
                      comparator: equals
                      expected: 200
                      type: assert_numeric
                    verifyCertificates: true
      responses:
        '201':
          description: HTTP 201 response
          content:
            application/json:
              schema:
                properties:
                  test:
                    type: object
                    properties:
                      id:
                        type: integer
                        format: int32
                        example: 1
                      name:
                        type: string
                        example: My HTTP test
                      active:
                        type: boolean
                        example: true
                      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.
                      authentication:
                        type: object
                        properties:
                          username:
                            type: string
                            example: myuser
                          password:
                            type: string
                            example: password123
                        title: Authentication
                      type:
                        type: string
                        example: http
                      url:
                        type: string
                        example: https://splunk.com
                      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.
                      verifyCertificates:
                        type: boolean
                        example: true
                      requestMethod:
                        type: string
                        example: POST
                        title: RequestMethod
                        description: 'Must be one of the following:


                          GET

                          POST

                          PUT

                          PATCH

                          DELETE

                          HEAD

                          OPTIONS'
                      body:
                        type: string
                        example: '''{"alert_name":"the service is

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

                          '
                        title: Body
                      validations:
                        type: array
                        items:
                          anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                example: assert_numeric
                                description: 'Type of assertion. Possible values for this 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:


                                  {{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: ValidationAssert
                            description: Validation step to assert response value, response header, or response body.
                      userAgent:
                        type: string
                        example: Mozilla/5.0 (iPhone13,2; U; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML,
                          like Gecko) Version/10.0 Mobile/15E148 Safari/602.1
                        title: UserAgent
                        description: Configure the User-Agent HTTP header
                      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.'
                      port:
                        type: integer
                        format: int32
                        minimum: 0
                        maximum: 65535
                        nullable: true
                        example: 3000
                        title: PortSchema
                        description: Port number from 0-65535. Can be null.
                      certificateId:
                        type: integer
                        format: int64
                        example: 1
                        nullable: true
                        title: CertificateId
                        description: The unique ID of the client certificate.
                type: object
              examples:
                example:
                  value:
                    test:
                      active: true
                      authentication:
                        password: password123
                        username: myuser
                      automaticRetries: 1
                      body: '''{"alert_name":"the service is

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

                        '
                      certificateId: 1
                      createdAt: '2022-09-14T14:35:37.801Z'
                      createdBy: abcdefgh1234
                      customProperties:
                      - key: Env
                        value: production
                      frequency: 5
                      id: 1
                      lastRunAt: '2022-09-14T14:36:45.156Z'
                      lastRunStatus: success
                      locationIds:
                      - aws-us-east-1
                      name: My HTTP test
                      port: 3000
                      requestMethod: POST
                      schedulingStrategy: round_robin
                      type: http
                      updatedAt: '2022-09-14T14:35:38.099Z'
                      updatedBy: abcdefgh1234
                      url: https://splunk.com
                      userAgent: Mozilla/5.0 (iPhone13,2; U; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML,
                        like Gecko) Version/10.0 Mobile/15E148 Safari/602.1
                      validations:
                      - actual: '{{response.code}}'
                        comparator: equals
                        expected: 200
                        type: assert_numeric
                      verifyCertificates: true
        '422':
          description: HTTP 422 response
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                    example: unprocessable_entity
                  message:
                    type: string
                    example: Could not create an HTTP test
                  details:
                    type: object
                    properties:
                      device:
                        type: array
                        items:
                          type: string
                          example: must exist
                        description: 'This is a dynamic schema that consists of:

                          "fieldName": ["reason"]'
                type: object
              examples:
                example:
                  value:
                    code: unprocessable_entity
                    details:
                      device:
                      - must exist
                    message: Could not create an HTTP test
      security:
      - SessionToken: []
      tags:
      - Synthetics HTTP tests
  /tests/http/{id}:
    get:
      summary: getSingleHttpTest
      description: 'Retrieves a single HTTP test.

        Requirements


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

        You need the Splunk Observability Cloud admin, power, or read_only role.'
      parameters:
      - name: id
        in: path
        description: The ID of an HTTP test to retrieve
        required: true
        schema:
          type: string
      - name: X-SF-TOKEN
        in: header
        description: Authentication token.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: HTTP 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  test:
                    type: object
                    properties:
                      id:
                        type: integer
                        format: int32
                        example: 1
                      name:
                        type: string
                        example: My HTTP test
                      active:
                        type: boolean
                        example: true
                      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.
                      authentication:
                        type: object
                        properties:
                          username:
                            type: string
                            example: myuser
                          password:
                            type: string
                            example: password123
                        title: Authentication
                      type:
                        type: string
                        example: http
                      url:
                        type: string
                        example: https://splunk.com
                      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.
                      verifyCertificates:
                        type: boolean
                        example: true
                      requestMethod:
                        type: string
                        example: POST
                        title: RequestMethod
                        description: 'Must be one of the following:


                          GET

                          POST

                          PUT

                          PATCH

                          DELETE

                          HEAD

                          OPTIONS'
                      body:
                        type: string
                        example: '''{"alert_name":"the service is

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

                          '
                        title: Body
                      validations:
                        type: array
                        items:
                          anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                example: assert_numeric
                                description: 'Type of assertion. Possible values for this 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:


                                  {{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:


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