Admin Cold Outreach Fire Now
Manually fire the cold-outreach auto-tick.
Same code path as the 15:00 UTC scheduler tick — vertical-balanced selection from the warm pool, REMOVE-handler gate respected, Postmark-throttled sends, end-of-run TG digest.
Response contract
- dry_run=true (default) → 200 with the planned selection preview. Synchronous; no kv writes; no Postmark traffic.
- dry_run=false → 202 + {"job_id": "...", "status": "queued", "candidates_to_attempt": int}. The actual fire runs in a FastAPI BackgroundTasks task; poll GET /v1/admin/cold-outreach/fire-now/{job_id}/status for progress + final counts.
- dry_run=false when a previous run is still in-flight → 409 with {"job_id": "<in-flight uuid>", "status": "running"} so the caller can pivot to the status endpoint without queueing a duplicate run.
Use dry_run=true to preview the template + vertical mix before flipping AUTO_COLD_OUTREACH_ENABLED=1.
Query params
dry_run: Default true. false actually sends. Live sends still respect the 23h idempotency window — to override it for a legitimate same-day re-fire, ALSO pass skip_idempotency=true. quota: Override the per-run send budget. Capped at the env AUTO_COLD_OUTREACH_DAILY_QUOTA value inside the worker — the route layer just forwards the param. skip_idempotency: Only honored by the worker when also dry_run=false. The scheduler tick NEVER sets this (so the daily idempotency guard stays in force).
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/cold-outreach/fire-now
- Auth: none declared
Query parameters
Headers
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.