---
title: "Confirm Source Route"
method: POST
path: "/v1/admin/greenlight/candidates/{candidate_id}/confirm-source"
tags: ["admin-greenlight"]
---

# Confirm Source Route

`POST /v1/admin/greenlight/candidates/{candidate_id}/confirm-source`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/admin/greenlight/candidates/{candidate_id}/confirm-source`
- Auth: none declared

Approve / override the discovered source for a candidate that source
discovery flagged ``source_needs_confirm`` (audio- or video-typed, or a
borderline text feed — the §3 "never auto-attach" rule). Attaches the
admin's ``feed_url``, provisions if needed, and advances the candidate to
``provisioned`` — the next source-discovery tick then sends the invite.

404 when the flag is OFF (before auth) OR the candidate does not exist;
409 when the candidate is not awaiting confirmation.

## Path parameters

- `candidate_id` string, required

## Query parameters

- `api_key` string, nullable

## Headers

- `x-storyflo-email-token` string, nullable
- `x-storyflo-key` string, nullable
- `x-readout-key` string, nullable

## Request body

- ConfirmSourceRequest: The admin's chosen / overridden ingestion feed for a candidate that source discovery flagged ``source_needs_confirm`` (PR-3).
  - `feed_url` string, required

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
