Skip to main content
PATCH

Authorizations

x-api-key
string
header
required

API key for authentication

Headers

If-Match
string

Strong ETag from GET /reports/{report_id}. Required when the PATCH body contains view_config; omit for legacy non-configuration updates.

Path Parameters

report_id
string
required

Saved report ULID.

Required string length: 26

Body

application/json
name
string

Display name for the saved report.

Required string length: 1 - 200
Example:

"Q2 plan comparison"

run_ids
string[]

Replacement run IDs. All must belong to the authenticated organization.

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

Replacement simulation IDs pinning the report to a subset of simulations. When set, this is the report's authoritative scope.

Maximum array length: 10000
Example:
source_human_review_project_id
string

Human review project the simulations were sourced from; simulation_output_ids must belong to it. Omit to leave unchanged — null is rejected, the linkage cannot be cleared via update.

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

Required when changing compare_by to metadata; otherwise omit it.

Required string length: 1 - 200
Example:

"customer.plan"

permissions
enum<string>
default:PRIVATE

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

Available options:
PUBLIC,
PRIVATE
Example:

"PRIVATE"

view_config
object

Merge-only patch for supported report view fields. Requires If-Match; cannot be combined with the legacy top-level compare_by or metadata_key fields.

Response

Report updated successfully

report
object
required