---
title: "Admin Outreach Fire Batch"
method: POST
path: "/v1/admin/outreach/fire-batch"
---

# Admin Outreach Fire Batch

`POST /v1/admin/outreach/fire-batch`

## 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/outreach/fire-batch`
- Auth: none declared

Persona-aware cold-outreach blast for the 152-publisher campaign.

Selection (2026-05-16 additive):
    * ``publisher_ids``  - exact Publisher.id UUID list (legacy).
    * ``publisher_slugs`` - Publisher.tenant_slug list; resolved to
      ids server-side, unknown slugs surfaced in ``skipped``.
    * If BOTH are provided, the resolved set is the UNION (deduped).
    * If NEITHER is provided, falls back to the default cohort:
      contact_email IS NOT NULL AND cold_outreach_message_id IS NULL,
      ordered by tier_band DESC then created_at DESC, limited by
      ``batch_size``.

Safety:
    * ``is_book_author=True`` publishers are HARD-SKIPPED at the
      send layer unless the operator explicitly passes
      ``allow_book_authors=True``. This is independent of the
      upstream book_filter narration gate (belt-and-suspenders).

Returns ``{dry_run, selected, sent, failed, monday_flipped,
message_ids, errors, skipped}``.

## Headers

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

## Request body

- FireBatchBody
  - `batch_size` integer
  - `persona` string
  - `dry_run` boolean
  - `publisher_ids` string[], nullable
  - `publisher_slugs` string[], nullable
  - `allow_book_authors` boolean
  - `subject_variant` integer, nullable

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