---
title: "Intake Source Activate"
method: POST
path: "/v1/intake/sources/{src_id}/activate"
---

# Intake Source Activate

`POST /v1/intake/sources/{src_id}/activate`

## 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/intake/sources/{src_id}/activate`
- Auth: none declared

Operator gate — flips status pending → active. Until activated, the
intake worker skips the source.

Also resets ``consecutive_failures`` to 0 and clears ``last_error``
on transition. Without this reset (pre 2026-05-31), re-activating a
previously-auto-disabled source would carry the old failure streak
over — one more failure would immediately re-auto-disable it. Worse,
if status was manually flipped active by a sibling code path that
DIDN'T touch cf, the row sat at ``status=active, cf>threshold``
forever and burned poll cycles without ever firing the disable gate
(since the threshold check runs only at the cf++ moment). See triage
`/tmp/storyflo_intake_log_triage_2026_05_31.md`.

## Path parameters

- `src_id` string, required

## Query parameters

- `api_key` string, nullable

## Headers

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

## Response `200`

Successful Response

- IntakeSourceView
  - `id` string, required
  - `publisher_id` string, required
  - `kind` string, required
  - `tier` string, required
  - `status` string, required
  - `feed_url` string, required
  - `default_vertical` string, nullable, required
  - `poll_interval_minutes` integer, required
  - `last_polled_at` string, nullable, required
  - `last_error` string, nullable, required
  - `created_at` string, required

## 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)
