Skip to main content
POST

Authorizations

x-api-key
string
header
required

API key for authentication

Body

application/json
name
string
required

Display name for the saved report.

Required string length: 1 - 200
Example:

"Accent sweep"

run_ids
string[]
required

Run IDs to include in the report. All must belong to the authenticated organization.

Required array length: 1 - 2000 elements
Example:
simulation_output_ids
string[]

Optional simulation IDs pinning the report to a subset of simulations. When set, this is the report's authoritative scope. All must belong to the authenticated organization.

Maximum array length: 10000
Example:
source_human_review_project_id
string | null

Optional human review project the simulations were sourced from; simulation_output_ids must belong to it.

Required string length: 26
Example:

"01JABCDEFGHJKMNPQRSTVWXYZ0"

compare_by
enum<string>
default:none

Dimension to group and compare runs by in the report view. custom groups by a caller-defined dimension and requires custom_dimensions.

Available options:
none,
run,
agent,
mutation,
persona,
test_case,
metadata,
custom
Example:

"persona"

metadata_key
string | null

Metadata key to group by. Required when compare_by is metadata; otherwise omit it.

Required string length: 1 - 200
Example:

"customer.plan"

custom_dimensions
object[] | null

Caller-defined groupings of the report's simulations. Required when compare_by is custom; otherwise omit it. This is how the app's "Merge reports" action builds one grouped report out of several.

Required array length: 1 - 10 elements
custom_dimension_id
string | null

Which of custom_dimensions to group by. Only valid when compare_by is custom; defaults to the first dimension.

Required string length: 1 - 200
Example:

"g8FtruIga1xn"

view_mode
enum<string> | null

Report layout. grouped aggregates each compare_by group; defaults to rows.

Available options:
rows,
grouped
Example:

"grouped"

permissions
enum<string>
default:PRIVATE

PUBLIC creates a login-free shareable report; PRIVATE keeps it organization-only.

Available options:
PUBLIC,
PRIVATE
Example:

"PRIVATE"

Response

Report created successfully

report
object
required