Splunk Observability Cloud Synthetics tests
API for retrieving and deleting tests in Splunk Synthetic Monitoring.
API for retrieving and deleting tests in Splunk Synthetic Monitoring.
openapi: 3.0.3
info:
title: Splunk Observability Cloud — Synthetics tests
version: 1.0.4
description: 'API for retrieving and deleting tests in Splunk Synthetic Monitoring.
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 to use this API.'
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:
get:
summary: getTests
description: 'Returns a list of all tests.
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: page
in: query
description: 'The page to return. Must be greater than 0, but will default to 1
otherwise.'
schema:
type: integer
default: 1
- name: perPage
in: query
description: Number of tests to return for a given request.
schema:
type: integer
default: 50
- name: testType
in: query
description: 'Returns only tests based on the specified type. Possible values:
browser: Browser tests
api: API tests
http: HTTP tests
port: Port tests
uptime: HTTP or Port tests
ssl: SSL tests'
schema:
type: string
- name: orderby
in: query
description: 'Sorts tests by the specified value. Possible values:
id: Test ID
name: Test name
active: Active status
type: Test type
frequency: Test run frequency
created_at: Date and time when tests were created.
updated_at: Date and time when tests were last updated.
scheduling_strategy: Scheduling strategy
last_run_at: Date and time when tests were last run
last_run_status: Status of the last time tests were run'
schema:
type: string
- name: search
in: query
description: Returns a list of tests that have match the value you specified for Name or Type.
schema:
type: string
- name: locationId
in: query
description: Returns a list of tests that are configured to run from the given locationId.
schema:
type: string
- name: customProperties
in: query
description: Returns a list of tests which have the given customProperties. The properties should be in the format
"key:value".
schema:
type: array
items:
type: string
example: key:value
properties:
key:
type: string
value:
type: string
- name: testTypes
in: query
description: 'Returns only tests based on the specified types. Possible values:
browser: Browser tests
api: API tests
http: HTTP tests
port: Port tests
uptime: HTTP or Port tests
ssl: SSL tests'
schema:
type: array
items:
type: string
- name: frequencies
in: query
description: Returns a list of tests that are configured to run with the given frequencies.
schema:
type: array
items:
type: integer
- name: locationIds
in: query
description: Returns a list of tests that are configured to run from the given locationIds.
schema:
type: array
items:
type: string
- name: lastRunStatus
in: query
description: 'Returns only tests based off of the lastRunStatus. Possible values:
success: Last test run was successful
failed: Last test run failed
pending: Test has not been run yet'
schema:
type: array
items:
type: string
- name: schedulingStragety
in: query
description: 'Returns only tests based on the specified schedulingStrategy. Possible values:
round_robin
concurrent'
schema:
type: string
- name: active
in: query
description: When true, returns only active tests. When false, returns only paused tests.
schema:
type: boolean
- name: X-SF-TOKEN
in: header
description: Authentication token
required: true
schema:
type: string
- name: Content-Type
in: header
description: Format of the request body. Always "application/json".
required: true
schema:
type: string
responses:
'200':
description: HTTP 200 response
content:
application/json:
schema:
type: object
properties:
perPage:
type: string
example: 50
title: PerPage
description: 'Number of results per page. If perPage is not supplied, the value of
this field will be 50. If it is supplied, then the value will be what
was supplied.'
totalCount:
type: integer
format: int32
example: 1
title: TotalCount
description: 'Number of test in the result set that match the search criteria.
Note: Count is not the same as the number of objects returned
in the response body.'
nextPageLink:
type: integer
format: int32
description: 'The href to the next page of results. If there is not a next page,
this will be null.'
tests:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
example: 1
description: The unique ID of the test.
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.
customProperties:
type: array
items:
type: object
properties:
key:
type: string
example: foo
value:
type: string
example: bar
title: CustomProperties
description: An array of custom properties for the test.
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.'
type:
type: string
example: browser
description: 'Type of tests, for example:
browser
http
api
port'
title: Test
description: Properties of a test.
description: 'Query results, in the form of a JSON array of
objects. Each element is a test.'
title: GetTestsResponse
description: Returns a list of all tests.
examples:
example:
value:
nextPageLink: 0
perPage: 50
tests:
- active: true
automaticRetries: 1
createdAt: '2022-09-14T14:35:37.801Z'
createdBy: abcdefgh1234
customProperties:
- key: foo
value: bar
frequency: 5
id: 1
lastRunAt: '2022-09-14T14:36:45.156Z'
lastRunStatus: success
locationIds:
- aws-us-east-1
name: My Test
schedulingStrategy: round_robin
type: browser
updatedAt: '2022-09-14T14:35:38.099Z'
updatedBy: abcdefgh1234
totalCount: 1
security:
- SessionToken: []
tags:
- Synthetics tests
/tests/{id}:
delete:
summary: deleteTest
description: 'Deletes a 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 or power role.'
parameters:
- name: id
in: path
description: The ID of a test
required: true
schema:
type: string
- name: X-SF-TOKEN
in: header
description: Authentication token.
required: true
schema:
type: string
responses:
'204':
description: HTTP 204 response
'404':
description: HTTP 404 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Can't find test.
details:
type: object
example: '{}'
title: NotFound
description: Not Found
examples:
example:
value:
code: not_found
details: '{}'
message: Can't find test.
security:
- SessionToken: []
tags:
- Synthetics tests
/tests/{id}/run_now:
post:
summary: runTestNow
description: 'Triggers a run of the specified 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 or power role.'
parameters:
- name: id
in: path
description: The ID of a test
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:
runId:
type: string
format: uuid
example: 1c4d52be-e7e1-4611-97f9-73c6ddfbeed9
description: The UUID of the triggered run
testId:
type: string
example: '123'
description: The ID of the test
locationId:
type: string
example: aws-us-east-1
description: The location ID where the test was executed.
testName:
type: string
example: My Test
description: The name of the test.
testType:
type: string
example: api
description: The type of the test.
title: RunNowResponse
examples:
example:
value:
locationId: aws-us-east-1
runId: 1c4d52be-e7e1-4611-97f9-73c6ddfbeed9
testId: '123'
testName: My Test
testType: api
'404':
description: HTTP 404 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Can't find test.
details:
type: object
example: '{}'
title: NotFound
description: Not Found
examples:
example:
value:
code: not_found
details: '{}'
message: Can't find test.
'422':
description: HTTP 422 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: unprocessable_entity
message:
type: string
example: 'Test is currently paused due to an active downtime configuration. Use {"force": true} to override.'
details:
type: object
example: '{}'
examples:
example:
value:
code: unprocessable_entity
details: '{}'
message: 'Test is currently paused due to an active downtime configuration. Use {"force": true} to override.'
security:
- SessionToken: []
tags:
- Synthetics tests
/tests/{id}/runs:
get:
summary: retrieveRunsForTest
description: 'Retrieve a paginated list of runs for a specific synthetic test.
Requirements
You must have an organization access token with the API permission or a session token to use the API.'
parameters:
- name: id
in: path
description: The ID of the test whose runs you want to retrieve.
required: true
schema:
type: integer
description: Integer ID for a persisted test.
- name: startTime
in: query
description: Start time in ISO8601 format.
schema:
type: string
format: date-time
- name: endTime
in: query
description: End time for the runs to include, as an ISO8601 timestamp.
schema:
type: string
format: date-time
- name: success
in: query
description: 'Filter runs by success status. When true, only successful runs are returned.
When false, only failed runs are returned.'
schema:
type: boolean
- name: triggerType
in: query
description: 'Filter runs by trigger type. Possible values:
scheduled
manual'
schema:
type: string
enum:
- scheduled
- manual
- name: locationIds
in: query
description: Returns runs that were executed from the given locations.
schema:
type: array
items:
type: string
- name: page
in: query
description: Page of runs to return. Must be greater than 0. Defaults to 1.
schema:
type: integer
default: 1
- name: perPage
in: query
description: Number of runs to return per page. Maximum 1000.
schema:
type: integer
default: 20
- 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
responses:
'200':
description: HTTP 200 response
content:
application/json:
schema:
type: object
properties:
runs:
type: array
items:
type: object
properties:
runId:
type: string
description: The UUID of the run.
testId:
type: integer
description: The ID of the test associated with this run.
testType:
type: string
enum:
- browser
- api
- http
- port
- uptime
- ssl
description: The type of the test.
locationId:
type: string
description: The location ID of the run.
triggerType:
type: string
enum:
- scheduled
- manual
description: The type of trigger that initiated the run.
success:
type: boolean
description: Whether the run was successful.
message:
type: string
description: A description of any run failure. null if the run has completed successfully.
timestamp:
type: string
description: This field is only used internally and has no relevance for API consumers
artifactsTimestampMs:
type: integer
description: Time since epoch in milliseconds when artifacts were generated and stored.
autoRetry:
type: boolean
description: Whether the run was automatically retried.
location:
type: string
description: The human readable location of the run.
runDurationMs:
type: integer
description: Duration of the run in milliseconds.
description: Summary information for a run.
page:
type: integer
description: Current page of results.
perPage:
type: integer
description: Number of runs per page.
nextPageLink:
type: string
nullable: true
description: URL to the next page of results, if any.
totalCount:
type: integer
description: Total number of runs matching the filters.
examples:
example:
value:
nextPageLink: string
page: 0
perPage: 0
runs:
- artifactsTimestampMs: 0
autoRetry: true
location: string
locationId: string
message: string
runDurationMs: 0
runId: string
success: true
testId: 0
testType: browser
timestamp: string
triggerType: scheduled
totalCount: 0
'400':
description: HTTP 400 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: bad_request
message:
type: string
example: Invalid query params
details:
type: object
examples:
example:
value:
code: bad_request
message: Invalid query params
'404':
description: HTTP 404 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Can't find test.
details:
type: object
example: '{}'
title: NotFound
description: Not Found
examples:
example:
value:
code: not_found
details: '{}'
message: Can't find test.
security:
- SessionToken: []
tags:
- Synthetics tests
/tests/bulk_delete:
post:
summary: deleteMultipleTests
description: 'Deletes the tests specified in requestBody. Maximum of 500 test IDs in one request.
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: X-SF-TOKEN
in: header
description: Authentication token
required: true
schema:
type: string
- name: Content-Type
in: header
description: Format of the request body. Always "application/json".
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
testIds:
type: array
example:
- 15
- 123
- 19955
items:
type: integer
format: int32
title: ListOfIds
description: List of Test IDs
examples:
example:
value:
testIds:
- 15
- 123
- 19955
responses:
'200':
description: HTTP 200 response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
title: OkResponse
examples:
example:
value:
success: true
'422':
description: HTTP 422 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: unprocessable_entity
message:
type: string
example: Invalid request body
details:
type: object
properties:
testIds:
type: object
properties:
'0':
type: array
items:
type: string
example: must be an integer
'2':
type: array
items:
type: string
example: must be an integer
title: UnprocessableEntity
description: UnprocessableEntity
examples:
example:
value:
code: unprocessable_entity
details:
testIds:
'0':
- must be an integer
'2':
- must be an integer
message: Invalid request body
security:
- SessionToken: []
tags:
- Synthetics tests
/tests/pause:
put:
summary: pauseMultipleTests
description: 'Deactivates the tests specified in requestBody. Maximum of 500 test IDs in one request.
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: X-SF-TOKEN
in: header
description: Authentication token
required: true
schema:
type: string
- name: Content-Type
in: header
description: Format of the request body. Always "application/json".
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
testIds:
type: array
example:
- 15
- 123
- 19955
items:
type: integer
format: int32
title: ListOfIds
description: List of Test IDs
examples:
example:
value:
testIds:
- 15
- 123
- 19955
responses:
'200':
description: HTTP 200 response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
title: OkResponse
examples:
example:
value:
success: true
'422':
description: HTTP 422 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: unprocessable_entity
message:
type: string
example: Invalid request body
details:
type: object
properties:
testIds:
type: object
properties:
'0':
type: array
items:
type: string
example: must be an integer
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/splunk-observability/refs/heads/main/openapi/splunk-observability-synthetics-tests-openapi.yml