Skip to content

Email qube

The email qube sends and receives transactional email on a domain you own.

CapabilityNotes
SendOne email per call, JSON body with from, to, subject, text/html.
ReceiveInbound emails to any address on the domain are stored and exposed via API + webhook.
ThreadingReply detection works via standard In-Reply-To and References headers.
Suppression listBounces and complaints auto-add. Read and prune via API.
WebhooksDelivered, bounced, complained, opened, clicked events emitted to your endpoint.
TemplatesOptional named templates with variable substitution.
Multiple from-addressesAny address on the domain can be a sender; aliases are not enforced.
  • domain (string, required): the domain to send from. Must be managed by a domain qube on the same project, or a BYO domain with DNS pointed at CloudQube.
  • webhook_url (string, optional): your endpoint to receive event notifications.
  • domain (string): the verified sender domain.
  • dns_status (enum): pending, verified, failed. Reflects SPF/DKIM/DMARC publication state.
  • inbound_address (string): the address inbound email is forwarded to before being routed.
RecordPurpose
SPF (v=spf1 ...)Authorises the sender
DKIM CNAMESigning key for outgoing email
DMARC TXTReporting and policy enforcement
MXRoutes inbound to the email qube
  • Per send: a small per-email fee, drawn from your prepaid balance.
  • Per inbound: free up to a generous monthly cap; metered above.
  • Webhook deliveries: free.
  • Suppression list reads/writes: free.
  • POST /v1/email/send — send one email.
  • GET /v1/email/messages/{id} — fetch a single message.
  • GET /v1/email/inbound — list inbound messages.
  • GET /v1/email/suppressions — list suppressed addresses for this project.
  • DELETE /v1/email/suppressions/{address} — resubscribe one address.

The suppressions endpoint is project-scoped. A suppression on one of your projects does not leak into another. (This was a hard-learned guarantee; see the project’s release notes for the date the project-scope fix landed.)

EventWhen
email.deliveredRecipient mailbox accepted the message
email.bouncedHard or soft bounce; address added to suppression list on hard
email.complainedRecipient marked as spam; address added to suppression list
email.openedTracking pixel loaded (if tracking enabled)
email.clickedTracked link clicked (if tracking enabled)
CodeMeaningWhat to do
domain_unverifiedDNS records not yet published or propagatedWait, then retry
recipient_suppressedThe address is on your suppression listResubscribe explicitly if intended
from_invalidThe from address is not on a verified domainUse a verified domain
rate_limit_exceededToo many sends in the time windowBack off, retry