Sending

Send email with POST /emails—status lifecycle, tracking, scheduling, attachments, and deep-dive guides for each feature.

Everything you need to call POST /emails (see API reference for https://api.piisend.com/api/v1/emails), poll status, and handle scheduling, tracking, and attachments.

POST /emails

Requires API key scope emails:send. Send either raw content (subject + html/text) or a template_id with template_vars—not both.

Optional header Idempotency-Key deduplicates retries for 24 hours. See the Idempotency keys guide.

Message lifecycle

statusMeaning
queuedAccepted; waiting for the worker
scheduledWill send at scheduled_at
sentHanded to the delivery stack
deliveringIn flight at the provider
deliveredConfirmed delivery event
failedSend or provider error
bouncedHard/soft bounce recorded
cancelledScheduled send cancelled before dispatch

Cancel a scheduled message with POST /emails/{id}/cancel while status is scheduled. Resend with POST /emails/{id}/resend.

Topic guides

Each feature has a dedicated guide with step-by-step instructions:

Related

Send lifecyclePOST /emailsqueuedsentdeliveringdeliveredfailed / bounced / cancelled are terminal branches from queued or delivering

Documentation

Integrate with the REST API

Quickstart, API reference, and webhooks—everything you need to send from your app.