Skip to main content
POST
/
v1
/
emails
/
send
Send an email to a list of recipients
import { ParagraphAPI } from "@paragraph-com/sdk"

const api = new ParagraphAPI({ apiKey: "your-api-key" })
const result = await api.emails.send({
  subject: "Hello from Paragraph",
  body: "# Welcome\n\nThanks for reading.",
  emails: ["reader@example.com"],
})
{
  "accepted": 123,
  "skipped": [
    {
      "email": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

API key for authenticating protected endpoints. Pass as Bearer token in Authorization header.

Body

application/json

Body

subject
string
required

Subject line of the email

Required string length: 1 - 998
body
string
required

Email body. Markdown; rendered to HTML server-side. Max 100KB.

Required string length: 1 - 100000
emails
string[]
required

Recipient email addresses (max 10,000). Malformed addresses are returned in skipped with reason: "invalid" rather than rejecting the whole request.

Required array length: 1 - 10000 elements
Required string length: 3 - 254
dryRun
boolean

If true, run filtering and return the accepted/skipped split without scheduling delivery

Response

Send request accepted

accepted
integer
required

Number of recipients queued for delivery (or that would be queued when dryRun is true)

skipped
object[]
required

Recipients that were rejected, with the reason each one was skipped. scheduling_failed means filtering passed but the delivery task could not be queued — retry these addresses.