---
title: "Conclude or cancel a running experiment"
method: POST
path: "/api/v1/experiments/{experiment_id}/conclude"
tags: ["experiments"]
---

# Conclude or cancel a running experiment

`POST /api/v1/experiments/{experiment_id}/conclude`

## 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}/conclude`
- Auth: HTTP bearer

End the experiment with the posterior frozen at the decision.

The readout is computed first and stored with the conclusion, so the record
says what the person pressing the button was looking at. Without it two
people reading the experiment a week apart see different numbers with
nothing on screen to say which one was decided on. The returned ``readout``
summary carries ``p_better`` as a probability in 0..1.

## Path parameters

- `experiment_id` string, required

## Request body

- ConcludeExperimentRequest: How a running experiment ends, and why.
  - `outcome` 'concluded' | 'canceled', required: How a running experiment ended. Mirrors ``conclude_experiment``.
  - `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
- `422`: An outcome that is neither 'concluded' nor 'canceled'

## Changes

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

[Operation history](https://skmtc.dev/outrival/apis/fastapi/changes/api/v1/experiments/:experiment_id/conclude/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)
