---
title: "End the test and keep the change for these people only"
method: POST
path: "/api/v1/experiments/{experiment_id}/promote-to-rule"
tags: ["experiments"]
---

# End the test and keep the change for these people only

`POST /api/v1/experiments/{experiment_id}/promote-to-rule`

## Request

- Base URL: `https://api.outrival.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outrival.com/api/v1/experiments/{experiment_id}/promote-to-rule`
- Auth: HTTP bearer

Promote: a live overlay for these people, then the experiment ends.

Creates a routing rule from the experiment's targeting and treatment
pins, then concludes with reason ``promoted_to_rule``. Anytime — no
verdict gate. Not keep-as-rule: that path stays gone.

## Path parameters

- `experiment_id` string, required

## Request body

- OptionalReasonRequest: A note stored with apply-winner. Outcome is implied.
  - `reason` string, nullable: Recorded with the conclusion; free text

## Response `200`

Successful Response

- object

## Other responses

- `400`: Invalid experiment ID format
- `403`: User may not edit this experiment's campaign
- `404`: No such experiment
- `409`: The experiment is not running, or a live rule already pins one of these sections
- `422`: There is no experiment group with pins to keep

## Changes

- **2026-09-03** `219a10b80707`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outrival/apis/fastapi/changes/api/v1/experiments/:experiment_id/promote-to-rule/post.md)

---

[API](https://skmtc.dev/outrival/apis/fastapi.md) - [All operations](https://skmtc.dev/outrival/apis/fastapi/llms.txt) - [OpenAPI document](https://skmtc.dev/outrival/apis/fastapi/revisions/f27d90300b5e?raw)
