Splunk Observability Cloud Synthetics SSL Certificate Tests
API for creating, updating, and deleting SSL Certificate Tests.
API for creating, updating, and deleting SSL Certificate Tests.
openapi: 3.0.3
info:
title: Splunk Observability Cloud — Synthetics SSL Certificate Tests
version: 1.0.0
description: 'API for creating, updating, and deleting SSL Certificate 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 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/ssl:
post:
summary: createSslTest
description: 'Creates a new SSL Certificate 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
title: SslTestRequest
required:
- name
- active
- frequency
- schedulingStrategy
- locationIds
- host
properties:
name:
type: string
example: My SSL Cert Test
title: TestName
active:
type: boolean
example: true
title: Active
frequency:
type: integer
format: int32
example: 5
maximum: 1440
minimum: 1
title: Frequency
description: How often to run your test.
schedulingStrategy:
type: string
example: round_robin
enum:
- round_robin
- concurrent
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.
host:
type: string
example: example.com
title: Host
description: The host to test.
port:
type: integer
format: int32
example: 443
default: 443
minimum: 1
maximum: 65535
title: Port
description: The port to test.
serverName:
type: string
example: example.com
title: ServerName
description: The server name definition of SNI (Server Name Indication) support allows a single server
to host multiple TLS/SSL certificates on the same IP address and port.
allowUntrustedRoot:
type: boolean
example: true
title: AllowUntrustedRoot
description: Allow untrusted root certificate in chain. true will disable untrusted root certificate
validation.
allowSelfSigned:
type: boolean
example: true
title: AllowSelfSigned
description: Allow self-signed certificate in chain. true will disable self-signed certificate validation.
caCertificateId:
type: integer
format: int64
example: 1
nullable: true
title: CaCertificateId
description: The unique ID of the CA Certificate.
validations:
type: array
items:
type: object
properties:
name:
type: string
example: My validation step
title: ValidationName
type:
type: string
enum:
- assert_numeric
- assert_string
example: assert_numeric
description: 'Type of assertion. Possible values for this are:
assert_string - When asserting text
assert_numeric - When asserting Expiration in days, tls_version, is_self_signed, is_revoked'
actual:
type: string
example: '{{response.days_until_expiration}}'
description: 'The actual value. If referencing a response variable, the value of
this field is:
{{response.days_until_expiration}}
{{response.tls_version}}
{{response.subject}}
{{response.issuer}}
{{response.is_self_signed}} contains 0 or 1 as boolean
{{response.is_revoked}} contains 0 or 1 as boolean
{{response.algorithm}}
{{response.issuer_days_until_expiration}}
{{response.issuer_tls_version}}
{{response.issuer_subject}}
{{response.issuer_algorithm}}
{{response.issuer_is_trusted}} contains 0 or 1 as boolean
{{response.issuer_is_revoked}} contains 0 or 1 as boolean'
expected:
type: string
example: 200
description: What you expect the variable to be.
comparator:
type: string
enum:
- is_empty
- is_not_empty
- contains
- does_not_contain
- equals
- does_not_equal
- matches
- does_not_match
- is_less_than
- is_less_than_or_equal_to
- is_greater_than
- is_greater_than_or_equal_to
example: equals
description: 'Comparator between the actual value and the expected value. Must be
one of the following for type = assert_string:
is_empty
is_not_empty
contains
does_not_contain
equals
does_not_equal
matches to regular expression
does_not_match to regular expression
and one of the following for type = assert_numeric:
equals
does_not_equal
is_less_than
is_less_than_or_equal_to
is_greater_than
is_greater_than_or_equal_to'
title: ValidationAssert
description: Validation assert SSL Certificate data from response.
title: Validations
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.
examples:
example:
value:
test:
active: true
allowSelfSigned: true
allowUntrustedRoot: true
caCertificateId: 1
customProperties:
- key: Env
value: production
frequency: 5
host: example.com
locationIds:
- aws-us-east-1
name: My SSL Cert Test
port: 443
schedulingStrategy: round_robin
serverName: example.com
validations:
- actual: '{{response.days_until_expiration}}'
comparator: equals
expected: 200
name: My validation step
type: assert_numeric
responses:
'201':
description: HTTP 201 response
content:
application/json:
schema:
type: object
properties:
test:
type: object
required:
- id
- name
- active
- frequency
- schedulingStrategy
- locationIds
- host
properties:
id:
type: integer
format: int64
example: 1
title: TestId
description: The unique ID of the SSL Certificate Test.
name:
type: string
example: My SSL Cert Test
title: TestName
active:
type: boolean
example: true
title: Active
frequency:
type: integer
format: int32
example: 5
maximum: 1440
minimum: 1
title: Frequency
description: How often to run your test.
schedulingStrategy:
type: string
example: round_robin
enum:
- round_robin
- concurrent
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.
host:
type: string
example: example.com
title: Host
description: The host to test.
port:
type: integer
format: int32
example: 443
default: 443
minimum: 1
maximum: 65535
title: Port
description: The port to test.
serverName:
type: string
example: example.com
title: ServerName
description: The server name definition of SNI (Server Name Indication) support allows a single server
to host multiple TLS/SSL certificates on the same IP address and port.
allowUntrustedRoot:
type: boolean
example: true
title: AllowUntrustedRoot
description: Allow untrusted root certificate in chain. true will disable untrusted root certificate
validation.
allowSelfSigned:
type: boolean
example: true
title: AllowSelfSigned
description: Allow self-signed certificate in chain. true will disable self-signed certificate validation.
caCertificateId:
type: integer
format: int64
example: 1
nullable: true
title: CaCertificateId
description: The unique ID of the CA Certificate.
validations:
type: array
items:
type: object
properties:
name:
type: string
example: My validation step
title: ValidationName
type:
type: string
enum:
- assert_numeric
- assert_string
example: assert_numeric
description: 'Type of assertion. Possible values for this are:
assert_string - When asserting text
assert_numeric - When asserting Expiration in days, tls_version, is_self_signed, is_revoked'
actual:
type: string
example: '{{response.days_until_expiration}}'
description: 'The actual value. If referencing a response variable, the value of
this field is:
{{response.days_until_expiration}}
{{response.tls_version}}
{{response.subject}}
{{response.issuer}}
{{response.is_self_signed}} contains 0 or 1 as boolean
{{response.is_revoked}} contains 0 or 1 as boolean
{{response.algorithm}}
{{response.issuer_days_until_expiration}}
{{response.issuer_tls_version}}
{{response.issuer_subject}}
{{response.issuer_algorithm}}
{{response.issuer_is_trusted}} contains 0 or 1 as boolean
{{response.issuer_is_revoked}} contains 0 or 1 as boolean'
expected:
type: string
example: 200
description: What you expect the variable to be.
comparator:
type: string
enum:
- is_empty
- is_not_empty
- contains
- does_not_contain
- equals
- does_not_equal
- matches
- does_not_match
- is_less_than
- is_less_than_or_equal_to
- is_greater_than
- is_greater_than_or_equal_to
example: equals
description: 'Comparator between the actual value and the expected value. Must be
one of the following for type = assert_string:
is_empty
is_not_empty
contains
does_not_contain
equals
does_not_equal
matches to regular expression
does_not_match to regular expression
and one of the following for type = assert_numeric:
equals
does_not_equal
is_less_than
is_less_than_or_equal_to
is_greater_than
is_greater_than_or_equal_to'
title: ValidationAssert
description: Validation assert SSL Certificate data from response.
title: Validations
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.
createdAt:
type: string
readOnly: true
writeOnly: false
example: '2022-09-14T14:35:37.801Z'
title: CreatedAt
description: 'Timestamp of when the item was created, in UTC.
This field is read_only, and the system always sets the value.'
updatedAt:
type: string
readOnly: true
writeOnly: false
example: '2022-09-14T14:35:38.099Z'
title: UpdatedAt
description: 'Timestamp of when the item was last updated, in UTC.
This field is read_only, and the system always sets the value.'
createdBy:
type: string
readOnly: true
writeOnly: false
example: abcdefgh1234
title: CreatedBy
description: 'Member ID of who created the item.
This field is read-only, and the system always sets the value.'
updatedBy:
type: string
readOnly: true
writeOnly: false
example: abcdefgh1234
title: UpdatedBy
description: 'Member ID of who last updated the item.
This field is read-only, and the system always sets the value.'
title: SslTestResponse
examples:
example:
value:
test:
active: true
allowSelfSigned: true
allowUntrustedRoot: true
caCertificateId: 1
createdAt: '2022-09-14T14:35:37.801Z'
createdBy: abcdefgh1234
customProperties:
- key: Env
value: production
frequency: 5
host: example.com
id: 1
locationIds:
- aws-us-east-1
name: My SSL Cert Test
port: 443
schedulingStrategy: round_robin
serverName: example.com
updatedAt: '2022-09-14T14:35:38.099Z'
updatedBy: abcdefgh1234
validations:
- actual: '{{response.days_until_expiration}}'
comparator: equals
expected: 200
name: My validation step
type: assert_numeric
'422':
description: HTTP 422 response
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: unprocessable_entity
message:
type: string
example: Could not process SSL Certificate Test
details:
type: object
properties:
name:
type: array
items:
type: string
example: is already taken
description: 'This is a dynamic schema that consists of:
"fieldName": ["reason"]'
title: UnprocessableEntity
description: UnprocessableEntity
examples:
example:
value:
code: unprocessable_entity
details:
name:
- is already taken
message: Could not process SSL Certificate Test
security:
- SessionToken: []
tags:
- Synthetics SSL Certificate Tests
/tests/ssl/{id}:
get:
summary: getSingleSslTest
description: 'Retrieves a single SSL Certificate 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 the SSL Certificate Test you want to retrieve
required: true
schema:
type: integer
- 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
required:
- id
- name
- active
- frequency
- schedulingStrategy
- locationIds
- host
properties:
id:
type: integer
format: int64
example: 1
title: TestId
description: The unique ID of the SSL Certificate Test.
name:
type: string
example: My SSL Cert Test
title: TestName
active:
type: boolean
example: true
title: Active
frequency:
type: integer
format: int32
example: 5
maximum: 1440
minimum: 1
title: Frequency
description: How often to run your test.
schedulingStrategy:
type: string
example: round_robin
enum:
- round_robin
- concurrent
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.
host:
type: string
example: example.com
title: Host
description: The host to test.
port:
type: integer
format: int32
example: 443
default: 443
minimum: 1
maximum: 65535
title: Port
description: The port to test.
serverName:
type: string
example: example.com
title: ServerName
description: The server name definition of SNI (Server Name Indication) support allows a single server
to host multiple TLS/SSL certificates on the same IP address and port.
allowUntrustedRoot:
type: boolean
example: true
title: AllowUntrustedRoot
description: Allow untrusted root certificate in chain. true will disable untrusted root certificate
validation.
allowSelfSigned:
type: boolean
example: true
title: AllowSelfSigned
description: Allow self-signed certificate in chain. true will disable self-signed certificate validation.
caCertificateId:
type: integer
format: int64
example: 1
nullable: true
title: CaCertificateId
description: The unique ID of the CA Certificate.
validations:
type: array
items:
type: object
properties:
name:
type: string
example: My validation step
title: ValidationName
type:
type: string
enum:
- assert_numeric
- assert_string
example: assert_numeric
description: 'Type of assertion. Possible values for this are:
assert_string - When asserting text
assert_numeric - When asserting Expiration in days, tls_version, is_self_signed, is_revoked'
actual:
type: string
example: '{{response.days_until_expiration}}'
description: 'The actual value. If referencing a response variable, the value of
this field is:
{{response.days_until_expiration}}
{{response.tls_version}}
{{response.subject}}
{{response.issuer}}
{{response.is_self_signed}} contains 0 or 1 as boolean
{{response.is_revoked}} contains 0 or 1 as boolean
{{response.algorithm}}
{{response.issuer_days_until_expiration}}
{{response.issuer_tls_version}}
{{response.issuer_subject}}
{{response.issuer_algorithm}}
{{response.issuer_is_trusted}} contains 0 or 1 as boolean
{{response.issuer_is_revoked}} contains 0 or 1 as boolean'
expected:
type: string
example: 200
description: What you expect the variable to be.
comparator:
type: string
enum:
- is_empty
- is_not_empty
- contains
- does_not_contain
- equals
- does_not_equal
- matches
- does_not_match
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/splunk-observability/refs/heads/main/openapi/splunk-observability-synthetics-ssl-tests-openapi.yml