Skip to content

Get notification preferences

GET
/api/v1/notification-preferences
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.

OK

Media type application/json
object
address

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.

string
effective_email

EffectiveEmail is where mail actually goes: the override when set, otherwise the team owner’s address, otherwise empty.

string
effective_recipients
object
critical
Array<string>
operational
Array<string>
effective_source

EffectiveSource is team | team_owner | none.

string
email_suppressed

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”.

boolean
email_suppression_reason

EmailSuppressionReason is hard_bounce or complaint, and is present only when EmailSuppressed is true — there is no reason to report when nothing is suppressed.

string
member_addresses

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.

Array<string>
notification_email

NotificationEmail is the explicit override only; null means “no override set”.

string
pending_address
string
preferences
object
build_auto_paused

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.

boolean
build_failure
boolean
build_success

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.

boolean
build_timeout
boolean
created_at
string
form_submission

Forms notifications

boolean
function_schedule_paused

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.

boolean
id
string
payment_failed
boolean
payment_success

Billing notifications

boolean
plan_changed
boolean
spending_cap_warning
boolean
subscription_cancelled
boolean
team_id
string
updated_at
string
status
string
suppressed

Suppressed reports that the team address is not being mailed (bounce, complaint, unsubscribe or declined); mail goes to the owners instead.

boolean

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

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Forbidden

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Internal Server Error

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Live 174db30c built