Console · Published 2026-09-28 · Updated 2026-09-28 · AgentiSend
Notifications
Choose which conditions ring the bell and which send mail. The bell lists open conditions. Marking one read does not end it.
Notifications are at /settings/notifications. The bell in the top bar is the same list, limited to open rows.
What the screen calls
The bell reads GET /notifications with state=open. Settings reads and writes GET /notifications/preferences and PATCH /notifications/preferences. Two switches per condition: in the app, and by email. A condition with no saved row is on for both.
curl -sS -X GET https://api.agentisend.com/notifications \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"data": [],
"has_more": false,
"next_cursor": "example",
"object": "list"
}curl -sS -X GET https://api.agentisend.com/notifications/preferences \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"preferences": []
}curl -sS -X PATCH https://api.agentisend.com/notifications/preferences \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"preferences":[{"type":"budget_exhausted"}]}'200
{
"preferences": []
}Marking one row read is POST /notifications/{id}/read. Marking the open rows read is POST /notifications/read. Reading a row does not end it. The condition ends the row.
curl -sS -X POST https://api.agentisend.com/notifications/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42/read \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"200
{
"body": "example",
"console_path": "example",
"dedupe_key": "example",
"first_seen_at": "2026-09-04T09:14:00.000Z",
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"last_seen_at": "2026-09-04T09:14:00.000Z",
"occurrences": -9007199254740991,
"read_at": "2026-09-04T09:14:00.000Z",
"resolved_at": "2026-09-04T09:14:00.000Z",
"state": "open",
"title": "example",
"type": "budget_exhausted"
}curl -sS -X POST https://api.agentisend.com/notifications/read \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'200
{
"read": -9007199254740991
}A viewer who tries to change a preference:
{
"error": {
"code": "insufficient_role",
"message": "Your role on this account cannot make this change.",
"fix": "Ask an owner to make the change, or to raise your role with PATCH /team/members/:id.",
"docs_url": "https://agentisend.com/docs/errors#insufficient_role",
"retryable": false
}
}A retired trial condition is not listed and is not in the bell.
A limit of the screen
The in-app switch is saved. The list the bell reads does not look at that switch, so a condition still appears in the bell when the switch is off. The email switch is what the mailer reads. Billing mail still goes out when its email switch is off. Support mail is not sent from this preference.