Skip to main content
Outbound

Send a test email to yourself

Sends one preview to the authenticated admin, never to campaign recipients. No body is required. Optionally supply revision and/or idempotencyKey. Uses the same preview limiter and rendering as the dashboard. This is a real email send, not a dry run. Without a key, another request can send another email. sent:true means the email provider accepted the request, not confirmed inbox delivery.

POST
/v2/outbound/messages/{outboundMessageId}/test_email

Optional protections: idempotencyKey enables safe retries; revision on existing campaigns rejects stale changes. Neither is required, and they can be used independently. Without a key, each request is a new operation and does not create an operation receipt; do not blindly retry an uncertain create or send. Without a revision, a change can overwrite a concurrent edit. With a key, keep the exact request on retries. Completed results replay for at least 7 days. Changed input returns idempotency_conflict; a concurrent retry returns operation_pending. For operation_outcome_unknown, inspect the Outbound-Operation-Id receipt before another operation. Schedule synchronization stays durable with or without these fields.

Authorizationstringheaderrequired

API key as Bearer token. Use: Authorization: Bearer sk_...

outboundMessageIdstringrequired

Outbound message ID

Example: 6457e3ff70afca5d8c27dccc
Featurebase-Versionenum<string>header

API version for this request. Defaults to your organization's configured API version if not specified.

Available options: 2026-09-03.pulsar, 2026-08-19.orbit, 2026-01-01.nova, 2025-12-12.clover
Example: 2026-09-03.pulsar

Body

application/json
idempotencyKeystring

Optional retry protection. Keep the same key and request when retrying. Without a key, each request is a new operation.

Required string length: 8 - 128
Pattern: ^[a-zA-Z0-9_.:-]+$
Example: welcome-campaign-2026-10-01
revisioninteger

Campaign version returned by GET. Optionally send it with a mutation to reject stale changes.

Required range: 0 <= x

Response

application/json

Success

objectenum<string>required
Available options: outbound_test_email
recipientenum<string>required
Available options: current_admin
sentenum<boolean>required
Available options: true