---
title: "Start Run"
method: POST
path: "/v1/self-improve/runs"
tags: ["Self-Improve"]
---

# Start Run

`POST /v1/self-improve/runs`

Start a self-improve run. Confirm-gated: call once to preview, then again with confirmed=true.

## Headers

- `X-Organization-Id` string
- `X-API-Key` string, required

## Request body

- StartSelfImproveRequest
  - `agent_id` integer, required — VAPI agent to self-improve in place (prompt iterated; one new 'latest' version written at the end).
  - `simulation_id` integer, required — Simulation (digital humans + metrics) to run each round against the agent.
  - `target_pass_rate` number
  - `max_iterations` integer
  - `min_improvement` number — Minimum pass-rate gain to keep an iteration; non-negative so worse prompts are never kept.
  - `metric_count` integer
  - `success_metric_ids` string[], nullable — Reuse these metrics instead of generating new ones.
  - `confirmed` boolean

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-03** `aa501502e1fc` — 1 info
  - added the new optional `header` request parameter `X-Organization-Id`

[Change history](https://skmtc.dev/getbluejay/apis/bluejay-api/changes/v1/self-improve/runs/post.md)

---

[API](https://skmtc.dev/getbluejay/apis/bluejay-api.md) · [All operations](https://skmtc.dev/getbluejay/apis/bluejay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getbluejay/apis/bluejay-api/revisions/ecbdce14b5c0?raw)
