# Notify > Your agent asks, you answer, it continues. Notify connects scripts, services, and agents > with people through human decisions, inbox updates, task progress, and hosted web apps. Notifications use Expo on iOS and FCM on native Android. > iOS progress uses ActivityKit; native Android uses ordinary ongoing progress notifications. > Provider acceptance does not prove device receipt, display, or a human answer. ## Docs - [Documentation](https://notify.belweave.ai/docs): Make Notify part of your workflow — task guides followed by delivery, consent, protocol, and tool references. - [Get connected](https://notify.belweave.ai/docs/quickstart): accounts, device registration, webhook credentials, MCP clients, and CLI setup. - [Send an update](https://notify.belweave.ai/docs/send-update): webhook and terminal sends, inbox projects, and tap destinations. - [Ask for a decision](https://notify.belweave.ai/docs/ask-decision): human questions, confirmed answers, cancellation, and agent permission hooks. - [Track work](https://notify.belweave.ai/docs/activity-api): start, update, and end a task on supported devices. - [Bring a web app](https://notify.belweave.ai/docs/web-apps): add any HTTPS site; optionally request consent with microAuth() and verify its origin-bound pass. - [Delivery and reliability](https://notify.belweave.ai/docs/delivery): provider acceptance, safe retries, targeting, quotas, and activity lifecycle. - [Connect internal services](https://notify.belweave.ai/docs/connect): OpenTunnel relay on clawchest.com, `notify connect`, signed callbacks, and pass SSO. - [Complete documentation](https://notify.belweave.ai/llms-full.txt): full guides and API operations in one text file. - [API explorer](https://notify.belweave.ai/docs/api): request and response schemas and authenticated playground. - [OpenAPI specification](https://notify.belweave.ai/openapi.json): generated Notify Agent API contract. - [Documentation as markdown](https://notify.belweave.ai/docs.md): the same content as plain markdown. - [Agent documentation](https://notify.belweave.ai/agents.md): agent-oriented alias of the complete Markdown docs. - [Coding-agent permission setup](https://notify.belweave.ai/docs/ask-decision#cli-permissions): Claude Code, Codex, OpenCode V1, and OpenCode V2. - [Agent API OpenAPI document](https://notify.belweave.ai/api/agent/openapi.json): every token-authenticated route with its scopes and schemas. ## Product - [Home](https://notify.belweave.ai/): product overview and webhook example. - [Pricing](https://notify.belweave.ai/pricing): free, unlimited personal and family use; Teams availability, features, and pricing are TBD. - [Native clients](https://notify.belweave.ai/docs/quickstart#create-a-service): sign in on iPhone or Android and register your device for notifications. ## Agent tools - [MCP endpoint](https://notify.belweave.ai/mcp): connect a remote MCP client using OAuth; see [MCP setup](https://notify.belweave.ai/docs/quickstart#mcp-connect). - [Notify agent skill](https://notify.belweave.ai/SKILL.md): instructions for sending updates, asking for decisions, and tracking work safely. - Download the versioned CLI bundle from [Notify Tools releases](https://github.com/Belweave/notify-tools/releases). Requires Node.js 22.13 or newer; no npm package installation is needed. ## Live Activity text Suggested visible-character budgets, not guaranteed fit or API hard limits: proportional glyphs, device width and accessibility text size change fit. 0 means hidden. Expanded and Lock Screen subtitle replaces status on line 2; compact and small banners retain status. Omitted subtitle uses status. Overflow shares the two-line detail area with explicit detail. Compact percentage takes precedence over status when progress is supplied; terminal shows percentage or its prompt icon and never status. Expanded budgets (title/line 2/detail): standard 32/36/100; ring 32/30/80; hero 24/36/100; terminal 36/40/100; steps 32/36/100. Compact title/subtitle/detail are hidden; status budget is 8 without progress, except terminal 0. See [field and layout guidance](https://notify.belweave.ai/docs/activity-reference#activity-fields). ## Notes - Webhook API requests are authenticated by the token in the URL; notify uses a scoped agent token. Treat both as credentials. - Device targeting, interactive responses, callbacks, and Live Activities are included in the free personal plan. - Personal accounts support unlimited notifications and devices. Families include an owner and up to three other members, with unlimited notifications and devices. Per-minute rate limits still apply. - MCP asks and interaction waits return after at most 25 seconds of waiting per call. A pending result keeps its interaction ID; resume waiting without creating another prompt. - An accepted answer and a delivered callback are separate facts. - Only server-confirmed terminal answers authorize dependent work. A queued phone answer or successful pending-status read is not approval. - Hosted device APIs are platform-specific; feature-detect the bridge and verify passes on your server. ## Individual pages - [Get connected](https://notify.belweave.ai/docs/quickstart.md): Connect the source and the people who should receive its updates. Start with an account and device, then choose a webhook, an MCP client, or the CLI. - [Send an update](https://notify.belweave.ai/docs/send-update.md): Send a useful message, file it into the inbox, and give the recipient a clear next step. Webhook and terminal examples below describe the same package-pickup workflow. - [Ask for a decision](https://notify.belweave.ai/docs/ask-decision.md): Pause work for a person’s approval, choice, or reply. Creating a prompt is the beginning of that exchange; use its confirmed server outcome to decide what happens next. - [Track work](https://notify.belweave.ai/docs/activity-api.md): Keep one task’s current stage visible as work progresses. iOS uses ActivityKit on capable builds; native Android uses an ordinary ongoing progress notification through the same API. - [Bring a web app](https://notify.belweave.ai/docs/web-apps.md): Make your warehouse board or household planner available inside Notify. Register its origin and send updates that open the relevant page. Add optional microAuth() when your site needs sign-in. - [Share with family](https://notify.belweave.ai/docs/family.md): Coordinate household alerts without sharing an account or device. A free family has one owner and up to three additional members, with shared services and unlimited notifications. - [Delivery and reliability](https://notify.belweave.ai/docs/delivery.md): Understand what a send proves, how retries behave, and how device availability affects an update. Use these rules when turning the guides into unattended workflows. - [Access and consent](https://notify.belweave.ai/docs/access.md): Keep the connection’s permissions as small as the work requires. Agent grants authorize API operations; human actions and native-device permissions remain separate decisions. - [Webhook reference](https://notify.belweave.ai/docs/notification-api.md): Exact notification routes, payload fields, HTTP outcomes, and receiver formats. Use the task guides for a first send or question; use this chapter when wiring a sender or callback receiver. - [Activity fields and layouts](https://notify.belweave.ai/docs/activity-reference.md): Field limits and platform-specific appearance for progress activities and interactive iOS cards. The lifecycle guide is [Track work](#activity-api). - [CLI reference](https://notify.belweave.ai/docs/cli.md): Create persistent service endpoints and integrate the terminal client into scripts. Connection setup lives in [Get connected](#cli-install); send, ask, and activity examples live with their task guides. - [MCP reference](https://notify.belweave.ai/docs/mcp.md): OAuth discovery, granted scopes, and the tool families available to a remote client. For configuration snippets, use [Connect an MCP client](#mcp-connect). - [Agent API reference](https://notify.belweave.ai/docs/agent-api.md): Route inventory for scoped HTTP clients, with the canonical generated schemas. The CLI and MCP tools use this API; human consent is described in [Access and consent](#access). - [Reach an internal service](https://notify.belweave.ai/docs/connect.md): Expose a private HTTP service through Notify Connector and the OpenTunnel relay. The public hostname reaches the service; a verified Notify pass or signed callback still determines who may use it. - [Existing team administration](https://notify.belweave.ai/docs/teams.md): These operations support existing workplace teams. New team signup is unavailable. Teams share organization resources while members keep their own accounts and sign-in choices; [families](#family) have a smaller, separate feature set. - [Page a responder](https://notify.belweave.ai/docs/oncall.md): For existing workplace teams, choose the current responder and escalate unanswered pages. This chapter covers rotations, page creation, and the human acknowledgement that stops escalation. - [API explorer](https://notify.belweave.ai/docs/api.md): Explore the scoped Notify Agent API, inspect request and response schemas, and try an authenticated request. - [Describe the calling token](https://notify.belweave.ai/docs/api/getAuthStatus.md): GET /api/agent/auth/status. Required scopes: . - [Revoke the calling token](https://notify.belweave.ai/docs/api/postAuthRevoke.md): POST /api/agent/auth/revoke. Required scopes: . - [List the account's API tokens (never secrets)](https://notify.belweave.ai/docs/api/getTokens.md): Connected MCP/OAuth clients appear as `kind: "oauth"`; revoking one signs that client out (access and refresh tokens). There is no create route: an agent token cannot mint tokens, so it can never escalate its own scopes or outlive its revocation. Create tokens from a signed-in session or `notify auth login`. - [Revoke another token of the same account](https://notify.belweave.ai/docs/api/deleteTokensId.md): DELETE /api/agent/tokens/{id}. Required scopes: tokens:manage. - [List registered devices](https://notify.belweave.ai/docs/api/getDevices.md): Registration is phone-only: only the Notify app holds a push token. - [Remove a device; it registers again when Notify next opens on it](https://notify.belweave.ai/docs/api/deleteDevicesId.md): DELETE /api/agent/devices/{id}. Required scopes: devices:write. - [List webhook services (without webhook URLs)](https://notify.belweave.ai/docs/api/getServices.md): GET /api/agent/services. Required scopes: services:read. - [Create a webhook service; the webhook URL is returned once](https://notify.belweave.ai/docs/api/postServices.md): POST /api/agent/services. Required scopes: services:write. - [Get a webhook service](https://notify.belweave.ai/docs/api/getServicesId.md): GET /api/agent/services/{id}. Required scopes: services:read. - [Update a webhook service's title, avatar, or tap URL](https://notify.belweave.ai/docs/api/patchServicesId.md): PATCH /api/agent/services/{id}. Required scopes: services:write. - [Delete a webhook service](https://notify.belweave.ai/docs/api/deleteServicesId.md): DELETE /api/agent/services/{id}. Required scopes: services:write. - [Share a webhook service with your family, or unshare it](https://notify.belweave.ai/docs/api/postServicesIdShare.md): Only the original creator can share or unshare. Set familyId to your family ID, or null to unshare. Accepted family members receive shared alerts with independent inbox read state. Family owners can rename or delete shared services, but only the original creator can rotate or see the webhook token. A creator leaving the family automatically unshares their services. - [Rotate the webhook token; the new URL is returned once](https://notify.belweave.ai/docs/api/postServicesIdRotate.md): POST /api/agent/services/{id}/rotate. Required scopes: services:write. - [List the account's saved Reply webhooks](https://notify.belweave.ai/docs/api/getWebhooks.md): Signing secrets and stored header values are never returned by read operations. - [Create a Reply webhook; its signing secret is returned once](https://notify.belweave.ai/docs/api/postWebhooks.md): Save an HTTPS endpoint with a generic, Grok, or Slack payload preset. Pass its whk_ ID as webhookId when creating a prompt, set a service's defaultReplyWebhookId, or set isDefault:true for account replies including MCP/API prompts without services. Account and selected endpoints each receive one event, deduplicated by endpoint ID. Store the signingSecret securely to verify signed deliveries. - [Get a Reply webhook and its recent deliveries](https://notify.belweave.ai/docs/api/getWebhooksId.md): GET /api/agent/webhooks/{id}. Required scopes: services:read. - [Update a Reply webhook's endpoint, preset, headers, events, or enabled state](https://notify.belweave.ai/docs/api/patchWebhooksId.md): PATCH /api/agent/webhooks/{id}. Required scopes: services:write. - [Delete a Reply webhook](https://notify.belweave.ai/docs/api/deleteWebhooksId.md): DELETE /api/agent/webhooks/{id}. Required scopes: services:write. - [Send a signed sample event to a Reply webhook](https://notify.belweave.ai/docs/api/postWebhooksIdTest.md): Makes an outbound HTTPS request using the saved endpoint, headers, and preset. - [Rotate a Reply webhook signing secret; the replacement is returned once](https://notify.belweave.ai/docs/api/postWebhooksIdRotateSecret.md): Subsequent deliveries use the new secret. Update your receiver's signature verifier. - [Recent webhook deliveries](https://notify.belweave.ai/docs/api/getEvents.md): GET /api/agent/events. Required scopes: events:read. - [Merged account activity history, newest first (20 per page)](https://notify.belweave.ai/docs/api/getActivityFeed.md): GET /api/agent/activity-feed. Required scopes: events:read. - [Send a one-shot push](https://notify.belweave.ai/docs/api/postNotifications.md): With `oncall` (which also needs `oncall:write`), the push pages that on-call group instead (the token owner must be on its team) and returns the page; the Idempotency-Key becomes the page's dedup key. - [Withdraw an agent notification from the account's devices](https://notify.belweave.ai/docs/api/postNotificationsIdWithdraw.md): Sends a silent command that removes the push from Notification Center and marks the inbox copy read. Accepts `anot_…` or `notification:anot_…`. Returns 502 when no device accepted the command. - [List the account's pending prompts from every source](https://notify.belweave.ai/docs/api/getInteractions.md): There is deliberately no agent route that answers a prompt: approvals come only from a human on the phone or a signed-in session. - [Ask a question (approval, yes/no, or reply)](https://notify.belweave.ai/docs/api/postInteractions.md): Set webhookId to a saved Reply webhook (whk_…) to receive answered, expired, or canceled events using its configured subscriptions. Live Activity presentations return immediately with accepted: 0 and queued device attempts; subsequent reads report provider acceptance. Queued work is not delivery or a human answer. - [Get a prompt created by this token](https://notify.belweave.ai/docs/api/getInteractionsId.md): GET /api/agent/interactions/{id}. Required scopes: interactions:read. - [Long-poll a prompt created by this token until it is answered](https://notify.belweave.ai/docs/api/getInteractionsIdWait.md): GET /api/agent/interactions/{id}/wait. Required scopes: interactions:read. - [Cancel a pending prompt created by this token](https://notify.belweave.ai/docs/api/postInteractionsIdCancel.md): POST /api/agent/interactions/{id}/cancel. Required scopes: interactions:create. - [List Live Activities started by this token](https://notify.belweave.ai/docs/api/getActivities.md): GET /api/agent/activities. Required scopes: activities:read. - [Start a Live Activity](https://notify.belweave.ai/docs/api/postActivities.md): Up to five concurrent activities per device, including interactive activities. Distinct keys coexist. An active key owned by this requester conflicts unless replace is true; replacement affects only that key. Device capacity returns 422 ACTIVITY_CAPACITY_EXCEEDED with limit: 5. Suggested visible-character budgets, not guaranteed fit or API hard limits: proportional glyphs, device width and accessibility text size change fit. 0 means hidden. Expanded and Lock Screen subtitle replaces status on line 2; compact and small banners retain status. Omitted subtitle uses status. Overflow shares the two-line detail area with explicit detail. Compact percentage takes precedence over status when progress is supplied; terminal shows percentage or its prompt icon and never status. Expanded budgets (title/line 2/detail): standard 32/36/100; ring 32/30/80; hero 24/36/100; terminal 36/40/100; steps 32/36/100. Compact title/subtitle/detail are hidden; status budget is 8 without progress, except terminal 0. - [Get a Live Activity by ID or key](https://notify.belweave.ai/docs/api/getActivitiesIdentifier.md): GET /api/agent/activities/{identifier}. Required scopes: activities:read. - [Update a Live Activity](https://notify.belweave.ai/docs/api/patchActivitiesIdentifier.md): Use priority: "high" for user-visible milestones (APNs 10), bounded to 4 per rolling minute and 20 per rolling hour per activity. Excess requests use APNs 5 with priorityReason: "budget_exhausted". Granted milestones remain queue barriers. Default routine updates use APNs 5. These are Notify admission limits, not Apple's unpublished device budget; iOS may still delay or skip states. Updates are accepted durably before an iOS update token is registered, and transient provider rejection remains queued for retry. queued counts pending device operations separately from accepted provider requests and permanent failures. Pending operations expire at the original activity deadline. Suggested visible-character budgets, not guaranteed fit or API hard limits: proportional glyphs, device width and accessibility text size change fit. 0 means hidden. Expanded and Lock Screen subtitle replaces status on line 2; compact and small banners retain status. Omitted subtitle uses status. Overflow shares the two-line detail area with explicit detail. Compact percentage takes precedence over status when progress is supplied; terminal shows percentage or its prompt icon and never status. Expanded budgets (title/line 2/detail): standard 32/36/100; ring 32/30/80; hero 24/36/100; terminal 36/40/100; steps 32/36/100. Compact title/subtitle/detail are hidden; status budget is 8 without progress, except terminal 0. - [End a Live Activity](https://notify.belweave.ai/docs/api/postActivitiesIdentifierEnd.md): Ends the logical activity immediately and accepts device end operations durably, including before an iOS update token arrives. HTTP 200 may have accepted: 0, failed: 0, queued: N. Late token registration flushes pending operations in sequence; queued is not provider acceptance or confirmed device removal. Suggested visible-character budgets, not guaranteed fit or API hard limits: proportional glyphs, device width and accessibility text size change fit. 0 means hidden. Expanded and Lock Screen subtitle replaces status on line 2; compact and small banners retain status. Omitted subtitle uses status. Overflow shares the two-line detail area with explicit detail. Compact percentage takes precedence over status when progress is supplied; terminal shows percentage or its prompt icon and never status. Expanded budgets (title/line 2/detail): standard 32/36/100; ring 32/30/80; hero 24/36/100; terminal 36/40/100; steps 32/36/100. Compact title/subtitle/detail are hidden; status budget is 8 without progress, except terminal 0. - [List web apps](https://notify.belweave.ai/docs/api/getApps.md): GET /api/agent/apps. Required scopes: apps:read. - [Register a web app (an existing URL is updated)](https://notify.belweave.ai/docs/api/postApps.md): POST /api/agent/apps. Required scopes: apps:write. - [Get a web app](https://notify.belweave.ai/docs/api/getAppsId.md): GET /api/agent/apps/{id}. Required scopes: apps:read. - [Update a web app's name, URL, icon, or project](https://notify.belweave.ai/docs/api/patchAppsId.md): Personal name/email disclosure preferences and sign-in consent require a signed-in session and cannot be changed here. Moving the URL to a new origin clears consent. - [Remove a web app](https://notify.belweave.ai/docs/api/deleteAppsId.md): DELETE /api/agent/apps/{id}. Required scopes: apps:write. - [Revoke this account's sign-in consent; approve again on next open](https://notify.belweave.ai/docs/api/postAppsIdRevoke.md): Agents can revoke the calling account's consent but cannot grant consent or issue Notify passes. Those actions require a signed-in session. - [Move an app into a team or family, or (teamId null) back to your own apps](https://notify.belweave.ai/docs/api/postAppsIdShare.md): Only the person who added the app can move it. Other members are notified unless `notify` is false, and each approves sign-in for themselves. - [List the teams you belong to](https://notify.belweave.ai/docs/api/getTeams.md): GET /api/agent/teams. Required scopes: teams:read. - [Create a family; you become its owner](https://notify.belweave.ai/docs/api/postTeams.md): Use kind "family". New Teams creation (kind "team" or omitted) returns 403; existing teams continue operating. - [A team and its members](https://notify.belweave.ai/docs/api/getTeamsId.md): GET /api/agent/teams/{id}. Required scopes: teams:read. - [Update a team (name: admin; auto-join and retention: owner)](https://notify.belweave.ai/docs/api/patchTeamsId.md): PATCH /api/agent/teams/{id}. Required scopes: teams:write. - [Delete a team (owner); its apps return to the members who added them](https://notify.belweave.ai/docs/api/deleteTeamsId.md): DELETE /api/agent/teams/{id}. Required scopes: teams:write. - [Leave a team (the owner must transfer ownership first)](https://notify.belweave.ai/docs/api/postTeamsIdLeave.md): POST /api/agent/teams/{id}/leave. Required scopes: teams:write. - [Change a member's role; `owner` transfers ownership (owner only)](https://notify.belweave.ai/docs/api/patchTeamsIdMembersUserId.md): PATCH /api/agent/teams/{id}/members/{userId}. Required scopes: teams:write. - [Remove a member (admin or owner); the owner cannot be removed](https://notify.belweave.ai/docs/api/deleteTeamsIdMembersUserId.md): DELETE /api/agent/teams/{id}/members/{userId}. Required scopes: teams:write. - [List invites (admin or owner)](https://notify.belweave.ai/docs/api/getTeamsIdInvites.md): GET /api/agent/teams/{id}/invites. Required scopes: teams:read. - [Create a 7-day join link (admin or owner)](https://notify.belweave.ai/docs/api/postTeamsIdInvites.md): Family capacity and administrative member limits apply. Accepting an invite is human-only: there is no agent route for it. - [Revoke an invite](https://notify.belweave.ai/docs/api/deleteTeamsIdInvitesInviteId.md): DELETE /api/agent/teams/{id}/invites/{inviteId}. Required scopes: teams:write. - [The team's shared apps](https://notify.belweave.ai/docs/api/getTeamsIdApps.md): GET /api/agent/teams/{id}/apps. Required scopes: teams:read, apps:read. - [The team's device groups](https://notify.belweave.ai/docs/api/getTeamsIdGroups.md): GET /api/agent/teams/{id}/groups. Required scopes: teams:read. - [Create a device group (admin or owner)](https://notify.belweave.ai/docs/api/postTeamsIdGroups.md): POST /api/agent/teams/{id}/groups. Required scopes: teams:write. - [A device group](https://notify.belweave.ai/docs/api/getTeamsIdGroupsGroupId.md): GET /api/agent/teams/{id}/groups/{groupId}. Required scopes: teams:read. - [Update a device group (admin or owner)](https://notify.belweave.ai/docs/api/patchTeamsIdGroupsGroupId.md): PATCH /api/agent/teams/{id}/groups/{groupId}. Required scopes: teams:write. - [Delete a device group (admin or owner)](https://notify.belweave.ai/docs/api/deleteTeamsIdGroupsGroupId.md): DELETE /api/agent/teams/{id}/groups/{groupId}. Required scopes: teams:write. - [Devices belonging to team members (admin or owner)](https://notify.belweave.ai/docs/api/getTeamsIdDevices.md): GET /api/agent/teams/{id}/devices. Required scopes: teams:read. - [Request a DNS TXT challenge for an email domain (owner)](https://notify.belweave.ai/docs/api/postTeamsIdDomain.md): Stores a pending domain (not unique). Publish a TXT record at `_notify-verification.` with value `notify-verify=`, then POST `/teams/{id}/domain/verify`. Public mailbox domains are rejected. - [Clear the pending or verified domain (owner)](https://notify.belweave.ai/docs/api/deleteTeamsIdDomain.md): DELETE /api/agent/teams/{id}/domain. Required scopes: teams:write. - [Verify the pending domain's DNS TXT record (owner)](https://notify.belweave.ai/docs/api/postTeamsIdDomainVerify.md): Resolves the TXT challenge with a timeout. Resolver errors are cached at most a minute; TXT mismatches are not cached. Rate-limited per team. The verified domain is unique once this succeeds. - [Audit log (admin or owner); members receive 403](https://notify.belweave.ai/docs/api/getTeamsIdAudit.md): `from` is inclusive. CSV (`format=csv`) paginates up to 50,000 rows and sets `X-Audit-Truncated: true` when more exist. Formula-like cells are prefixed with a quote. - [The team's on-call groups with current and upcoming shifts](https://notify.belweave.ai/docs/api/getTeamsIdOncall.md): GET /api/agent/teams/{id}/oncall. Required scopes: oncall:read. - [Create an on-call group (admin or owner)](https://notify.belweave.ai/docs/api/postTeamsIdOncall.md): POST /api/agent/teams/{id}/oncall. Required scopes: oncall:write. - [The team's pages, newest first](https://notify.belweave.ai/docs/api/getTeamsIdPages.md): GET /api/agent/teams/{id}/pages. Required scopes: oncall:read. - [Your upcoming shifts and the open pages that notified you](https://notify.belweave.ai/docs/api/getOncallMe.md): GET /api/agent/oncall/me. Required scopes: oncall:read. - [An on-call group](https://notify.belweave.ai/docs/api/getOncallGroupId.md): GET /api/agent/oncall/{groupId}. Required scopes: oncall:read. - [Edit a group's name, rotation, or escalation (admin or owner)](https://notify.belweave.ai/docs/api/patchOncallGroupId.md): PATCH /api/agent/oncall/{groupId}. Required scopes: oncall:write. - [Delete an on-call group (admin or owner)](https://notify.belweave.ai/docs/api/deleteOncallGroupId.md): DELETE /api/agent/oncall/{groupId}. Required scopes: oncall:write. - [Put someone on call for a window (admins: anyone; members: themselves)](https://notify.belweave.ai/docs/api/postOncallGroupIdOverrides.md): POST /api/agent/oncall/{groupId}/overrides. Required scopes: oncall:write. - [Remove an override](https://notify.belweave.ai/docs/api/deleteOncallGroupIdOverridesOverrideId.md): DELETE /api/agent/oncall/{groupId}/overrides/{overrideId}. Required scopes: oncall:write. - [Page the group: whoever is on call first, then escalation](https://notify.belweave.ai/docs/api/postOncallGroupIdPages.md): Returns 200 with `deduplicated: true` when an open page with the same `dedupKey` absorbed it. Pages have no monthly notification cap. - [A page](https://notify.belweave.ai/docs/api/getPagesId.md): There is deliberately no agent route to acknowledge or escalate: an acknowledgement tells the team a person is on it, so only a human can give it (on the phone or in a signed-in session). - [List tunnel connectors](https://notify.belweave.ai/docs/api/getConnectors.md): GET /api/agent/connectors. Required scopes: connectors:read. - [Register a tunnel connector; the callback HMAC secret is returned once](https://notify.belweave.ai/docs/api/postConnectors.md): POST /api/agent/connectors. Required scopes: connectors:write. - [A tunnel connector](https://notify.belweave.ai/docs/api/getConnectorsId.md): GET /api/agent/connectors/{id}. Required scopes: connectors:read. - [Update a connector's name, routes, or on-call group](https://notify.belweave.ai/docs/api/patchConnectorsId.md): PATCH /api/agent/connectors/{id}. Required scopes: connectors:write. - [Remove a tunnel connector](https://notify.belweave.ai/docs/api/deleteConnectorsId.md): DELETE /api/agent/connectors/{id}. Required scopes: connectors:write. - [Mark a connector online and refresh its last-seen time](https://notify.belweave.ai/docs/api/postConnectorsIdHeartbeat.md): POST /api/agent/connectors/{id}/heartbeat. Required scopes: connectors:write. - [Connector gateway: consume a one-time Notify pass or revalidate its bound session on every request](https://notify.belweave.ai/docs/api/postConnectorsIdAccess.md): POST /api/agent/connectors/{id}/access. Required scopes: connectors:write. - [Connector gateway: authorize one signed, recorded callback delivery and return its saved destination path](https://notify.belweave.ai/docs/api/postConnectorsIdCallbackAccess.md): POST /api/agent/connectors/{id}/callback-access. Required scopes: connectors:write. - [Rotate a connector callback HMAC secret; the new secret is returned once](https://notify.belweave.ai/docs/api/postConnectorsIdRotateSecret.md): POST /api/agent/connectors/{id}/rotate-secret. Required scopes: connectors:write. - [Resolve a page; anyone still being paged is cleared](https://notify.belweave.ai/docs/api/postPagesIdResolve.md): POST /api/agent/pages/{id}/resolve. Required scopes: oncall:write. - [Inbox projects with unread counts](https://notify.belweave.ai/docs/api/getInboxProjects.md): GET /api/agent/inbox/projects. Required scopes: inbox:read. - [Inbox notifications, newest first, with cursor pagination](https://notify.belweave.ai/docs/api/getInboxNotifications.md): GET /api/agent/inbox/notifications. Required scopes: inbox:read. - [One inbox notification with its full body](https://notify.belweave.ai/docs/api/getInboxNotificationsId.md): GET /api/agent/inbox/notifications/{id}. Required scopes: inbox:read. - [Mark everything up to a list response's readThroughToken read](https://notify.belweave.ai/docs/api/postInboxNotificationsReadAll.md): POST /api/agent/inbox/notifications/read-all. Required scopes: inbox:write. - [Mark one notification read](https://notify.belweave.ai/docs/api/postInboxNotificationsIdRead.md): POST /api/agent/inbox/notifications/{id}/read. Required scopes: inbox:write. - [Mark one notification unread](https://notify.belweave.ai/docs/api/postInboxNotificationsIdUnread.md): POST /api/agent/inbox/notifications/{id}/unread. Required scopes: inbox:write. - [Plan, limits, and remaining usage](https://notify.belweave.ai/docs/api/getBilling.md): Read-only Free entitlements, unlimited notifications and devices, and per-minute rate limits.