---
title: "Ingest"
method: POST
path: "/v1/admin/declassified/ingest"
tags: ["declassified-admin"]
---

# Ingest

`POST /v1/admin/declassified/ingest`

## 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/declassified/ingest`
- Auth: none declared

Bulk-ingest declassified cases from a manifest URL, as a background job.

Runs the same pipeline that created the existing cases (download PDF →
Groq narration → ElevenLabs audio → R2 → INSERT persona_briefings), inside
the app. Returns a ``job_id`` immediately; poll ``/ingest/status/{job_id}``.
Published rows appear on every ``/v1/declassified/*`` surface automatically.
~$1/case ElevenLabs — the caller owns the spend decision via ``limit``.

## Headers

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

## Request body

- IngestRequest
  - `manifest_url` string, required
  - `limit` integer
  - `skip` integer
  - `publish` boolean
  - `purge_drafts` boolean

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