API reference menu
Getting started
OverviewAuthentication and rate limitExamplesSending
Send a notificationPriority and repeatLinks, images and buttonsSourcesScheduled sendsWebhook templatesReceipts and replies
Receipts and callbacksRepliesTeams
Teams, roles and endpointsChannels and escalationWebhooks and emailAlert email and timelineTeam formsPlans, audit log and transferCompany sign‑in and SCIMThe web consoleAccount
Identity and moving phonesDevices, keys and historyThe Upgrade PassCompatibility
ntfy's publish APIProwl's APIAppendix
Endpoint indexErrors and status codesLimitsPriorities and fieldsGlossaryYour alert email and the timeline
Each alert is pushed to your devices as soon as it is sent. Email is the second channel, for the alerts you did not get to: "if I have not opened it after 5 minutes, email me", for alerts at or above a priority you choose. The rules are yours, not the team's, so they follow you onto every team you join. These calls take your account key (nla_…) or a signed‑in console session.
Email for the alerts you miss#
Take it means telling the team you are handling an alert: everyone on the channel sees who took it, and on a form submission it is the same as claiming it. Opened means you looked at it.
curl -X POST https://nowlark.com/v1/me/notifications/contacts -H "Authorization: Bearer nla_…" \
-H 'Content-Type: application/json' -d '{"address":"ana@yourcompany.com"}'
# {"id":"cm_…","kind":"email","address":"ana@yourcompany.com","verified":false,"paused":false,"created_at":…}
- An address is confirmed first. Adding one emails it a link; nothing else is sent to it until you press
Confirm on the page the link opens. Up to 2 addresses.
POST …/contacts/{id}/resendsends a new link;DELETE …/contacts/{id}removes the address and its rules. - A default that needs nothing else. Confirming your first address gives you one rule: email after 5 minutes if you have not opened it, for Normal and above. Change it or remove it like any other rule.
- Rules.
PUT /v1/me/notifications/ruleswith{"rules":[{"contact_id":"cm_…","delay":300,"min_priority":1}]}replaces all your rules, the default included (up to 5;{"rules":[]}for no email).contact_idis theidfrom adding the address.delayis 0, 60, 120, 300, 600, 900, 1800 or 3600 seconds.min_priorityis the lowest priority the rule emails, on the five-step scale-2Very low,-1Low,0Normal,1High,2Urgent;-2means every alert. - When the wait starts. At the moment the alert reached you: when it was sent, or, if you are in a later escalation tier, when that tier was notified. A rule reads the priority your copy arrived with, after any cap you set on that source, and a source you muted is never emailed.
- Nothing is sent once it is dealt with. Whether to send is decided when the rule is due. If by then you
opened it, anyone took it, a question alert was answered, or (on a channel where one person opening it counts
for everyone,
ack_policy: any) anyone opened it, no email goes out. - Quiet hours.
PUT /v1/me/notifications/quietwith{"start":1320,"end":420,"timezone":"Europe/London"}(minutes after midnight in your zone: this is 22:00 to 07:00). During them, email for High and below waits until they end and is sent then only if still unopened; Urgent is always sent at once. Send{"start":null,"end":null}to turn them off. On iPhone and Mac, Focus covers your devices, and High and Urgent break through it. - Your switch per channel.
PUT /v1/channels/{id}/me/emailwith{"email": false}stops your rules for that channel only. Push is unchanged. - The team's switch. An admin can turn members' alert email off for the whole team with
PUT /v1/teams/{id}/notifications{"member_email": false}; it also stops email already waiting.GETon the same path shows admins each member's set‑up (whether they have a confirmed address, their rules in words, whether they keep quiet hours) and each channel's escalation, email recipients and "nobody took it" wait. - The email. Subject
[Team / channel] Title, then the alert, then two links: Take it and Open it. Opening a link changes nothing (mail scanners open every link); the Take it button on the page it opens takes it as you. A link works for that one alert and that one action, signs no one in, and stops working after 7 days. Every email has a one-click unsubscribe that pauses the address;…/resendand the new link turn it back on. - Limits. Each person gets at most 30 alert emails an hour. Past that, an email is not sent and the alert's timeline says so; the push still arrives.
GET /v1/me/notificationsreturns your addresses, your rules (each with awordsline such as "email if unopened after 5 minutes, for Normal and above"), quiet hours and the choices on offer.POST /v1/me/notifications/testsends a test email to every confirmed address.
The timeline of an alert#
curl https://nowlark.com/v1/channels/chn_…/threads -H "Authorization: Bearer nla_…"
curl https://nowlark.com/v1/channels/chn_…/threads/ntf_…/timeline -H "Authorization: Bearer nla_…"
The first lists the channel's 30 latest alerts, newest first, each with a state: unopened (nobody has
opened it), opened (someone looked at it) or taken. The second says who was told, how and when, oldest
first: the send, each push (and on how many devices), each escalation tier (notified, or not needed because
it had been opened), each email a rule sent or why it did not (opened, taken, quiet hours, the hourly limit),
each email recipient and webhook, who opened, took or answered it, and what is still to come
("upcoming": true). Anyone on the channel may read it. Admins see addresses in full; everyone else sees
them masked (a…@yourcompany.com).