Three SDKs, a CLI and an MCP server
The same API from TypeScript, Python, Go, a terminal or an agent.
The same API from TypeScript, Python, Go, a terminal or an agent.
One document
So a client retries the right failures without a table of codes.
{
"error": {
"code": "concurrent_idempotent_requests",
"message": "A request with this idempotency key is still being processed. Retry shortly.",
"retryable": true,
"request_id": "req_019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b"
}
}snake_case JSON in and out, and ids that sort by the time they were made.
GET /v1/logs finds a request by its idEach profile keeps a live and a test key apart.
minket send --to rui.okafor@example.com --template receipt --var order=10452 minket logs tail --events --types email.bounced,email.complained minket templates push emails/receipt.tsx --alias receipt --publish
Each tool takes the same fields as the API; broadcasts and automations stay read-only.
dry_run: true, nothing is sentEvery route, its schema and its errors.
Bring a project over one step at a time.
The full list of codes.
10 requests a second per key by default, up to 100.
10,000 live emails per project a day by default.