---
title: "Queue outreach pitches for sending"
method: POST
path: "/v3/outreach/outbox/queue"
tags: ["Outreach"]
---

# Queue outreach pitches for sending

`POST /v3/outreach/outbox/queue`

**Sends real email to real people.** Queues one pitch per contact; with sendNow they go out immediately, otherwise they are paced across the mailbox's daily limit. This cannot be undone once a message leaves - use outreach_queued and the unqueue endpoint to pull back anything still waiting. Write the subject and body yourself, one per contact, personalised to the page named on the prospect. Get contact IDs from outreach_prospect_emails; an address that is not on one of this team's prospects is rejected. Queueing the same contact twice is a no-op, so a retry cannot double-send. Items missing a subject, a body or a valid contact are skipped rather than failing the batch, and the call only errors if nothing at all could be queued - so compare the returned count against what you sent.

## Request body

- object
  - `items` object[], required — One entry per recipient.
    - `prospectEmailId` string — Contact address ID from outreach_prospect_emails. Must belong to a prospect this team owns. An entry without one is skipped.
    - `subject` string — Subject line for this recipient, truncated past 500 characters. Merge variables are already resolved by the caller.
    - `body` string — Body for this recipient, truncated past 50000 characters. Markdown is rendered; newlines are kept as written, so write it the way it should read.
    - `prospectId` string — Ignored. The prospect is resolved from prospectEmailId so a crafted body cannot attach a contact to someone else's row.
  - `sendNow` boolean — Send immediately instead of pacing across the daily limit. Leave false unless the user asked for it.
  - `sendingAccountId` string — Send from one specific mailbox. Omit to rotate across all connected mailboxes.

## Response `200`

Default Response

- object
  - `queued` integer
  - `queuedConversationIds` string[] — Newly queued conversation IDs. Read their delivery status from the outbox emails list; these are not worker job IDs.
  - `updated` integer
  - `skipped` integer
  - `sendNow` boolean
  - `spacingMs` number

## Changes

- **2026-09-17** `ea8bce67cd7e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/snowseo/apis/snowseo-api/changes/v3/outreach/outbox/queue/post.md)

---

[API](https://skmtc.dev/snowseo/apis/snowseo-api.md) · [All operations](https://skmtc.dev/snowseo/apis/snowseo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/snowseo/apis/snowseo-api/revisions/623d4784f6e6?raw)
