Get notification preferences
const url = 'https://api.deploybase.eu/api/v1/api/v1/notification-preferences';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.deploybase.eu/api/v1/api/v1/notification-preferences \ --header 'Authorization: <Authorization>'Returns the team’s per-notification toggles, its notification email override, the address mail actually goes to, and whether that address is currently suppressed for a hard bounce or a spam complaint (DEP-332). The suppression fields are how a team discovers its notifications stopped arriving; every other symptom is silence. Since DEP-710 it also reports the team address’s verification status, a pending change, and who receives operational and critical mail. Every address is masked for members and viewers; admins see them in full.
Authorizations
Section titled “ Authorizations ”Responses
Section titled “ Responses ”OK
object
DEP-710. Address is the team address on record (the one in force, or a declined/suppressed one); Status its state; PendingAddress a requested change awaiting confirmation. Everything address-shaped is masked for anyone below admin.
EffectiveEmail is where mail actually goes: the override when set, otherwise the team owner’s address, otherwise empty.
object
EffectiveSource is team | team_owner | none.
EmailSuppressed reports that mail to EffectiveEmail is NOT being delivered because the address is on the suppression list (DEP-332). Always present, so the client never has to distinguish “not suppressed” from “the backend did not answer”.
EmailSuppressionReason is hard_bounce or complaint, and is present only when EmailSuppressed is true — there is no reason to report when nothing is suppressed.
MemberAddresses are the team members’ confirmed own addresses, which become the team address without a confirmation mail (DEP-711 quick picks). Admins only: omitted below.
NotificationEmail is the explicit override only; null means “no override set”.
object
BuildAutoPaused is the single email sent when repeated identical build failures pause a project’s auto-deploy (DEP-544). Its own toggle rather than riding on BuildFailure: it announces a change of state, not one more failure, and a team that mutes routine failure mail still needs to hear that pushes have stopped deploying.
Build notifications.
BuildSuccess is the one opt-in toggle (DEP-543): a “build succeeded” email for a deploy you just triggered and are already watching tells you nothing you did not know, and with push-triggered builds now falling back to the team address, defaulting it on would mail every active team on every green push.
Forms notifications
FunctionSchedulePaused is the single email sent when the platform pauses a function’s schedule (DEP-247), after repeated failures or on a plan limit. Default on for the same reason as BuildAutoPaused: it announces that something has stopped running.
Billing notifications
Suppressed reports that the team address is not being mailed (bounce, complaint, unsubscribe or declined); mail goes to the owners instead.
Example generated
{ "address": "example", "effective_email": "example", "effective_recipients": { "critical": [ "example" ], "operational": [ "example" ] }, "effective_source": "example", "email_suppressed": true, "email_suppression_reason": "example", "member_addresses": [ "example" ], "notification_email": "example", "pending_address": "example", "preferences": { "build_auto_paused": true, "build_failure": true, "build_success": true, "build_timeout": true, "created_at": "example", "form_submission": true, "function_schedule_paused": true, "id": "example", "payment_failed": true, "payment_success": true, "plan_changed": true, "spending_cap_warning": true, "subscription_cancelled": true, "team_id": "example", "updated_at": "example" }, "status": "example", "suppressed": true}Bad Request
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Forbidden
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Live 174db30c built