MailcrateDocs

API Reference

Every public endpoint, generated from the API itself, with the conventions they all share.

The pages under this section document every endpoint of the public API: its parameters, request and response bodies, and the scope its key needs. They are generated from the API's own source code, so they change when the API does. The same description is available as an OpenAPI spec at /openapi.json.

Conventions

These hold on every endpoint, so the individual pages do not repeat them.

ConventionWhat holds
Base URLhttps://api.mailcrate.io. Every workspace endpoint lives under /public/.
AuthenticationAuthorization: Api-Key mc_... on every request. See Authentication.
ScopesEach page names the scope it needs, such as sending:write. On workspace endpoints GET needs read and everything else needs write. Organization endpoints use read and manage, and a few name their own scope, such as workspaces:provision. See API Keys & Scopes.
BodiesJSON in, JSON out. Send Content-Type: application/json on writes.
Status codes200 for success, POST included. A few POSTs answer 201 instead, mostly ones that create a credential or a workspace; each page shows which.
IdsUUIDs. Contacts also accept their external identifier where an id is expected, and some routes accept an email address (the path parameter is then called idOrEmail). Templates accept their slug.
TimesISO 8601 strings in UTC, such as 2026-10-21T09:30:00.000Z.
ListsPaged with limit and offset, in a { data, total, limit, offset } envelope. See Pagination.
ErrorsOne envelope everywhere. Branch on the status and code, never on message. See Errors.
Rate limitsPer key, with X-RateLimit-* headers on every response. See Rate Limits.

Every workspace endpoint acts on the workspace that owns the key. None of them take a workspace id.

Resources

External audiences, branding and hosted page domains are in the sidebar too.

Response bodies

Request bodies and parameters are complete. A handful of responses, mostly deletes and previews, are not described in detail yet; they are JSON objects, and the page says so when the shape is open. The descriptions fill in as the API's response types are tightened.

On this page