Documentation
Sign inGet started

bird email send

Usage

कोड उदाहरण
bird email send [flags]

Description

Send an email message.
Sending is outbound and irreversible: it reports "accepted", not "delivered" — read the message back with "bird email get" to confirm delivery. Send inline content with --subject and --html/--text, or a stored template with --template.
Build the request from flags, a JSON EmailMessageSendRequest body via --body-file ("-" reads stdin), or both — a flag overrides the matching body field. Run --example to print a ready-to-edit body, or --dry-run to print the resolved request without sending it.

Examples

कोड उदाहरण
# print the body shape (no credentials needed)
bird email send --example

# the body it prints:
कोड उदाहरण
{
  "category": "transactional",
  "cc": ["manager@bird.com"],
  "from": {
    "email": "hello@bird.com",
    "name": "Bird Support"
  },
  "headers": {
    "X-Campaign": "spring-2026"
  },
  "html": "<h1>Hi there 👋</h1>",
  "metadata": {
    "user_id": "usr_12345"
  },
  "reply_to": ["support@bird.com"],
  "subject": "Welcome aboard",
  "tags": [
    {
      "name": "category",
      "value": "welcome"
    }
  ],
  "text": "Hi there",
  "to": [
    {
      "email": "customer@bird.com",
      "name": "Jane Doe"
    }
  ],
  "track_clicks": false
}
कोड उदाहरण
# send a stored template with variable values
bird email send --from hello@bird.com --to alice@bird.com --template welcome-email --parameters '{"first_name":"Alice"}'

# preview the resolved request without sending
bird email send --body-file body.json --dry-run

Options

Recipients

NameDescription
--fromSender address; must be on a verified domain
--to <v1,v2,…>Recipient address; repeatable. Accepts bare addresses or RFC 5322 "Name <addr>" form
--cc <v1,v2,…>CC address; repeatable. Accepts bare addresses or RFC 5322 "Name <addr>" form
--bcc <v1,v2,…>BCC address; repeatable. Accepts bare addresses or RFC 5322 "Name <addr>" form
--reply-to <v1,v2,…>Reply-To address; repeatable. Accepts bare addresses or RFC 5322 "Name <addr>" form

Content

NameDescription
--subjectSubject line
--htmlHTML body
--html-fileRead the HTML body from a file
--textPlain-text body
--text-fileRead the plain-text body from a file
--attach <v1,v2,…>Attach a file by path; repeatable

Template

NameDescription
--templateSend by a stored template: its id (emt_…) or name (mutually exclusive with --subject/--html/--text)
--parametersSubstitution values as a JSON object (e.g. {{ first_name }} tokens); applied to the stored template on a template send, or to the inline subject/body otherwise

Labels & metadata

NameDescription
--header <key=value>Custom header as Key=Value; repeatable
--tag <key=value>Tag as name=value; repeatable
--metadataArbitrary JSON metadata object

Delivery

NameDescription
--categorySuppression policy: marketing (default) or transactional
--ip-pool-idIP pool id (ipp_…) to send from
--track-opensTrack open events (default true)
--track-clicksTrack click events (default true)
--scheduled-atSchedule the send for a future time (RFC 3339, e.g. 2026-07-10T09:00:00Z); 30s to 30d ahead

Request

NameDescription
--body-fileRead the JSON request body from this file; "-" reads stdin
--examplePrint a complete example request body, then exit
--dry-runPrint the resolved request without sending it, then exit
--idempotency-keyDeduplication key; a retry with the same key won't act twice

Options

NameDescription
--response-schemaPrint the fields this command returns, then exit
NameDescription
bird email cancelCancel a scheduled message
bird email contentGet stored message content
bird email getGet a message
bird email listList messages
bird email recipientsList recipients of a message
bird email send-batchSend a batch of email messages in one call.