Skip to content

Save a test case for a skill

POST
/skills/{action_id}/test-cases

Saving a case RUNS NOTHING. Only POST .../test-runs runs the skill.

That separation is the point: building a suite is free, and executing it is the operation that costs.

Authorizations

Parameters

Path Parameters

action_id
required

Skill or workflow action_id.

string
>= 1 characters

Skill or workflow action_id.

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

object
assertion_config
Any of:
object
key
additional properties
any
assertion_type

“exact”, “contains” or “llm_judge”. llm_judge is skipped by dry runs.

string
default: contains
expected_output
Any of:
input_data
required

The fixture, same shape as an execution’s input.

object
key
additional properties
any
name
required

Human label.

string
>= 1 characters <= 200 characters

Responses

201

Successful Response

object
data
required

One voice object - a collection, an agent, a route, a chat.

Open-shaped: voice adds fields to these bodies on its own release cadence and a dropped-or-added key must not be a 500 in this service.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string