Skip to content
Sendtier Docs
API reference

Stream changes for the selected dashboard tenant

Source: OpenAPI (openapi/openapi.yaml).

curl -X GET "https://api.sendtier.example/dashboard/events" \  -H "Authorization: Bearer st_live_REPLACE_ME"
"string"
GET
/dashboard/events

One server-sent events stream per dashboard tab. Select a current membership with Sendtier-Tenant; the sole membership is the default. Sendtier-Mode defaults to live and filters email events by the email's test mode. API keys receive 403. Last-Event-ID resumes email events with a two-second overlap; deduplicate by id. Without it, replay the last two minutes. Replay pages forward by created_at and id, up to five pages of 200 rows per pass; exceeding 1000 rows sends reset so the client refetches. Email hints only rewind within the last two minutes and retained history. Domain and webhook hints are not durable. Starts with retry: 3000 and a comment; comment pings arrive every 20 seconds. The stream closes after 50 minutes; reconnect with Last-Event-ID. Membership is rechecked every 60 seconds on a ping; removal closes without reset. In-process limits are five streams per user and 25 per tenant.

Authorization

dashboardToken
headerAuthorizationBearer <token>

Dashboard server token: EdDSA Ed25519, issuer is the dashboard origin, audience sendtier-api, iat and exp are required with a maximum lifetime of 15 minutes, sub is the identity subject, email is required. Sendtier-Tenant selects a membership; omission selects the sole membership. Without a selected tenant only GET /me and POST /organizations are available. Sendtier-Mode is live (default) or test; test mode cannot create live keys. Owners, admins and developers have full access. Viewers may only GET or HEAD.

Header Parameters

Last-Event-ID?string
Sendtier-Tenant?string
Sendtier-Mode?string
Default"live"
Value in"live""test"

Response Body

SSE frames contain only identifiers, event types, statuses and UTC RFC 3339 times. email has id: and data {"id":"evt_...","email_id":"em_...","type":"email.delivered","occurred_at":"2026-10-06T12:00:00Z"}. domain has no id and data {"domain_id":"dom_...","status":"verified"}. webhook_delivery has no id and data {"delivery_id":"whd_...","webhook_id":"wh_...","status":"succeeded"}. reset has no id and data {}; refetch everything after an overflow or slow-client disconnect. No addresses, subjects, bodies, URLs or secrets appear in any frame.

response?stringtext/event-stream