Skip to main content

Base URL

All endpoints accept and return JSON. Request bodies are validated with zod; invalid input returns 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:
A missing key returns 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 an error 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.

Resources