1. Verify the domain you send from
In the dashboard, under Domains, add the domain your emails come from — acme.ng for receipts@acme.ng — and add the DNS records it shows at your DNS host. You can send from any address at a verified domain.
A new account starts in the sandbox: until we approve it, it sends only to its own members’ confirmed addresses, at most 100 a day. That is enough to try everything below with your own address.
2. Make an API key
Under API keys, make a key. Sending only is all sending needs; a full-access key can also read emails back. The key is shown once: keep it in your app’s secret settings, for example as the environment variable MDH_API_KEY, and never in code you commit.
3. Send
One POST /emails. The Idempotency-Key makes a retry safe: send the same request again with the same key and it is not sent twice (see Idempotency).
curl
Node
Python
PHP
The answer is the email’s id, with status 200:
It means the email is queued: our sender takes it from there. A refusal is JSON too, with a name and a message that says what to change — see Errors.
4. See what happened
The dashboard’s Emails log shows every email with its status and each event: sent, delivered, bounced and why. Your code can ask too, with a full-access key and the id:
Next: the API reference, the limits, and scheduling.