Skip to content

Run Dry Run

POST
/api/v1/admin/si-dry-run/run
curl --request POST \
--url https://api.ultimateteam.ai/api/v1/admin/si-dry-run/run \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "cleanup": true, "role": "ceo", "seed_config": { "age_days_dist": { "additionalProperty": 1 }, "connector_count": 1, "decision_count": 1, "industry_mix": { "additionalProperty": 1 }, "plan_tier_mix": { "additionalProperty": 1 }, "seed": 1, "tenant_count": 1 }, "week_iso": "example" }'

Run the SI cadence harness offline against a synthetic cohort.

Chairman-only. Returns the proposal output (per-role A/B results) without persisting to public.self_improvement_proposals.

Media typeapplication/json
DryRunRequest

Request body for POST /api/v1/admin/si-dry-run/run.

object
cleanup
Cleanup
boolean
default: true
role
required
Role
string
Allowed values: ceo cro cfo cmo coo cto ciso cio
seed_config
required
SeedConfigPayload

Mirror of :class:CohortSeedConfig over the wire.

Validation bounds match the dataclass exactly; passing values out-of-range yields a 422 Pydantic validation error before the handler runs.

object
age_days_dist
Any of:
object
key
additional properties
number
connector_count
required
Connector Count
integer
>= 5 <= 25
decision_count
required
Decision Count
integer
>= 50 <= 1000
industry_mix
Any of:
object
key
additional properties
number
plan_tier_mix
Any of:
object
key
additional properties
number
seed
Any of:
integer
tenant_count
required
Tenant Count
integer
>= 5 <= 50
week_iso
required
Week Iso
string
/^\d{4}-W\d{2}$/

Successful Response

Media typeapplication/json
DryRunResponse

Response body for POST /api/v1/admin/si-dry-run/run.

object
cohort_schema
required
Any of:
string
credits_consumed
required
Credits Consumed
integer
role_results
required
Role Results
Array<object>
RoleResultPayload

One per-tenant per-role A/B outcome.

Mirrors :class:RoleABResult plus a scope literal so the frontend can render a “scope: dry_run” badge without trusting the bare value.

object
candidate_fragment
required
Any of:
string
candidate_mean
required
Any of:
number
current_mean
required
Any of:
number
delta
required
Any of:
number
p_value
required
Any of:
number
role
required
Role
string
sample_count
required
Sample Count
integer
scope
Scope
string
default: dry_run
Allowed value: dry_run
skip_reason
required
Any of:
string
winner
required
Winner
string
Allowed values: current candidate tie skipped
scope
Scope
string
default: dry_run
Allowed value: dry_run
tenants_enriched
required
Tenants Enriched
integer
tenants_fallback
required
Tenants Fallback
integer
week_iso
required
Week Iso
string
Example
{
"role_results": [
{
"scope": "dry_run",
"winner": "current"
}
],
"scope": "dry_run"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}