Base URL
400 with the validation issues in the error field.
The dashboard at app.sente.run talks to Sente through its own internal proxy (
api.sente.run/api/sente/*, session-authenticated) — that is not the public API. Integrations always use https://api.sente.run/v1 with an API key.Authentication
Every/v1 endpoint requires an API key. Create one on the dashboard (API keys page). Keys look like sk_sente_... and are stored hashed — copy the key when it is shown.
Pass the key either way:
401 {"error":"missing api key"}; an unknown or revoked key returns 401 {"error":"invalid api key"}.
Keys are org-scoped. Every resource belongs to the organization that created it. Requesting another org’s resource returns 404 — the API never confirms that a resource exists outside your org.
Error format
Errors are JSON objects with anerror field. Errors your code should branch on also carry a stable code:
Rate and abuse caps
Sente sends from a shared domain and drives real browsers, so per-org caps protect deliverability and capacity for everyone. Defaults below; plan-level caps vary — see Limits.
Caps are checked before any side effect — a
429 send never reached the mail provider, a 429 run never started a browser.
