Skip to content

Get your settings

GET
/v1/app/settings
curl --request GET \
--url https://app.mondochat.io/v1/app/settings \
--header 'Authorization: Bearer <token>' \
--header 'Mondochat-App-Id: <Mondochat-App-Id>'

Returns the settings document of the app that owns the server secret. Takes the app id and the server secret. The ETag header carries the current version, quoted; send it back as If-Match on the replace. See https://docs.mondochat.io/settings/overview/.

Successful Response

Media typeapplication/json
Settings

The settings document of one app.

object
branding
Branding

Look of the chat.

object
avatars
Avatars

Show the people’s pictures; off draws the initial on the primary colour.

boolean
default: true
background
Background

Background color.

string
default: #ffffff /^#[0-9a-fA-F]{6}$/
font_css_url
Any of:
string
<= 2048 characters /^https://\S+$/
font_family
Font Family

CSS font family.

string
default: system-ui, sans-serif >= 1 characters <= 200 characters
heading_font_family
Any of:
string
>= 1 characters <= 200 characters
inbox_close_chip
Inbox Close Chip

The inbox close button is a 30px tinted chip.

boolean
inbox_tint
Inbox Tint

Tint the inbox background on every layout, not only two-pane.

boolean
launcher
Launcher

Launcher bubble.

object
enabled
Enabled

Show the launcher bubble.

boolean
default: true
inline_close_desktop
Inline Close Desktop

Show the inbox close button on the inline page on a screen with a mouse.

boolean
default: true
plain
Plain

Flat bubble colour, and Arial in the unread badge and the toast.

boolean
position
Position

Launcher corner.

string
default: right
Allowed values: right left
logo_url
Any of:
string
<= 2048 characters /^https://\S+$/
on_primary
On Primary

Text on the primary color.

string
default: #ffffff /^#[0-9a-fA-F]{6}$/
primary
Primary

Primary color.

string
default: #2f6fed /^#[0-9a-fA-F]{6}$/
radius_px
Radius Px

Corner radius in pixels.

integer
default: 12 <= 32
surface
Surface

Surface color.

string
default: #f4f5f7 /^#[0-9a-fA-F]{6}$/
text
Text

Text color.

string
default: #111318 /^#[0-9a-fA-F]{6}$/
calls
Calls

Video calls.

object
area
Area

Agora area code, e.g. EUROPE.

string
default: GLOBAL /^[A-Z_]{2,32}$/
codec
Codec

Agora video codec.

string
default: vp8
Allowed values: vp8 vp9 h264 av1
confirm_start
Confirm Start

Ask before starting a call.

boolean
dock
Dock

Every call takes the whole window, the chat button docks the call as a strip or a side rail beside the thread, and a minimise button shrinks it to a bubble.

boolean
enabled
Enabled

Video calls enabled.

boolean
max_duration_minutes
Max Duration Minutes

Calls end after this.

integer
default: 240 >= 1 <= 1440
offline_note
Offline Note

After calling an offline peer, note in the thread that they may not answer.

boolean
per_minute
PerMinute

Per-minute charging.

object
currency
Currency

ISO 4217 currency.

string
default: EUR /^[A-Z]{3}$/
enabled
Enabled

Charge calls per minute.

boolean
payer_role
Any of:
string
/^[A-Za-z0-9_-]{1,32}$/
preauthorize_minutes
Preauthorize Minutes

Minutes charged when both have joined.

integer
default: 1 >= 1 <= 60
price_minor
Price Minor

Price per minute in minor units.

integer
0
ring_timeout_seconds
Ring Timeout Seconds

Ring time before missed.

integer
default: 45 >= 10 <= 600
ring_when_closed
Ring When Closed

An incoming call opens the chat and rings while it is closed; off shows the toast and sound, and the ring when the chat opens.

boolean
default: true
show_locked
Show Locked

Show buyers a locked call button with a tip when they cannot call a seller.

boolean
single_card
Single Card

One card per call that reads Call ended when it is over, and a busy callee closes the caller’s call screen instead of showing an error.

boolean
video
Video

Camera capture settings.

object
fps
Fps

Capture frame rate.

integer
default: 30 >= 1 <= 60
height
Height

Capture height in pixels.

integer
default: 720 >= 120 <= 2160
width
Width

Capture width in pixels.

integer
default: 1280 >= 160 <= 3840
warn_if_offline
Warn If Offline

Warn before calling an offline peer.

boolean
default: true
chat
Chat

Messages.

object
avatar_upload
Avatar Upload

Users may upload their own picture; it shows only after photo moderation approves it, and it wins over the host’s avatar.

boolean
consent_allow_last
Consent Allow Last

The photo consent prompt puts Don’t allow before Allow; off puts Allow first.

boolean
earlier_on_scroll
Earlier On Scroll

Older messages load when the thread scrolls to its top; off shows a Load earlier button.

boolean
edit_window_seconds
Edit Window Seconds

Senders may edit a text message this long after sending; 0 turns edits off.

integer
default: 172800 <= 31536000
photo_max_bytes
Photo Max Bytes

Maximum photo upload size in bytes.

integer
default: 20000000 >= 1 <= 50000000
photos
Photos

Photo messages enabled.

boolean
default: true
refuse_blocked_send
Refuse Blocked Send

A message to someone who blocked the sender is refused (403 forbidden, reason undelivered) and not stored; off accepts it and drops it silently.

boolean
short_day_labels
Short Day Labels

Day separators read day and month only; off adds the weekday, and the year for earlier years.

boolean
text_max_length
Text Max Length

Maximum message length.

integer
default: 4000 >= 1 <= 10000
unsend_window_seconds
Unsend Window Seconds

Senders may delete a message for everyone this long after sending; 0 turns it off. Deleting for oneself is always allowed.

integer
default: 172800 <= 31536000
video_max_bytes
Video Max Bytes

Maximum video size in bytes; the browser converts to fit.

integer
default: 104857600 >= 1000000 <= 209715200
video_max_seconds
Video Max Seconds

Maximum video length in seconds.

integer
default: 900 >= 1 <= 3600
videos
Videos

Video messages enabled.

boolean
default: true
view_once
View Once

Senders may mark a photo, video or voice note view once.

boolean
default: true
voice
Voice

Voice notes enabled.

boolean
default: true
voice_max_bytes
Voice Max Bytes

Maximum voice note size in bytes.

integer
default: 10485760 >= 100000 <= 52428800
voice_max_seconds
Voice Max Seconds

Maximum voice note length in seconds.

integer
default: 900 >= 1 <= 3600
commerce
Commerce

Selling services.

object
catalog_source
Catalog Source

Catalog from the catalog callout or the dashboard.

string
default: webhook
Allowed values: webhook dashboard
checkout_url_template
Any of:
string
<= 2048 characters /^https://\S+$/
custom_amount
CustomAmount

An amount the buyer types, in the catalog currency.

object
enabled
Enabled

Buyers may type an amount, such as a tip.

boolean
max_minor
Max Minor

Largest amount in minor units.

integer
default: 100000 >= 1
min_minor
Min Minor

Smallest amount in minor units.

integer
default: 100 >= 1
enabled
Enabled

Selling in conversations enabled.

boolean
payment_mode
Payment Mode

How purchases are paid.

string
default: server_charge
Allowed values: server_charge page_callback checkout_url
payment_window
Payment Window

Where checkout and top-up pages open.

string
default: popup
Allowed values: popup same_tab
show_balance
Show Balance

Show the balance the catalog callout returns.

boolean
topup_url_template
Any of:
string
<= 2048 characters /^https://\S+$/
trim_whole_prices
Trim Whole Prices

A euro price on a purchase card reads 5 € or 5.50 €, never grouped.

boolean
default_role
Default Role

Role when the token has none.

string
default: member /^[A-Za-z0-9_-]{1,32}$/
guests
Guests

Anonymous guests.

object
enabled
Enabled

Allow anonymous guests.

boolean
merge_on_login
Merge On Login

Merge a recent guest into the member who logs in on that browser.

boolean
default: true
name_prefix
Name Prefix

Guests show as “ <6 chars>”.

string
default: Guest >= 1 characters <= 32 characters
notify_prompt
Notify Prompt

While the viewer’s own message is the last one, offer to tell them when the peer replies; tapping sends navigate reason notify for the host to collect an address. Same viewers as the nudge.

boolean
notify_prompt_signup
Notify Prompt Signup

The notify prompt’s button reads Create account and opens guests.nudge.signup_url (navigate reason signup) instead of Notify me; with no signup_url it stays Notify me.

boolean
notify_prompt_sticky
Notify Prompt Sticky

Keep the notify prompt once the conversation has a message, until the viewer taps or dismisses it, instead of only while their own message is the last one.

boolean
nudge
Nudge

Create-account nudge for guests.

object
enabled
Enabled

Show guests a create-account nudge, and members whose role is guests.role when that is not default_role.

boolean
default: true
login_url
Any of:
string
<= 2048 characters /^https://\S+$/
signup_url
Any of:
string
<= 2048 characters /^https://\S+$/
role
Role

Role given to guests.

string
default: member /^[A-Za-z0-9_-]{1,32}$/
i18n
I18n

Languages and copy.

object
copy
Copy

Text overrides per language and message key.

object
key
additional properties
object
key
additional properties
string
default_lang
Default Lang

Language when nothing else decides.

string
default: en
Allowed values: it en es fr
languages
Languages

Languages offered.

Array<string>
default: en >= 1 items
Allowed values: it en es fr
limits
Limits

Limits per role.

object
links
Links

Links to the client’s site.

object
open_conversation_url_template
Any of:
string
<= 2048 characters /^https://\S+$/
profile_sellers_only
Profile Sellers Only

The conversation header opens the profile of sellers only.

boolean
profile_url_template
Any of:
string
<= 2048 characters /^https://\S+$/
services_menu
Services Menu

With services_page, buyers also get a Services menu item.

boolean
default: true
services_page
Services Page

Buyers can open the seller’s services page from a conversation.

boolean
services_url_template
Any of:
string
<= 2048 characters /^https://\S+$/
support_email
Any of:
string
<= 254 characters /^[^@\s]+@[^@\s]+\.[^@\s]+$/
moderation
Moderation

Moderation.

object
calls
ModerationCalls

Call moderation.

object
agora
Agora

Agora call moderation enabled.

boolean
default: true
capture_interval_seconds
Capture Interval Seconds

Seconds between frames a peer captures.

integer
default: 10 >= 5 <= 300
capture_max_frames
Capture Max Frames

Frames captured per participant per call.

integer
default: 30 >= 1 <= 360
fallback_capture
Fallback Capture

Peers sample a participant whose Agora task did not start.

boolean
default: true
photos
Photos

Moderate photos.

boolean
default: true
rules
ModerationRules

Action per category.

object
Alcohol
Alcohol

Action for Alcohol findings.

string
default: alert
Allowed values: off alert hold block
Animals
Animals

Action for Animals findings.

string
default: alert
Allowed values: off alert hold block
Doxxing
Doxxing

Action for Doxxing findings.

string
default: alert
Allowed values: off alert hold block
Drugs
Drugs

Action for Drugs findings.

string
default: alert
Allowed values: off alert hold block
ExternalPayment
Externalpayment

Action for ExternalPayment findings.

string
default: alert
Allowed values: off alert hold block
Fraud
Fraud

Action for Fraud findings.

string
default: alert
Allowed values: off alert hold block
Harassment
Harassment

Action for Harassment findings.

string
default: alert
Allowed values: off alert hold block
Hate
Hate

Action for Hate findings.

string
default: alert
Allowed values: off alert hold block
IllegalServices
Illegalservices

Action for IllegalServices findings.

string
default: alert
Allowed values: off alert hold block
Minors
Minors

Action for Minors findings.

string
default: alert
Allowed values: off alert hold block
NonConsent
Nonconsent

Action for NonConsent findings.

string
default: alert
Allowed values: off alert hold block
Political
Political

Action for Political findings.

string
default: alert
Allowed values: off alert hold block
SelfHarm
Selfharm

Action for SelfHarm findings.

string
default: alert
Allowed values: off alert hold block
Trafficking
Trafficking

Action for Trafficking findings.

string
default: alert
Allowed values: off alert hold block
Violence
Violence

Action for Violence findings.

string
default: alert
Allowed values: off alert hold block
Weapons
Weapons

Action for Weapons findings.

string
default: alert
Allowed values: off alert hold block
text
Text

Moderate text messages.

boolean
default: true
videos
Videos

Moderate videos.

boolean
default: true
voice
Voice

Transcribe and moderate voice notes.

boolean
default: true
notifications
Notifications

Notifications.

object
banner
Banner

Show a banner on new messages.

boolean
default: true
banner_throttle
Banner Throttle

At most one banner per 5s; off replaces it on every message (the sound stays throttled).

boolean
default: true
sound
Sound

Play a sound on new messages.

boolean
default: true
toast_opens
Toast Opens

Clicking the launcher toast opens its conversation, or only the panel.

string
default: conversation
Allowed values: conversation panel
onboarding
Onboarding

Onboarding slides.

object
enabled
Enabled

Show onboarding slides.

boolean
repeat_hours
Any of:
integer
>= 1
reshow_hours
Reshow Hours

Show again after this many hours.

integer
default: 24
slides
Slides

Slides per role.

object
policy
Policy

One row per ordered role pair; a missing pair allows nothing.

Array<object>
default: [object Object]
PolicyRow

The policy for one ordered role pair: from acts on to.

object
block
Block

May block the peer.

boolean
default: true
buy
Buy

May buy from the peer.

boolean
call
Call

May start calls.

boolean
from
required
From

Acting role.

string
/^[A-Za-z0-9_-]{1,32}$/
message
Message

May send messages.

boolean
default: true
offers
Offers

May send ad hoc offer cards.

boolean
photo_consent_required
Photo Consent Required

The receiver must accept photos per conversation.

boolean
photos
Photos

May send photos.

boolean
default: true
require_vouch
Require Vouch

Starting needs a vouch token or the session’s peer.

boolean
see_presence
See Presence

May see the peer’s presence.

boolean
default: true
start_conversation
Start Conversation

May start a conversation.

boolean
default: true
to
required
To

Target role.

string
/^[A-Za-z0-9_-]{1,32}$/
presence
Presence

Online status.

object
enabled
Enabled

Presence enabled.

boolean
default: true
fanout
Fanout

Also push presence changes to each peer’s own channel. Turn off once every client subscribes with presence_pass.

boolean
default: true
in_inbox
In Inbox

Show the online dot and last seen in inbox rows.

boolean
default: true
show_last_seen
Show Last Seen

Show “last seen” times.

boolean
default: true
pwa
Pwa

The chat as an installable app.

object
enabled
Enabled

The chat as an installable app: device sign-in, manifest and pushes; off keeps devices but refuses them.

boolean
icon_url
Any of:
string
<= 2048 characters /^https://\S+$/
login_url
Any of:
string
<= 2048 characters /^https://\S+$/
name
Any of:
string
>= 1 characters <= 45 characters
push_preview
Push Preview

Notifications show the message preview instead of “New message”.

boolean
rate_limits
RateLimits

Rate limits.

object
app_requests_per_second
App Requests Per Second

User requests per second per app.

integer
default: 50 >= 1 <= 10000
retention
Retention

Data retention.

object
ip_log_days
Ip Log Days

Delete IP logs after.

integer
default: 90 >= 1
messages_days
Any of:
integer
>= 1
photos_days
Any of:
integer
>= 1
roles
Roles

User roles.

Array<object>
default: [object Object] >= 1 items
Role

A user role. Roles are referenced by policy, limits, guests and the role claim.

object
key
required
Key

Role key, the value of the role claim.

string
/^[A-Za-z0-9_-]{1,32}$/
label
Label

Display name per language.

object
key
additional properties
string
seller
Seller

Users with this role sell services.

boolean
safety
Safety

Blocking and reporting.

object
ban_close_button
Ban Close Button

The banned panel has its own Close button.

boolean
default: true
report_reasons
Report Reasons

A report asks for a reason; off is a plain confirm.

boolean
default: true
version
Version

Settings schema version.

integer
default: 1
Allowed value: 1
webhooks
Webhooks

Webhook event options.

object
message_text
Message Text

Message.created carries the text.

boolean
notify_kinds
Notify Kinds

Message kinds that make a first contact or an unread streak.

Array<string>
default: text,photo,video,voice <= 4 items
Allowed values: text photo video voice
unread_after_minutes
Unread After Minutes

Send conversation.unread at each delay while the recipient still has unread messages; [] never.

Array<integer>
default: 3 <= 10 items
unread_rearm
Unread Rearm

After the last delay has fired, the next message opens a new streak, so a recipient who never reads is notified again.

boolean
workspace
Workspace

Organising conversations.

object
aliases
Aliases

Users may give peers a private name.

boolean
away_reply
Away Reply

Sellers may set a reply sent for them, once a day per chat, while away.

boolean
inbound
Inbound

Members may take messages from members only.

boolean
notes
Notes

Users may keep a private note on a peer.

boolean
pins
Pins

Users may pin up to 10 conversations.

boolean
queue
Queue

Inbox views, archive, search, spent and purchases, and the sign-up invite.

boolean
quick_replies
Quick Replies

Sellers keep up to 20 saved replies and send one with a tap.

boolean
reply_time
Reply Time

Conversations with a seller carry her typical reply time.

boolean
tiers
Tiers

Client tiers, lowest first; users get one by key.

Array<object>
default: <= 10 items
Tier

A client tier a user can hold.

object
color
required
Color

Badge color.

string
/^#[0-9a-fA-F]{6}$/
key
required
Key

Tier key, the value of a user’s tier.

string
/^[A-Za-z0-9_-]{1,32}$/
label
Label

Display name per language.

object
key
additional properties
string

Example

{
"default_role": "member",
"policy": [
{
"from": "member",
"to": "model"
},
{
"from": "model",
"to": "member"
}
],
"roles": [
{
"key": "member",
"label": {
"en": "Member"
}
},
{
"key": "model",
"label": {
"en": "Model"
}
}
],
"version": 1
}

Problem

Media typeapplication/problem+json

An RFC 9457 problem: the body of every error answer.

object
code
required

The stable error code to branch on, such as policy_denied.

string
detail

What went wrong this time, when there is more to say.

string | null
errors

For validation, one entry per invalid field.

Array<object>

One invalid field.

object
loc

The path to the field.

array
msg

What is wrong with it.

string
instance

The path of the request.

string
reason

For policy_denied and limit_reached, the rule or limit that refused the request; for forbidden, a short cause such as you_blocked; for banned, temporary when the ban expires.

string
status
required

The HTTP status code.

integer
title
required

A short summary of the problem.

string
type
required

A URL that names the problem, https://app.mondochat.io/problems/<code>.

string

Example

{
"code": "policy_denied",
"detail": null,
"instance": "/v1/conversations/0199d6a0-2000-7000-8000-000000000001",
"reason": "pins",
"status": 403,
"title": "Policy denied",
"type": "https://app.mondochat.io/problems/policy_denied"
}