Skip to main content

Settings

Every call needs Authorization: Bearer <key>. 4 calls:

Compliance settings​

GET /v1/settings/compliance

Quiet hours, custom STOP keywords, the opt-out confirmation text, the consent requirement and the optional cold contact limit, plus the platform rules around them. Settings apply to the whole organisation.

Headers

NameTypeRequiredDescription
x-workspace-idstringNoWorkspace for session (JWT) callers. API keys carry their own workspace.

Response 200

FieldTypeDescription
built_in_stop_keywordsstring[]
can_changebooleanWhether the caller can change these settings: they apply to every workspace in the organisation, so a change needs full compliance access in each one.
cold_new_contacts_limitintegerThe highest cold_new_contacts_per_day accepts: the platform’s default daily new-contact cap. From -9007199254740991 to 9007199254740991.
cold_new_contacts_per_dayinteger or nullAn optional lower daily limit for new cold contacts (from outbound tools) per line. Null (the default) means off: cold contacts share the line’s normal new-contact limit. From 1 to 9007199254740991.
opt_out_confirmationstring
platform_quiet_hoursobject
platform_quiet_hours.endstringLocal time, HH:MM.
platform_quiet_hours.startstringLocal time, HH:MM.
quiet_hoursobject
quiet_hours.endstringLocal time, HH:MM.
quiet_hours.startstringLocal time, HH:MM.
require_consentbooleanOnly message contacts whose consent is opted_in.
sending_limitsobject
sending_limits.identical_text_max_per_dayintegerFrom 1 to 9007199254740991.
sending_limits.new_contact_window_daysintegerFrom 1 to 9007199254740991.
sending_limits.new_contacts_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.new_contacts_per_hourintegerFrom 0 to 9007199254740991.
sending_limits.pre_reply_max_charsintegerFrom 1 to 9007199254740991.
sending_limits.pre_reply_max_messagesintegerFrom 1 to 9007199254740991.
sending_limits.reply_ratio_minnumberFrom 0 to 1.
sending_limits.sends_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.unanswered_streak_pauseintegerFrom 1 to 9007199254740991.
sending_limits.warmup_curveobject[]
sending_limits.warmup_curve[].from_dayintegerFrom 1 to 9007199254740991.
sending_limits.warmup_curve[].new_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.warmup_curve[].to_dayinteger or nullFrom 1 to 9007199254740991.
stop_keywordsstring[]

Errors: 400, 401, 403, 404, 409, 413, 415, 429, 500. See errors for the shape and codes.

Change compliance settings​

PATCH /v1/settings/compliance

Quiet hours are in each contact's local time and must cover the platform's quiet hours: they can be made longer, never shorter or turned off. STOP keywords are added to the built-in ones. The optional cold contact limit is off (null) unless set; when set it is from 1 to cold_new_contacts_limit, and null turns it off. Changes apply to every workspace in the organisation, so the caller needs full compliance access in each one (otherwise 403), and the change is audited in each workspace.

Headers

NameTypeRequiredDescription
x-workspace-idstringNoWorkspace for session (JWT) callers. API keys carry their own workspace.
idempotency-keystringNoMakes the write safe to retry for 24 hours. 1 to 255 printable characters. Keys starting with outreach:, workflow: or agent: are reserved for messages bubbl3 sends itself and are refused with 400. Up to 255 characters.

Request body

FieldTypeRequiredDescription
cold_new_contacts_per_dayinteger or nullNoAn optional lower daily limit for new cold contacts per line, from 1 to cold_new_contacts_limit. Null turns it off, so cold contacts share the line’s normal new-contact limit. From 1 to 9007199254740991.
opt_out_confirmationstringNoUp to 300 characters.
quiet_hoursobjectNo
quiet_hours.endstringYesLocal time, HH:MM.
quiet_hours.startstringYesLocal time, HH:MM.
require_consentbooleanNo
stop_keywordsstring[]NoUp to 20 items.

Response 200

FieldTypeDescription
built_in_stop_keywordsstring[]
can_changebooleanWhether the caller can change these settings: they apply to every workspace in the organisation, so a change needs full compliance access in each one.
cold_new_contacts_limitintegerThe highest cold_new_contacts_per_day accepts: the platform’s default daily new-contact cap. From -9007199254740991 to 9007199254740991.
cold_new_contacts_per_dayinteger or nullAn optional lower daily limit for new cold contacts (from outbound tools) per line. Null (the default) means off: cold contacts share the line’s normal new-contact limit. From 1 to 9007199254740991.
opt_out_confirmationstring
platform_quiet_hoursobject
platform_quiet_hours.endstringLocal time, HH:MM.
platform_quiet_hours.startstringLocal time, HH:MM.
quiet_hoursobject
quiet_hours.endstringLocal time, HH:MM.
quiet_hours.startstringLocal time, HH:MM.
require_consentbooleanOnly message contacts whose consent is opted_in.
sending_limitsobject
sending_limits.identical_text_max_per_dayintegerFrom 1 to 9007199254740991.
sending_limits.new_contact_window_daysintegerFrom 1 to 9007199254740991.
sending_limits.new_contacts_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.new_contacts_per_hourintegerFrom 0 to 9007199254740991.
sending_limits.pre_reply_max_charsintegerFrom 1 to 9007199254740991.
sending_limits.pre_reply_max_messagesintegerFrom 1 to 9007199254740991.
sending_limits.reply_ratio_minnumberFrom 0 to 1.
sending_limits.sends_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.unanswered_streak_pauseintegerFrom 1 to 9007199254740991.
sending_limits.warmup_curveobject[]
sending_limits.warmup_curve[].from_dayintegerFrom 1 to 9007199254740991.
sending_limits.warmup_curve[].new_per_dayintegerFrom 0 to 9007199254740991.
sending_limits.warmup_curve[].to_dayinteger or nullFrom 1 to 9007199254740991.
stop_keywordsstring[]

Errors: 400, 401, 403, 404, 409, 413, 415, 429, 500. See errors for the shape and codes.

My notification settings​

GET /v1/settings/notifications

Which events reach you by email and push in this workspace, and your quiet hours (in the organisation’s time zone), when email and push wait. Service emails listed in required always go out.

Headers

NameTypeRequiredDescription
x-workspace-idstringNoWorkspace for session (JWT) callers. API keys carry their own workspace.

Response 200

FieldTypeDescription
eventsobject
quiet_hoursobject or null
quiet_hours.endstringLocal time, HH:MM.
quiet_hours.startstringLocal time, HH:MM.
requiredobjectChannels that are always on for an event (service emails).
time_zonestringThe organisation's time zone, which quiet hours use.
unavailableenum[]Events bubbl3 does not send yet; their preferences are kept for later.

Errors: 400, 401, 403, 404, 409, 413, 415, 429, 500. See errors for the shape and codes.

Change my notification settings​

PATCH /v1/settings/notifications

Sets the channels for the events given (others are left as they are) and your quiet hours (null turns them off; equal start and end means none). A required service email can’t be turned off.

Headers

NameTypeRequiredDescription
x-workspace-idstringNoWorkspace for session (JWT) callers. API keys carry their own workspace.
idempotency-keystringNoMakes the write safe to retry for 24 hours. 1 to 255 printable characters. Keys starting with outreach:, workflow: or agent: are reserved for messages bubbl3 sends itself and are refused with 400. Up to 255 characters.

Request body

FieldTypeRequiredDescription
eventsobjectNo
quiet_hoursobject or nullNo
quiet_hours.endstringYesLocal time, HH:MM.
quiet_hours.startstringYesLocal time, HH:MM.

Response 200

FieldTypeDescription
eventsobject
quiet_hoursobject or null
quiet_hours.endstringLocal time, HH:MM.
quiet_hours.startstringLocal time, HH:MM.
requiredobjectChannels that are always on for an event (service emails).
time_zonestringThe organisation's time zone, which quiet hours use.
unavailableenum[]Events bubbl3 does not send yet; their preferences are kept for later.

Errors: 400, 401, 403, 404, 409, 413, 415, 429, 500. See errors for the shape and codes.