---
title: "Normalize Release Candidate"
method: POST
path: "/api/v1/campaigns/{campaign_id}/flow-launch-gate/normalize"
tags: ["launch-gate"]
---

# Normalize Release Candidate

`POST /api/v1/campaigns/{campaign_id}/flow-launch-gate/normalize`

## 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/campaigns/{campaign_id}/flow-launch-gate/normalize`
- Auth: HTTP bearer

## Path parameters

- `campaign_id` string, required

## Request body

- NormalizeCandidateRequest
  - `canonical_manifest` string, required
  - `variant` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `403`: Staff access required
- `422`: Invalid candidate manifest

## Changes

- **2026-10-15** `5c526cd7fb41`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outrival/apis/outrival-api/changes/api/v1/campaigns/:campaign_id/flow-launch-gate/normalize/post.md)

---

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