Sending

Reply to an inbound email

Changed on

Sends an outbound reply to the inbound email identified by id. Threading headers (In-Reply-To, References), recipient derivation (Reply-To, then From, then bare sender), and the Re: subject prefix are all derived server-side from the stored inbound row. The request body carries only the message body, optional From override, optional attachments, optional wait flag, and optional reply_all flag, which also copies every other To and Cc address of the inbound (never Bcc). Passing any header or explicit recipient override is rejected by the schema (additionalProperties: false).

Forwards through the same gates as /send-mail: the response status, error envelope, and idempotent_replay flag mirror the send-mail contract verbatim.

post/emails/{id}/reply

Request

  • Base URL: https://api.primitive.dev/v1
  • URL: https://api.primitive.dev/v1/emails/{id}/reply
  • Auth: HTTP bearer

Request body

body_textstring

Plain-text reply body. At least one of body_text or body_html is required. The combined UTF-8 byte length of body_text and body_html must be at most 262144 bytes (same cap as send-mail).

body_htmlstring

HTML reply body. At least one of body_text or body_html is required.

fromstring

Optional override for the reply's From header. Defaults to the inbound's recipient. Use to add a display name ("Acme Support" <agent@company.com>) or to reply from a different verified outbound address (e.g. multi-team routing where support@ triages to billing@). The from-domain must be a verified outbound domain for your org, same as send-mail.

waitboolean

When true, wait for the first downstream SMTP delivery outcome before returning, mirroring the send-mail wait semantics.

reply_allboolean

Reply to everyone on the email. To is the sender (or Reply-To) as in a plain reply; every other To and Cc address of the email becomes Cc, minus the replying address. Bcc is never read, so a blind copy stays blind. Every send rule applies to each recipient exactly as for a direct send with cc. Defaults to false.

Response

Outbound relay result. When the request was answered with an existing send instead of making a new one, the response carries Idempotent-Replayed: true and data.idempotency, and nothing was sent for this request.

successboolean required

Changes

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status

    • info

      removed the invalid_signup_code enum value from the / response property for the response status