Changelog
September 28, 2026
Dashboard
- Repaired when the app opens. Browsers sometimes replace a device’s push registration. When you open the app, EmitKit moves your notification settings to the new one, with your per-organization and channel choices kept. If the browser dropped it altogether, EmitKit registers again without asking.
- “Notifications stopped on this device”. If push was on and nothing reaches the device any more, the app says so. Turn back on registers it afresh. If notifications are blocked in the browser or phone settings, the app says that instead.
- Signing out stops pushes. A device you sign out of no longer gets your account’s notifications, so the next person using it doesn’t see them. Turn notifications on again after you sign back in.
September 28, 2026
Dashboard
- Codes instead of magic links. Continue with Email Code emails you a six-digit code that expires after 5 minutes. On iPhone, a link from Mail opened in Safari, which keeps its own sign-in, so the app on your Home Screen stayed signed out. You type a code into the app itself, and iOS offers it from Mail above the keyboard. Asking again resends the same code, and after three wrong tries you need a new one.
- Back to where you were. Signing in from a link, such as a notification you tapped while signed out, now opens that page. Before, it could end on an error page instead.
September 26, 2026
API
- Buttons and fields on events. Add
actionswith anid(buttons) andfields(a choice, text, a number or yes/no) to an event, and it waits for an answer. The push opens an answer page; the first person to answer decides. Links (actionswith aurl) work on any event. See Ask for a decision. - Read events back.
GET /v1/events/{id}returns an event with its answer, andPOST /v1/events/{id}/cancelstops one from waiting. - Error codes. Every error body now carries a stable
code, such asvalidation_errorornot_found, and validation errors say how to fix each problem. - MCP.
createEventcan ask, and the newgetEventandcancelEventtools read and cancel.
September 26, 2026
API
callbackUrl. Send it with a question and EmitKit POSTs the answer (event.answered), or the expiry (event.expired), to your endpoint, signed the Standard Webhooks way with your project’s callback secret (Settings → API keys). Failed deliveries are retried for about 16 hours with the samewebhook-id. See Callbacks.resume. Up to 65,536 characters of your own state, sent back as is in the callback andGET /v1/events/{id}, so a serverless handler can carry on without a database.- Delivery status.
GET /v1/events/{id}showscallback: attempts, the last status and when it was delivered.
September 26, 2026
API
GET /v1/events. The Project’s events, newest first, with their answers. Filter bychannel,sinceandbefore; page withnextCursor. MCP:listEvents.GET /v1/channels. The channel names already in use. MCP:listChannels.GET /v1/me. Which Organization and Project a key belongs to, and what it may do.- Read-only keys. Choose Read-only when you create a key in
Settings → API keys. It reads events and channels and gets
403 forbiddenfor anything else; over MCP it only sees the read tools. See scopes. userIdin identify.POST /v1/identifytakesuserId, like events do.user_idstill works.- MCP authentication. A bad or rate-limited key now gets an HTTP
401or429for every MCP request, instead of an error inside a tool result.
September 26, 2026
SDK
@emitkit/js3 (npm install @emitkit/js@next). Typed requests and responses;ask()sends a question and waits for the answer from someone’s phone;events.get,events.list,events.cancel,channels.list,identities.deleteandme;verifyCallback()for callbacks; oneEmitKitErrorwith the API’scode; safe retries with an automatic idempotency key. No dependencies. See the SDK docs.- The CLI (
npx @emitkit/cli@next).emitkit send,ask(waits, with exit codes for scripts),events,tail,channels,identify, with--jsonfor agents. See CLI.
September 24, 2026
Dashboard
- One feed. The dashboard is now a single live feed. Pick a Project next to your organization’s name. Open any event to see its details right under it, including a link to show only that Channel.
- Pulse. Events over the last 24 hours, 7 or 30 days, compared with the period before.
- Revenue. Send
amountandcurrencyin an event’s metadata, for example"metadata": { "amount": 49, "currency": "EUR" }, and the dashboard shows the amount on the event and adds it up as revenue. See Metadata. - Readable details. Durations, sizes, percentages, dates, links and nested objects in metadata are formatted instead of shown as raw values.
September 24, 2026
Platform
EmitKit v3 is live at app.emitkit.com, with the API at api.emitkit.com.
- Dashboard. A live event console you can filter by Project, Channel, source, or text, with every event’s metadata a click away. Manage Projects and Channels, invite members with roles, and manage API keys. The dashboard installs as an app on your phone or computer.
- Push notifications. Turn them on in Settings → Notifications to get
events on your devices, for every Channel or only the ones you pick. Events
sent with
notify: falsestay quiet. - Erase a user on request.
DELETE /v1/identities/{user_id}deletes an identity and its aliases, so you can honour an erasure request straight away. - MCP server. Agents can create events, identify users, and erase
identities at
https://api.emitkit.com/mcpwith an API key. - Safer retries and clearer limits.
Idempotency-Keyreplays the first response for 24 hours. Authenticated responses carry rate-limit headers, and going over the limit returns429withRetry-After. - Documentation. Guides, the API reference, and this changelog now live
at
emitkit.com/docs, with Markdown andllms.txtversions for agents.
Accounts, Organizations, and API keys from the previous version of EmitKit
weren’t carried over. Sign up again and create a new API key: keys still start
with emitkit_, but old keys no longer work.
September 24, 2026
Platform
EmitKit has a new identity: a new mark and wordmark, Emit Blue, and the Geist typeface. You’ll see it in the dashboard, on the website, in these docs, in emails, in the installed app’s icon and in push notifications. Nothing about the API or your data changes.