Skip to content

Message extras

Additional extras are used to pass extra information, change client behavior, etc. Extras are stored in a key-value schema and are only accepted in POST /message requests with content type application/json.

Keys under .extras must be in the following format: <top-namespace>::[<sub-namespace>::]<action>. Some namespaces are used by official clients:

NamespaceDescription
client::*Reserved
client::displayChanges how the client displays information
client::notificationConfigures the notification
android::*Reserved
android::actionReacts to events
ios::*Reserved
server::*Reserved
All othersDefined by end users
contentTypedescription
text/markdownDefault; the message should be rendered as markdown. HTML must be ignored.
text/plainThe message will be displayed as plain text. Links may be highlighted and interactive.

Note: Notifly renders messages as markdown by default. Markdown supports displaying images via ![](img url), and those images will be automatically fetched when viewing a message. Similar to why remote content is blocked by default in mail clients, automatically fetching remote images can be used to gather information about the user.

Also, if part of the message is interpolated from a malicious external source, an attacker can inject malformed markdown that leads to information disclosure.

If a message is constructed from external sources (e.g., script output), it is recommended to explicitly set text/plain — plain text does not interpret markdown and reduces potential security issues.

{
"extras": {
"client::display": {
"contentType": "text/plain"
}
}
}
Clientsincedescription
Notifly Web UIv2.0.5Uses GitHub Flavored Markdown
Notifly Androidv2.0.7Uses commonmark-spec

click.url (string): opens a URL when the notification is clicked.

{
"extras": {
"client::notification": {
"click": {"url": "https://notifly.net"}
}
}
}
Clientsincedescription
Notifly Androidv2.0.10Prevents opening the Notifly app by default

bigImageUrl (string): shows a large image in the notification.

{
"extras": {
"client::notification": {
"bigImageUrl": "https://placekitten.com/400/300"
}
}
}
Clientsincedescription
Notifly Androidv2.3.0May require expanding the notification.

onReceive.intentUrl (string): opens an intent after the notification is delivered.

{
"extras": {
"android::action": {
"onReceive": {"intentUrl": "https://notifly.net"}
}
}
}
Clientsincedescription
Notifly Androidv2.0.11”Intent Action Permission” must be enabled in the app settings, otherwise this feature only works when the app is active.