POST /v1/send with an mk_live_ key. GET /v1/status needs no auth at all, so your monitoring can check us without holding a credential.
reputation, deliverability by recipient domain, provider breakdown across Gmail/Outlook/Yahoo, SMTP error-code diagnostics, and bounce-spike anomaly detection — all under /motor-blocks/{id}/.
Create, update and delete webhooks per block, fire a test delivery on demand, and read back the delivery history and success stats. Most providers make you guess.
Kick off an async export job, poll it, and download through a signed URL — or use the preview endpoint to read recent logs without creating a job at all.
GET /motor-blocks/{id}/events/stream is server-sent events on the public API, not a dashboard-only feed. Tail one project’s delivery events in real time.
Short-lived analytics bearer tokens minted from an ak_live_ key, mk_live_ keys for send, and full OAuth 2.0 (authorize / token / validate) when a third party needs delegated access.
mk_live_ for sending, or mint a short-lived bearer from an ak_live_ key for the analytics surface.
POST /v1/send. Validate first if you want — the endpoint supports a validate-only mode.
Read the message timeline, or subscribe to the SSE stream for that Motor Block.
Register a webhook, fire a test delivery, then watch its own delivery stats.
Paths are relative to /api/public/v1. Sending lives at POST /v1/send.
Each of these is scoped to a single Motor Block, so the numbers describe one project rather than an account-wide average.
Full CRUD per block, plus the delivery history and success stats for the webhooks themselves.
Async export jobs with signed download URLs, and a live server-sent event stream per block.
Is there an OpenAPI document?
Yes — the live spec is published at docs.motorical.com/openapi.json, and the MCP server exposes it as a resource so an AI agent can read the current contract directly.
Why are the analytics endpoints scoped to a Motor Block?
Because pooled analytics hide problems. If a client newsletter starts collecting complaints, an account-wide average absorbs it while your password-reset delivery quietly degrades. Per-block numbers make that visible.
Can I get delivery data out in bulk?
Yes. Create an export job for a Motor Block, poll its status, and download the result through a signed URL. For quick checks the preview endpoint returns recent logs with no job at all.
What about campaign and contact-list endpoints?
Those belong to Bulk Sending and live under a separate Communications API — campaigns, lists, recipients, templates, suppressions and tracking. See the Bulk Sending product page.