diff --git a/docs/config.md b/docs/config.md
index 2b938f05..7964b0df 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -24,6 +24,9 @@ variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`).
| Config option | Env variable | Format | Default | Description |
|---|---|---|---|---|
| `listen-http` | `NTFY_LISTEN_HTTP` | `[host]:port` | `:80` | Listen address for the HTTP web server |
+| `listen-https` | `NTFY_LISTEN_HTTPS` | `[host]:port` | - | Listen address for the HTTPS web server. If set, you also need to set `key-file` and `cert-file`. |
+| `key-file` | `NTFY_KEY_FILE` | *filename* | - | HTTPS/TLS private key file, only used if `listen-https` is set. |
+| `cert-file` | `NTFY_CERT_FILE` | *filename* | - | HTTPS/TLS certificate file, only used if `listen-https` is set. |
| `firebase-key-file` | `NTFY_FIREBASE_KEY_FILE` | *filename* | - | If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app. This is optional and only required to save battery when using the Android app. |
| `cache-file` | `NTFY_CACHE_FILE` | *filename* | - | If set, messages are cached in a local SQLite database instead of only in-memory. This allows for service restarts without losing messages in support of the since= parameter. |
| `cache-duration` | `NTFY_CACHE_DURATION` | *duration* | 12h | Duration for which messages will be buffered before they are deleted. This is required to support the `since=...` and `poll=1` parameter. |
@@ -67,20 +70,43 @@ firebase-key-file: "/etc/ntfy/ntfy-sh-firebase-adminsdk-ahnce-9f4d6f14b5.json"
## Behind a proxy (TLS, etc.)
!!! warning
- If you are behind a proxy, you must set the `behind-proxy` flag. Otherwise all visitors are rate limited
+ If you are running ntfy behind a proxy, you must set the `behind-proxy` flag. Otherwise all visitors are rate limited
as if they are one.
-**TLS/SSL*: ntfy does not support TLS at this time.
-
-If you are running ntfy behind a proxy (e.g. nginx, HAproxy or Apache), you should set the `behind-proxy` flag. This will
-instruct the [rate limiting](#rate-limiting) logic to use the `X-Forwarded-For` header as the primary identifier
+**Rate limiting:** If you are running ntfy behind a proxy (e.g. nginx, HAproxy or Apache), you should set the `behind-proxy`
+flag. This will instruct the [rate limiting](#rate-limiting) logic to use the `X-Forwarded-For` header as the primary
+identifier for a visitor, as opposed to the remote IP address. If the `behing-proxy` flag is not set, all visitors will
+be counted as one, because from the perspective of the ntfy server, they all share the proxy's IP address.
+**TLS/SSL:** ntfy supports HTTPS/TLS by setting the `listen-https` config option. However, if you are behind a proxy, it is
+recommended that TLS/SSL termination is done by the proxy itself.
## Rate limiting
-Rate limiting: Allowed GET/PUT/POST requests per second, per visitor:
-- visitor-request-limit-burst is the initial bucket of requests each visitor has
-- visitor-request-limit-replenish is the rate at which the bucket is refilled
+!!! info
+ Be aware that if you are running ntfy behind a proxy, you must set the `behind-proxy` flag.
+ Otherwise all visitors are rate limited as if they are one.
+By default, ntfy runs without authentication, so it is vitally important that we protect the server from abuse or overload.
+There are various limits and rate limits in place that you can use to configure the server. Let's do the easy ones first:
+
+* `global-topic-limit` defines the total number of topics before the server rejects new topics. It defaults to 5000.
+* `visitor-subscription-limit` is the number of subscriptions (open connections) per visitor. This value defaults to 30.
+
+A **visitor** is identified by its IP address (or the `X-Forwarded-For` header if `behind-proxy` is set). All config
+options that start with the word `visitor` apply only on a per-visitor basis.
+
+In addition to the limits above, there is a requests/second limit per visitor for all sensitive GET/PUT/POST requests.
+This limit uses a [token bucket](https://en.wikipedia.org/wiki/Token_bucket) (using Go's [rate package](https://pkg.go.dev/golang.org/x/time/rate)):
+
+Each visitor has a bucket of 60 requests they can fire against the server (defined by `visitor-request-limit-burst`).
+After the 60, new requests will encounter a `429 Too Many Requests` response. The visitor request bucket is refilled at a rate of one
+request every 10s (defined by `visitor-request-limit-replenish`)
+
+* `visitor-request-limit-burst` is the initial bucket of requests each visitor has. This defaults to 60.
+* `visitor-request-limit-replenish` is the rate at which the bucket is refilled (one request per x). Defaults to 10s.
+
+During normal usage, you shouldn't encounter this limit at all, and even if you burst a few requests shortly (e.g. when you
+reconnect after a connection drop), it shouldn't have any effect.
## Command line options
```
diff --git a/docs/emojis.md b/docs/emojis.md
new file mode 100644
index 00000000..594a6ec0
--- /dev/null
+++ b/docs/emojis.md
@@ -0,0 +1,1831 @@
+# Emoji reference
+
+
+
+You can [tag messages](../publish/#tags-emojis) with emojis ๐ฅณ ๐ and other relevant strings. Matching tags are automatically
+converted to emojis. This is a reference of all supported emojis. To learn more about the feature, please refer to the
+[tagging and emojis page](../publish/#tags-emojis).
+
+
+
+
Tag
Emoji
+
grinning
๐
+
smiley
๐
+
smile
๐
+
grin
๐
+
laughing
๐
+
sweat_smile
๐
+
rofl
๐คฃ
+
joy
๐
+
slightly_smiling_face
๐
+
upside_down_face
๐
+
wink
๐
+
blush
๐
+
innocent
๐
+
smiling_face_with_three_hearts
๐ฅฐ
+
heart_eyes
๐
+
star_struck
๐คฉ
+
kissing_heart
๐
+
kissing
๐
+
relaxed
โบ๏ธ
+
kissing_closed_eyes
๐
+
kissing_smiling_eyes
๐
+
smiling_face_with_tear
๐ฅฒ
+
yum
๐
+
stuck_out_tongue
๐
+
stuck_out_tongue_winking_eye
๐
+
zany_face
๐คช
+
stuck_out_tongue_closed_eyes
๐
+
money_mouth_face
๐ค
+
hugs
๐ค
+
hand_over_mouth
๐คญ
+
shushing_face
๐คซ
+
thinking
๐ค
+
zipper_mouth_face
๐ค
+
raised_eyebrow
๐คจ
+
neutral_face
๐
+
expressionless
๐
+
no_mouth
๐ถ
+
face_in_clouds
๐ถโ๐ซ๏ธ
+
smirk
๐
+
unamused
๐
+
roll_eyes
๐
+
grimacing
๐ฌ
+
face_exhaling
๐ฎโ๐จ
+
lying_face
๐คฅ
+
relieved
๐
+
pensive
๐
+
sleepy
๐ช
+
drooling_face
๐คค
+
sleeping
๐ด
+
mask
๐ท
+
face_with_thermometer
๐ค
+
face_with_head_bandage
๐ค
+
nauseated_face
๐คข
+
vomiting_face
๐คฎ
+
sneezing_face
๐คง
+
hot_face
๐ฅต
+
cold_face
๐ฅถ
+
woozy_face
๐ฅด
+
dizzy_face
๐ต
+
face_with_spiral_eyes
๐ตโ๐ซ
+
exploding_head
๐คฏ
+
cowboy_hat_face
๐ค
+
partying_face
๐ฅณ
+
disguised_face
๐ฅธ
+
sunglasses
๐
+
nerd_face
๐ค
+
monocle_face
๐ง
+
confused
๐
+
worried
๐
+
slightly_frowning_face
๐
+
frowning_face
โน๏ธ
+
open_mouth
๐ฎ
+
hushed
๐ฏ
+
astonished
๐ฒ
+
flushed
๐ณ
+
pleading_face
๐ฅบ
+
frowning
๐ฆ
+
anguished
๐ง
+
fearful
๐จ
+
cold_sweat
๐ฐ
+
disappointed_relieved
๐ฅ
+
cry
๐ข
+
sob
๐ญ
+
scream
๐ฑ
+
confounded
๐
+
persevere
๐ฃ
+
disappointed
๐
+
sweat
๐
+
weary
๐ฉ
+
tired_face
๐ซ
+
yawning_face
๐ฅฑ
+
triumph
๐ค
+
rage
๐ก
+
angry
๐
+
cursing_face
๐คฌ
+
smiling_imp
๐
+
imp
๐ฟ
+
skull
๐
+
skull_and_crossbones
โ ๏ธ
+
hankey
๐ฉ
+
clown_face
๐คก
+
japanese_ogre
๐น
+
japanese_goblin
๐บ
+
ghost
๐ป
+
alien
๐ฝ
+
space_invader
๐พ
+
robot
๐ค
+
smiley_cat
๐บ
+
smile_cat
๐ธ
+
joy_cat
๐น
+
heart_eyes_cat
๐ป
+
smirk_cat
๐ผ
+
kissing_cat
๐ฝ
+
scream_cat
๐
+
crying_cat_face
๐ฟ
+
pouting_cat
๐พ
+
see_no_evil
๐
+
hear_no_evil
๐
+
speak_no_evil
๐
+
kiss
๐
+
love_letter
๐
+
cupid
๐
+
gift_heart
๐
+
sparkling_heart
๐
+
heartpulse
๐
+
heartbeat
๐
+
revolving_hearts
๐
+
two_hearts
๐
+
heart_decoration
๐
+
heavy_heart_exclamation
โฃ๏ธ
+
broken_heart
๐
+
heart_on_fire
โค๏ธโ๐ฅ
+
mending_heart
โค๏ธโ๐ฉน
+
heart
โค๏ธ
+
orange_heart
๐งก
+
yellow_heart
๐
+
green_heart
๐
+
blue_heart
๐
+
purple_heart
๐
+
brown_heart
๐ค
+
black_heart
๐ค
+
white_heart
๐ค
+
100
๐ฏ
+
anger
๐ข
+
boom
๐ฅ
+
dizzy
๐ซ
+
sweat_drops
๐ฆ
+
dash
๐จ
+
hole
๐ณ๏ธ
+
bomb
๐ฃ
+
speech_balloon
๐ฌ
+
eye_speech_bubble
๐๏ธโ๐จ๏ธ
+
left_speech_bubble
๐จ๏ธ
+
right_anger_bubble
๐ฏ๏ธ
+
thought_balloon
๐ญ
+
zzz
๐ค
+
wave
๐
+
raised_back_of_hand
๐ค
+
raised_hand_with_fingers_splayed
๐๏ธ
+
hand
โ
+
vulcan_salute
๐
+
ok_hand
๐
+
pinched_fingers
๐ค
+
pinching_hand
๐ค
+
v
โ๏ธ
+
crossed_fingers
๐ค
+
love_you_gesture
๐ค
+
metal
๐ค
+
call_me_hand
๐ค
+
point_left
๐
+
point_right
๐
+
point_up_2
๐
+
middle_finger
๐
+
point_down
๐
+
point_up
โ๏ธ
+
+1
๐
+
-1
๐
+
fist_raised
โ
+
fist_oncoming
๐
+
fist_left
๐ค
+
fist_right
๐ค
+
clap
๐
+
raised_hands
๐
+
open_hands
๐
+
palms_up_together
๐คฒ
+
handshake
๐ค
+
pray
๐
+
writing_hand
โ๏ธ
+
nail_care
๐
+
selfie
๐คณ
+
muscle
๐ช
+
mechanical_arm
๐ฆพ
+
mechanical_leg
๐ฆฟ
+
leg
๐ฆต
+
foot
๐ฆถ
+
ear
๐
+
ear_with_hearing_aid
๐ฆป
+
nose
๐
+
brain
๐ง
+
anatomical_heart
๐ซ
+
lungs
๐ซ
+
tooth
๐ฆท
+
bone
๐ฆด
+
eyes
๐
+
eye
๐๏ธ
+
tongue
๐
+
lips
๐
+
baby
๐ถ
+
child
๐ง
+
boy
๐ฆ
+
girl
๐ง
+
adult
๐ง
+
blond_haired_person
๐ฑ
+
man
๐จ
+
bearded_person
๐ง
+
man_beard
๐งโโ๏ธ
+
woman_beard
๐งโโ๏ธ
+
red_haired_man
๐จโ๐ฆฐ
+
curly_haired_man
๐จโ๐ฆฑ
+
white_haired_man
๐จโ๐ฆณ
+
bald_man
๐จโ๐ฆฒ
+
woman
๐ฉ
+
red_haired_woman
๐ฉโ๐ฆฐ
+
person_red_hair
๐งโ๐ฆฐ
+
curly_haired_woman
๐ฉโ๐ฆฑ
+
person_curly_hair
๐งโ๐ฆฑ
+
white_haired_woman
๐ฉโ๐ฆณ
+
person_white_hair
๐งโ๐ฆณ
+
bald_woman
๐ฉโ๐ฆฒ
+
person_bald
๐งโ๐ฆฒ
+
blond_haired_woman
๐ฑโโ๏ธ
+
blond_haired_man
๐ฑโโ๏ธ
+
older_adult
๐ง
+
older_man
๐ด
+
older_woman
๐ต
+
frowning_person
๐
+
frowning_man
๐โโ๏ธ
+
frowning_woman
๐โโ๏ธ
+
pouting_face
๐
+
pouting_man
๐โโ๏ธ
+
pouting_woman
๐โโ๏ธ
+
no_good
๐
+
no_good_man
๐ โโ๏ธ
+
no_good_woman
๐ โโ๏ธ
+
ok_person
๐
+
ok_man
๐โโ๏ธ
+
ok_woman
๐โโ๏ธ
+
tipping_hand_person
๐
+
tipping_hand_man
๐โโ๏ธ
+
tipping_hand_woman
๐โโ๏ธ
+
raising_hand
๐
+
raising_hand_man
๐โโ๏ธ
+
raising_hand_woman
๐โโ๏ธ
+
deaf_person
๐ง
+
deaf_man
๐งโโ๏ธ
+
deaf_woman
๐งโโ๏ธ
+
bow
๐
+
bowing_man
๐โโ๏ธ
+
bowing_woman
๐โโ๏ธ
+
facepalm
๐คฆ
+
man_facepalming
๐คฆโโ๏ธ
+
woman_facepalming
๐คฆโโ๏ธ
+
shrug
๐คท
+
man_shrugging
๐คทโโ๏ธ
+
woman_shrugging
๐คทโโ๏ธ
+
health_worker
๐งโโ๏ธ
+
man_health_worker
๐จโโ๏ธ
+
woman_health_worker
๐ฉโโ๏ธ
+
student
๐งโ๐
+
man_student
๐จโ๐
+
woman_student
๐ฉโ๐
+
teacher
๐งโ๐ซ
+
man_teacher
๐จโ๐ซ
+
woman_teacher
๐ฉโ๐ซ
+
judge
๐งโโ๏ธ
+
man_judge
๐จโโ๏ธ
+
woman_judge
๐ฉโโ๏ธ
+
farmer
๐งโ๐พ
+
man_farmer
๐จโ๐พ
+
woman_farmer
๐ฉโ๐พ
+
cook
๐งโ๐ณ
+
man_cook
๐จโ๐ณ
+
woman_cook
๐ฉโ๐ณ
+
mechanic
๐งโ๐ง
+
man_mechanic
๐จโ๐ง
+
woman_mechanic
๐ฉโ๐ง
+
factory_worker
๐งโ๐ญ
+
man_factory_worker
๐จโ๐ญ
+
woman_factory_worker
๐ฉโ๐ญ
+
office_worker
๐งโ๐ผ
+
man_office_worker
๐จโ๐ผ
+
woman_office_worker
๐ฉโ๐ผ
+
scientist
๐งโ๐ฌ
+
man_scientist
๐จโ๐ฌ
+
woman_scientist
๐ฉโ๐ฌ
+
technologist
๐งโ๐ป
+
man_technologist
๐จโ๐ป
+
woman_technologist
๐ฉโ๐ป
+
singer
๐งโ๐ค
+
man_singer
๐จโ๐ค
+
woman_singer
๐ฉโ๐ค
+
artist
๐งโ๐จ
+
man_artist
๐จโ๐จ
+
woman_artist
๐ฉโ๐จ
+
pilot
๐งโโ๏ธ
+
man_pilot
๐จโโ๏ธ
+
woman_pilot
๐ฉโโ๏ธ
+
astronaut
๐งโ๐
+
man_astronaut
๐จโ๐
+
woman_astronaut
๐ฉโ๐
+
firefighter
๐งโ๐
+
man_firefighter
๐จโ๐
+
woman_firefighter
๐ฉโ๐
+
police_officer
๐ฎ
+
policeman
๐ฎโโ๏ธ
+
policewoman
๐ฎโโ๏ธ
+
detective
๐ต๏ธ
+
male_detective
๐ต๏ธโโ๏ธ
+
female_detective
๐ต๏ธโโ๏ธ
+
guard
๐
+
guardsman
๐โโ๏ธ
+
guardswoman
๐โโ๏ธ
+
ninja
๐ฅท
+
construction_worker
๐ท
+
construction_worker_man
๐ทโโ๏ธ
+
construction_worker_woman
๐ทโโ๏ธ
+
prince
๐คด
+
princess
๐ธ
+
person_with_turban
๐ณ
+
man_with_turban
๐ณโโ๏ธ
+
woman_with_turban
๐ณโโ๏ธ
+
man_with_gua_pi_mao
๐ฒ
+
woman_with_headscarf
๐ง
+
person_in_tuxedo
๐คต
+
man_in_tuxedo
๐คตโโ๏ธ
+
woman_in_tuxedo
๐คตโโ๏ธ
+
person_with_veil
๐ฐ
+
man_with_veil
๐ฐโโ๏ธ
+
woman_with_veil
๐ฐโโ๏ธ
+
pregnant_woman
๐คฐ
+
breast_feeding
๐คฑ
+
woman_feeding_baby
๐ฉโ๐ผ
+
man_feeding_baby
๐จโ๐ผ
+
person_feeding_baby
๐งโ๐ผ
+
angel
๐ผ
+
santa
๐
+
mrs_claus
๐คถ
+
mx_claus
๐งโ๐
+
superhero
๐ฆธ
+
superhero_man
๐ฆธโโ๏ธ
+
superhero_woman
๐ฆธโโ๏ธ
+
supervillain
๐ฆน
+
supervillain_man
๐ฆนโโ๏ธ
+
supervillain_woman
๐ฆนโโ๏ธ
+
mage
๐ง
+
mage_man
๐งโโ๏ธ
+
mage_woman
๐งโโ๏ธ
+
fairy
๐ง
+
fairy_man
๐งโโ๏ธ
+
fairy_woman
๐งโโ๏ธ
+
vampire
๐ง
+
vampire_man
๐งโโ๏ธ
+
vampire_woman
๐งโโ๏ธ
+
merperson
๐ง
+
merman
๐งโโ๏ธ
+
mermaid
๐งโโ๏ธ
+
elf
๐ง
+
elf_man
๐งโโ๏ธ
+
elf_woman
๐งโโ๏ธ
+
genie
๐ง
+
genie_man
๐งโโ๏ธ
+
genie_woman
๐งโโ๏ธ
+
zombie
๐ง
+
zombie_man
๐งโโ๏ธ
+
zombie_woman
๐งโโ๏ธ
+
massage
๐
+
massage_man
๐โโ๏ธ
+
massage_woman
๐โโ๏ธ
+
haircut
๐
+
haircut_man
๐โโ๏ธ
+
haircut_woman
๐โโ๏ธ
+
walking
๐ถ
+
walking_man
๐ถโโ๏ธ
+
walking_woman
๐ถโโ๏ธ
+
standing_person
๐ง
+
standing_man
๐งโโ๏ธ
+
standing_woman
๐งโโ๏ธ
+
kneeling_person
๐ง
+
kneeling_man
๐งโโ๏ธ
+
kneeling_woman
๐งโโ๏ธ
+
person_with_probing_cane
๐งโ๐ฆฏ
+
man_with_probing_cane
๐จโ๐ฆฏ
+
woman_with_probing_cane
๐ฉโ๐ฆฏ
+
person_in_motorized_wheelchair
๐งโ๐ฆผ
+
man_in_motorized_wheelchair
๐จโ๐ฆผ
+
woman_in_motorized_wheelchair
๐ฉโ๐ฆผ
+
person_in_manual_wheelchair
๐งโ๐ฆฝ
+
man_in_manual_wheelchair
๐จโ๐ฆฝ
+
woman_in_manual_wheelchair
๐ฉโ๐ฆฝ
+
runner
๐
+
running_man
๐โโ๏ธ
+
running_woman
๐โโ๏ธ
+
woman_dancing
๐
+
man_dancing
๐บ
+
business_suit_levitating
๐ด๏ธ
+
dancers
๐ฏ
+
dancing_men
๐ฏโโ๏ธ
+
dancing_women
๐ฏโโ๏ธ
+
sauna_person
๐ง
+
sauna_man
๐งโโ๏ธ
+
sauna_woman
๐งโโ๏ธ
+
climbing
๐ง
+
climbing_man
๐งโโ๏ธ
+
climbing_woman
๐งโโ๏ธ
+
person_fencing
๐คบ
+
horse_racing
๐
+
skier
โท๏ธ
+
snowboarder
๐
+
golfing
๐๏ธ
+
golfing_man
๐๏ธโโ๏ธ
+
golfing_woman
๐๏ธโโ๏ธ
+
surfer
๐
+
surfing_man
๐โโ๏ธ
+
surfing_woman
๐โโ๏ธ
+
rowboat
๐ฃ
+
rowing_man
๐ฃโโ๏ธ
+
rowing_woman
๐ฃโโ๏ธ
+
swimmer
๐
+
swimming_man
๐โโ๏ธ
+
swimming_woman
๐โโ๏ธ
+
bouncing_ball_person
โน๏ธ
+
bouncing_ball_man
โน๏ธโโ๏ธ
+
bouncing_ball_woman
โน๏ธโโ๏ธ
+
weight_lifting
๐๏ธ
+
weight_lifting_man
๐๏ธโโ๏ธ
+
weight_lifting_woman
๐๏ธโโ๏ธ
+
bicyclist
๐ด
+
biking_man
๐ดโโ๏ธ
+
biking_woman
๐ดโโ๏ธ
+
mountain_bicyclist
๐ต
+
mountain_biking_man
๐ตโโ๏ธ
+
mountain_biking_woman
๐ตโโ๏ธ
+
cartwheeling
๐คธ
+
man_cartwheeling
๐คธโโ๏ธ
+
woman_cartwheeling
๐คธโโ๏ธ
+
wrestling
๐คผ
+
men_wrestling
๐คผโโ๏ธ
+
women_wrestling
๐คผโโ๏ธ
+
water_polo
๐คฝ
+
man_playing_water_polo
๐คฝโโ๏ธ
+
woman_playing_water_polo
๐คฝโโ๏ธ
+
handball_person
๐คพ
+
man_playing_handball
๐คพโโ๏ธ
+
woman_playing_handball
๐คพโโ๏ธ
+
juggling_person
๐คน
+
man_juggling
๐คนโโ๏ธ
+
woman_juggling
๐คนโโ๏ธ
+
lotus_position
๐ง
+
lotus_position_man
๐งโโ๏ธ
+
lotus_position_woman
๐งโโ๏ธ
+
bath
๐
+
sleeping_bed
๐
+
people_holding_hands
๐งโ๐คโ๐ง
+
two_women_holding_hands
๐ญ
+
couple
๐ซ
+
two_men_holding_hands
๐ฌ
+
couplekiss
๐
+
couplekiss_man_woman
๐ฉโโค๏ธโ๐โ๐จ
+
couplekiss_man_man
๐จโโค๏ธโ๐โ๐จ
+
couplekiss_woman_woman
๐ฉโโค๏ธโ๐โ๐ฉ
+
couple_with_heart
๐
+
couple_with_heart_woman_man
๐ฉโโค๏ธโ๐จ
+
couple_with_heart_man_man
๐จโโค๏ธโ๐จ
+
couple_with_heart_woman_woman
๐ฉโโค๏ธโ๐ฉ
+
family
๐ช
+
family_man_woman_boy
๐จโ๐ฉโ๐ฆ
+
family_man_woman_girl
๐จโ๐ฉโ๐ง
+
family_man_woman_girl_boy
๐จโ๐ฉโ๐งโ๐ฆ
+
family_man_woman_boy_boy
๐จโ๐ฉโ๐ฆโ๐ฆ
+
family_man_woman_girl_girl
๐จโ๐ฉโ๐งโ๐ง
+
family_man_man_boy
๐จโ๐จโ๐ฆ
+
family_man_man_girl
๐จโ๐จโ๐ง
+
family_man_man_girl_boy
๐จโ๐จโ๐งโ๐ฆ
+
family_man_man_boy_boy
๐จโ๐จโ๐ฆโ๐ฆ
+
family_man_man_girl_girl
๐จโ๐จโ๐งโ๐ง
+
family_woman_woman_boy
๐ฉโ๐ฉโ๐ฆ
+
family_woman_woman_girl
๐ฉโ๐ฉโ๐ง
+
family_woman_woman_girl_boy
๐ฉโ๐ฉโ๐งโ๐ฆ
+
family_woman_woman_boy_boy
๐ฉโ๐ฉโ๐ฆโ๐ฆ
+
family_woman_woman_girl_girl
๐ฉโ๐ฉโ๐งโ๐ง
+
family_man_boy
๐จโ๐ฆ
+
family_man_boy_boy
๐จโ๐ฆโ๐ฆ
+
family_man_girl
๐จโ๐ง
+
family_man_girl_boy
๐จโ๐งโ๐ฆ
+
family_man_girl_girl
๐จโ๐งโ๐ง
+
family_woman_boy
๐ฉโ๐ฆ
+
family_woman_boy_boy
๐ฉโ๐ฆโ๐ฆ
+
family_woman_girl
๐ฉโ๐ง
+
family_woman_girl_boy
๐ฉโ๐งโ๐ฆ
+
family_woman_girl_girl
๐ฉโ๐งโ๐ง
+
speaking_head
๐ฃ๏ธ
+
bust_in_silhouette
๐ค
+
busts_in_silhouette
๐ฅ
+
people_hugging
๐ซ
+
footprints
๐ฃ
+
monkey_face
๐ต
+
monkey
๐
+
gorilla
๐ฆ
+
orangutan
๐ฆง
+
dog
๐ถ
+
dog2
๐
+
guide_dog
๐ฆฎ
+
service_dog
๐โ๐ฆบ
+
poodle
๐ฉ
+
wolf
๐บ
+
fox_face
๐ฆ
+
raccoon
๐ฆ
+
cat
๐ฑ
+
cat2
๐
+
black_cat
๐โโฌ
+
lion
๐ฆ
+
tiger
๐ฏ
+
tiger2
๐
+
leopard
๐
+
horse
๐ด
+
racehorse
๐
+
unicorn
๐ฆ
+
zebra
๐ฆ
+
deer
๐ฆ
+
bison
๐ฆฌ
+
cow
๐ฎ
+
ox
๐
+
water_buffalo
๐
+
cow2
๐
+
pig
๐ท
+
pig2
๐
+
boar
๐
+
pig_nose
๐ฝ
+
ram
๐
+
sheep
๐
+
goat
๐
+
dromedary_camel
๐ช
+
camel
๐ซ
+
llama
๐ฆ
+
giraffe
๐ฆ
+
elephant
๐
+
mammoth
๐ฆฃ
+
rhinoceros
๐ฆ
+
hippopotamus
๐ฆ
+
mouse
๐ญ
+
mouse2
๐
+
rat
๐
+
hamster
๐น
+
rabbit
๐ฐ
+
rabbit2
๐
+
chipmunk
๐ฟ๏ธ
+
beaver
๐ฆซ
+
hedgehog
๐ฆ
+
bat
๐ฆ
+
bear
๐ป
+
polar_bear
๐ปโโ๏ธ
+
koala
๐จ
+
panda_face
๐ผ
+
sloth
๐ฆฅ
+
otter
๐ฆฆ
+
skunk
๐ฆจ
+
kangaroo
๐ฆ
+
badger
๐ฆก
+
feet
๐พ
+
turkey
๐ฆ
+
chicken
๐
+
rooster
๐
+
hatching_chick
๐ฃ
+
baby_chick
๐ค
+
hatched_chick
๐ฅ
+
bird
๐ฆ
+
penguin
๐ง
+
dove
๐๏ธ
+
eagle
๐ฆ
+
duck
๐ฆ
+
swan
๐ฆข
+
owl
๐ฆ
+
dodo
๐ฆค
+
feather
๐ชถ
+
flamingo
๐ฆฉ
+
peacock
๐ฆ
+
parrot
๐ฆ
+
frog
๐ธ
+
crocodile
๐
+
turtle
๐ข
+
lizard
๐ฆ
+
snake
๐
+
dragon_face
๐ฒ
+
dragon
๐
+
sauropod
๐ฆ
+
t-rex
๐ฆ
+
whale
๐ณ
+
whale2
๐
+
dolphin
๐ฌ
+
seal
๐ฆญ
+
fish
๐
+
tropical_fish
๐
+
blowfish
๐ก
+
shark
๐ฆ
+
octopus
๐
+
+
Tag
Emoji
+
octopus
๐
+
shell
๐
+
snail
๐
+
butterfly
๐ฆ
+
bug
๐
+
ant
๐
+
bee
๐
+
beetle
๐ชฒ
+
lady_beetle
๐
+
cricket
๐ฆ
+
cockroach
๐ชณ
+
spider
๐ท๏ธ
+
spider_web
๐ธ๏ธ
+
scorpion
๐ฆ
+
mosquito
๐ฆ
+
fly
๐ชฐ
+
worm
๐ชฑ
+
microbe
๐ฆ
+
bouquet
๐
+
cherry_blossom
๐ธ
+
white_flower
๐ฎ
+
rosette
๐ต๏ธ
+
rose
๐น
+
wilted_flower
๐ฅ
+
hibiscus
๐บ
+
sunflower
๐ป
+
blossom
๐ผ
+
tulip
๐ท
+
seedling
๐ฑ
+
potted_plant
๐ชด
+
evergreen_tree
๐ฒ
+
deciduous_tree
๐ณ
+
palm_tree
๐ด
+
cactus
๐ต
+
ear_of_rice
๐พ
+
herb
๐ฟ
+
shamrock
โ๏ธ
+
four_leaf_clover
๐
+
maple_leaf
๐
+
fallen_leaf
๐
+
leaves
๐
+
grapes
๐
+
melon
๐
+
watermelon
๐
+
tangerine
๐
+
lemon
๐
+
banana
๐
+
pineapple
๐
+
mango
๐ฅญ
+
apple
๐
+
green_apple
๐
+
pear
๐
+
peach
๐
+
cherries
๐
+
strawberry
๐
+
blueberries
๐ซ
+
kiwi_fruit
๐ฅ
+
tomato
๐
+
olive
๐ซ
+
coconut
๐ฅฅ
+
avocado
๐ฅ
+
eggplant
๐
+
potato
๐ฅ
+
carrot
๐ฅ
+
corn
๐ฝ
+
hot_pepper
๐ถ๏ธ
+
bell_pepper
๐ซ
+
cucumber
๐ฅ
+
leafy_green
๐ฅฌ
+
broccoli
๐ฅฆ
+
garlic
๐ง
+
onion
๐ง
+
mushroom
๐
+
peanuts
๐ฅ
+
chestnut
๐ฐ
+
bread
๐
+
croissant
๐ฅ
+
baguette_bread
๐ฅ
+
flatbread
๐ซ
+
pretzel
๐ฅจ
+
bagel
๐ฅฏ
+
pancakes
๐ฅ
+
waffle
๐ง
+
cheese
๐ง
+
meat_on_bone
๐
+
poultry_leg
๐
+
cut_of_meat
๐ฅฉ
+
bacon
๐ฅ
+
hamburger
๐
+
fries
๐
+
pizza
๐
+
hotdog
๐ญ
+
sandwich
๐ฅช
+
taco
๐ฎ
+
burrito
๐ฏ
+
tamale
๐ซ
+
stuffed_flatbread
๐ฅ
+
falafel
๐ง
+
egg
๐ฅ
+
fried_egg
๐ณ
+
shallow_pan_of_food
๐ฅ
+
stew
๐ฒ
+
fondue
๐ซ
+
bowl_with_spoon
๐ฅฃ
+
green_salad
๐ฅ
+
popcorn
๐ฟ
+
butter
๐ง
+
salt
๐ง
+
canned_food
๐ฅซ
+
bento
๐ฑ
+
rice_cracker
๐
+
rice_ball
๐
+
rice
๐
+
curry
๐
+
ramen
๐
+
spaghetti
๐
+
sweet_potato
๐
+
oden
๐ข
+
sushi
๐ฃ
+
fried_shrimp
๐ค
+
fish_cake
๐ฅ
+
moon_cake
๐ฅฎ
+
dango
๐ก
+
dumpling
๐ฅ
+
fortune_cookie
๐ฅ
+
takeout_box
๐ฅก
+
crab
๐ฆ
+
lobster
๐ฆ
+
shrimp
๐ฆ
+
squid
๐ฆ
+
oyster
๐ฆช
+
icecream
๐ฆ
+
shaved_ice
๐ง
+
ice_cream
๐จ
+
doughnut
๐ฉ
+
cookie
๐ช
+
birthday
๐
+
cake
๐ฐ
+
cupcake
๐ง
+
pie
๐ฅง
+
chocolate_bar
๐ซ
+
candy
๐ฌ
+
lollipop
๐ญ
+
custard
๐ฎ
+
honey_pot
๐ฏ
+
baby_bottle
๐ผ
+
milk_glass
๐ฅ
+
coffee
โ
+
teapot
๐ซ
+
tea
๐ต
+
sake
๐ถ
+
champagne
๐พ
+
wine_glass
๐ท
+
cocktail
๐ธ
+
tropical_drink
๐น
+
beer
๐บ
+
beers
๐ป
+
clinking_glasses
๐ฅ
+
tumbler_glass
๐ฅ
+
cup_with_straw
๐ฅค
+
bubble_tea
๐ง
+
beverage_box
๐ง
+
mate
๐ง
+
ice_cube
๐ง
+
chopsticks
๐ฅข
+
plate_with_cutlery
๐ฝ๏ธ
+
fork_and_knife
๐ด
+
spoon
๐ฅ
+
hocho
๐ช
+
amphora
๐บ
+
earth_africa
๐
+
earth_americas
๐
+
earth_asia
๐
+
globe_with_meridians
๐
+
world_map
๐บ๏ธ
+
japan
๐พ
+
compass
๐งญ
+
mountain_snow
๐๏ธ
+
mountain
โฐ๏ธ
+
volcano
๐
+
mount_fuji
๐ป
+
camping
๐๏ธ
+
beach_umbrella
๐๏ธ
+
desert
๐๏ธ
+
desert_island
๐๏ธ
+
national_park
๐๏ธ
+
stadium
๐๏ธ
+
classical_building
๐๏ธ
+
building_construction
๐๏ธ
+
bricks
๐งฑ
+
rock
๐ชจ
+
wood
๐ชต
+
hut
๐
+
houses
๐๏ธ
+
derelict_house
๐๏ธ
+
house
๐
+
house_with_garden
๐ก
+
office
๐ข
+
post_office
๐ฃ
+
european_post_office
๐ค
+
hospital
๐ฅ
+
bank
๐ฆ
+
hotel
๐จ
+
love_hotel
๐ฉ
+
convenience_store
๐ช
+
school
๐ซ
+
department_store
๐ฌ
+
factory
๐ญ
+
japanese_castle
๐ฏ
+
european_castle
๐ฐ
+
wedding
๐
+
tokyo_tower
๐ผ
+
statue_of_liberty
๐ฝ
+
church
โช
+
mosque
๐
+
hindu_temple
๐
+
synagogue
๐
+
shinto_shrine
โฉ๏ธ
+
kaaba
๐
+
fountain
โฒ
+
tent
โบ
+
foggy
๐
+
night_with_stars
๐
+
cityscape
๐๏ธ
+
sunrise_over_mountains
๐
+
sunrise
๐
+
city_sunset
๐
+
city_sunrise
๐
+
bridge_at_night
๐
+
hotsprings
โจ๏ธ
+
carousel_horse
๐
+
ferris_wheel
๐ก
+
roller_coaster
๐ข
+
barber
๐
+
circus_tent
๐ช
+
steam_locomotive
๐
+
railway_car
๐
+
bullettrain_side
๐
+
bullettrain_front
๐
+
train2
๐
+
metro
๐
+
light_rail
๐
+
station
๐
+
tram
๐
+
monorail
๐
+
mountain_railway
๐
+
train
๐
+
bus
๐
+
oncoming_bus
๐
+
trolleybus
๐
+
minibus
๐
+
ambulance
๐
+
fire_engine
๐
+
police_car
๐
+
oncoming_police_car
๐
+
taxi
๐
+
oncoming_taxi
๐
+
car
๐
+
oncoming_automobile
๐
+
blue_car
๐
+
pickup_truck
๐ป
+
truck
๐
+
articulated_lorry
๐
+
tractor
๐
+
racing_car
๐๏ธ
+
motorcycle
๐๏ธ
+
motor_scooter
๐ต
+
manual_wheelchair
๐ฆฝ
+
motorized_wheelchair
๐ฆผ
+
auto_rickshaw
๐บ
+
bike
๐ฒ
+
kick_scooter
๐ด
+
skateboard
๐น
+
roller_skate
๐ผ
+
busstop
๐
+
motorway
๐ฃ๏ธ
+
railway_track
๐ค๏ธ
+
oil_drum
๐ข๏ธ
+
fuelpump
โฝ
+
rotating_light
๐จ
+
traffic_light
๐ฅ
+
vertical_traffic_light
๐ฆ
+
stop_sign
๐
+
construction
๐ง
+
anchor
โ
+
boat
โต
+
canoe
๐ถ
+
speedboat
๐ค
+
passenger_ship
๐ณ๏ธ
+
ferry
โด๏ธ
+
motor_boat
๐ฅ๏ธ
+
ship
๐ข
+
airplane
โ๏ธ
+
small_airplane
๐ฉ๏ธ
+
flight_departure
๐ซ
+
flight_arrival
๐ฌ
+
parachute
๐ช
+
seat
๐บ
+
helicopter
๐
+
suspension_railway
๐
+
mountain_cableway
๐
+
aerial_tramway
๐ก
+
artificial_satellite
๐ฐ๏ธ
+
rocket
๐
+
flying_saucer
๐ธ
+
bellhop_bell
๐๏ธ
+
luggage
๐งณ
+
hourglass
โ
+
hourglass_flowing_sand
โณ
+
watch
โ
+
alarm_clock
โฐ
+
stopwatch
โฑ๏ธ
+
timer_clock
โฒ๏ธ
+
mantelpiece_clock
๐ฐ๏ธ
+
clock12
๐
+
clock1230
๐ง
+
clock1
๐
+
clock130
๐
+
clock2
๐
+
clock230
๐
+
clock3
๐
+
clock330
๐
+
clock4
๐
+
clock430
๐
+
clock5
๐
+
clock530
๐
+
clock6
๐
+
clock630
๐ก
+
clock7
๐
+
clock730
๐ข
+
clock8
๐
+
clock830
๐ฃ
+
clock9
๐
+
clock930
๐ค
+
clock10
๐
+
clock1030
๐ฅ
+
clock11
๐
+
clock1130
๐ฆ
+
new_moon
๐
+
waxing_crescent_moon
๐
+
first_quarter_moon
๐
+
moon
๐
+
full_moon
๐
+
waning_gibbous_moon
๐
+
last_quarter_moon
๐
+
waning_crescent_moon
๐
+
crescent_moon
๐
+
new_moon_with_face
๐
+
first_quarter_moon_with_face
๐
+
last_quarter_moon_with_face
๐
+
thermometer
๐ก๏ธ
+
sunny
โ๏ธ
+
full_moon_with_face
๐
+
sun_with_face
๐
+
ringed_planet
๐ช
+
star
โญ
+
star2
๐
+
stars
๐
+
milky_way
๐
+
cloud
โ๏ธ
+
partly_sunny
โ
+
cloud_with_lightning_and_rain
โ๏ธ
+
sun_behind_small_cloud
๐ค๏ธ
+
sun_behind_large_cloud
๐ฅ๏ธ
+
sun_behind_rain_cloud
๐ฆ๏ธ
+
cloud_with_rain
๐ง๏ธ
+
cloud_with_snow
๐จ๏ธ
+
cloud_with_lightning
๐ฉ๏ธ
+
tornado
๐ช๏ธ
+
fog
๐ซ๏ธ
+
wind_face
๐ฌ๏ธ
+
cyclone
๐
+
rainbow
๐
+
closed_umbrella
๐
+
open_umbrella
โ๏ธ
+
umbrella
โ
+
parasol_on_ground
โฑ๏ธ
+
zap
โก
+
snowflake
โ๏ธ
+
snowman_with_snow
โ๏ธ
+
snowman
โ
+
comet
โ๏ธ
+
fire
๐ฅ
+
droplet
๐ง
+
ocean
๐
+
jack_o_lantern
๐
+
christmas_tree
๐
+
fireworks
๐
+
sparkler
๐
+
firecracker
๐งจ
+
sparkles
โจ
+
balloon
๐
+
tada
๐
+
confetti_ball
๐
+
tanabata_tree
๐
+
bamboo
๐
+
dolls
๐
+
flags
๐
+
wind_chime
๐
+
rice_scene
๐
+
red_envelope
๐งง
+
ribbon
๐
+
gift
๐
+
reminder_ribbon
๐๏ธ
+
tickets
๐๏ธ
+
ticket
๐ซ
+
medal_military
๐๏ธ
+
trophy
๐
+
medal_sports
๐
+
1st_place_medal
๐ฅ
+
2nd_place_medal
๐ฅ
+
3rd_place_medal
๐ฅ
+
soccer
โฝ
+
baseball
โพ
+
softball
๐ฅ
+
basketball
๐
+
volleyball
๐
+
football
๐
+
rugby_football
๐
+
tennis
๐พ
+
flying_disc
๐ฅ
+
bowling
๐ณ
+
cricket_game
๐
+
field_hockey
๐
+
ice_hockey
๐
+
lacrosse
๐ฅ
+
ping_pong
๐
+
badminton
๐ธ
+
boxing_glove
๐ฅ
+
martial_arts_uniform
๐ฅ
+
goal_net
๐ฅ
+
golf
โณ
+
ice_skate
โธ๏ธ
+
fishing_pole_and_fish
๐ฃ
+
diving_mask
๐คฟ
+
running_shirt_with_sash
๐ฝ
+
ski
๐ฟ
+
sled
๐ท
+
curling_stone
๐ฅ
+
dart
๐ฏ
+
yo_yo
๐ช
+
kite
๐ช
+
8ball
๐ฑ
+
crystal_ball
๐ฎ
+
magic_wand
๐ช
+
nazar_amulet
๐งฟ
+
video_game
๐ฎ
+
joystick
๐น๏ธ
+
slot_machine
๐ฐ
+
game_die
๐ฒ
+
jigsaw
๐งฉ
+
teddy_bear
๐งธ
+
pinata
๐ช
+
nesting_dolls
๐ช
+
spades
โ ๏ธ
+
hearts
โฅ๏ธ
+
diamonds
โฆ๏ธ
+
clubs
โฃ๏ธ
+
chess_pawn
โ๏ธ
+
black_joker
๐
+
mahjong
๐
+
flower_playing_cards
๐ด
+
performing_arts
๐ญ
+
framed_picture
๐ผ๏ธ
+
art
๐จ
+
thread
๐งต
+
sewing_needle
๐ชก
+
yarn
๐งถ
+
knot
๐ชข
+
eyeglasses
๐
+
dark_sunglasses
๐ถ๏ธ
+
goggles
๐ฅฝ
+
lab_coat
๐ฅผ
+
safety_vest
๐ฆบ
+
necktie
๐
+
shirt
๐
+
jeans
๐
+
scarf
๐งฃ
+
gloves
๐งค
+
coat
๐งฅ
+
socks
๐งฆ
+
dress
๐
+
kimono
๐
+
sari
๐ฅป
+
one_piece_swimsuit
๐ฉฑ
+
swim_brief
๐ฉฒ
+
shorts
๐ฉณ
+
bikini
๐
+
womans_clothes
๐
+
purse
๐
+
handbag
๐
+
pouch
๐
+
shopping
๐๏ธ
+
school_satchel
๐
+
thong_sandal
๐ฉด
+
mans_shoe
๐
+
athletic_shoe
๐
+
hiking_boot
๐ฅพ
+
flat_shoe
๐ฅฟ
+
high_heel
๐
+
sandal
๐ก
+
ballet_shoes
๐ฉฐ
+
boot
๐ข
+
crown
๐
+
womans_hat
๐
+
tophat
๐ฉ
+
mortar_board
๐
+
billed_cap
๐งข
+
military_helmet
๐ช
+
rescue_worker_helmet
โ๏ธ
+
prayer_beads
๐ฟ
+
lipstick
๐
+
ring
๐
+
gem
๐
+
mute
๐
+
speaker
๐
+
sound
๐
+
loud_sound
๐
+
loudspeaker
๐ข
+
mega
๐ฃ
+
postal_horn
๐ฏ
+
bell
๐
+
no_bell
๐
+
musical_score
๐ผ
+
musical_note
๐ต
+
notes
๐ถ
+
studio_microphone
๐๏ธ
+
level_slider
๐๏ธ
+
control_knobs
๐๏ธ
+
microphone
๐ค
+
headphones
๐ง
+
radio
๐ป
+
saxophone
๐ท
+
accordion
๐ช
+
guitar
๐ธ
+
musical_keyboard
๐น
+
trumpet
๐บ
+
violin
๐ป
+
banjo
๐ช
+
drum
๐ฅ
+
long_drum
๐ช
+
iphone
๐ฑ
+
calling
๐ฒ
+
phone
โ๏ธ
+
telephone_receiver
๐
+
pager
๐
+
fax
๐
+
battery
๐
+
electric_plug
๐
+
computer
๐ป
+
desktop_computer
๐ฅ๏ธ
+
printer
๐จ๏ธ
+
keyboard
โจ๏ธ
+
computer_mouse
๐ฑ๏ธ
+
trackball
๐ฒ๏ธ
+
minidisc
๐ฝ
+
floppy_disk
๐พ
+
cd
๐ฟ
+
dvd
๐
+
abacus
๐งฎ
+
movie_camera
๐ฅ
+
film_strip
๐๏ธ
+
film_projector
๐ฝ๏ธ
+
clapper
๐ฌ
+
tv
๐บ
+
camera
๐ท
+
camera_flash
๐ธ
+
video_camera
๐น
+
vhs
๐ผ
+
mag
๐
+
mag_right
๐
+
candle
๐ฏ๏ธ
+
bulb
๐ก
+
flashlight
๐ฆ
+
izakaya_lantern
๐ฎ
+
diya_lamp
๐ช
+
notebook_with_decorative_cover
๐
+
closed_book
๐
+
book
๐
+
green_book
๐
+
blue_book
๐
+
orange_book
๐
+
books
๐
+
notebook
๐
+
ledger
๐
+
page_with_curl
๐
+
scroll
๐
+
page_facing_up
๐
+
newspaper
๐ฐ
+
newspaper_roll
๐๏ธ
+
bookmark_tabs
๐
+
bookmark
๐
+
label
๐ท๏ธ
+
moneybag
๐ฐ
+
coin
๐ช
+
yen
๐ด
+
dollar
๐ต
+
euro
๐ถ
+
pound
๐ท
+
money_with_wings
๐ธ
+
credit_card
๐ณ
+
receipt
๐งพ
+
chart
๐น
+
envelope
โ๏ธ
+
email
๐ง
+
+
Tag
Emoji
+
email
๐ง
+
incoming_envelope
๐จ
+
envelope_with_arrow
๐ฉ
+
outbox_tray
๐ค
+
inbox_tray
๐ฅ
+
package
๐ฆ
+
mailbox
๐ซ
+
mailbox_closed
๐ช
+
mailbox_with_mail
๐ฌ
+
mailbox_with_no_mail
๐ญ
+
postbox
๐ฎ
+
ballot_box
๐ณ๏ธ
+
pencil2
โ๏ธ
+
black_nib
โ๏ธ
+
fountain_pen
๐๏ธ
+
pen
๐๏ธ
+
paintbrush
๐๏ธ
+
crayon
๐๏ธ
+
memo
๐
+
briefcase
๐ผ
+
file_folder
๐
+
open_file_folder
๐
+
card_index_dividers
๐๏ธ
+
date
๐
+
calendar
๐
+
spiral_notepad
๐๏ธ
+
spiral_calendar
๐๏ธ
+
card_index
๐
+
chart_with_upwards_trend
๐
+
chart_with_downwards_trend
๐
+
bar_chart
๐
+
clipboard
๐
+
pushpin
๐
+
round_pushpin
๐
+
paperclip
๐
+
paperclips
๐๏ธ
+
straight_ruler
๐
+
triangular_ruler
๐
+
scissors
โ๏ธ
+
card_file_box
๐๏ธ
+
file_cabinet
๐๏ธ
+
wastebasket
๐๏ธ
+
lock
๐
+
unlock
๐
+
lock_with_ink_pen
๐
+
closed_lock_with_key
๐
+
key
๐
+
old_key
๐๏ธ
+
hammer
๐จ
+
axe
๐ช
+
pick
โ๏ธ
+
hammer_and_pick
โ๏ธ
+
hammer_and_wrench
๐ ๏ธ
+
dagger
๐ก๏ธ
+
crossed_swords
โ๏ธ
+
gun
๐ซ
+
boomerang
๐ช
+
bow_and_arrow
๐น
+
shield
๐ก๏ธ
+
carpentry_saw
๐ช
+
wrench
๐ง
+
screwdriver
๐ช
+
nut_and_bolt
๐ฉ
+
gear
โ๏ธ
+
clamp
๐๏ธ
+
balance_scale
โ๏ธ
+
probing_cane
๐ฆฏ
+
link
๐
+
chains
โ๏ธ
+
hook
๐ช
+
toolbox
๐งฐ
+
magnet
๐งฒ
+
ladder
๐ช
+
alembic
โ๏ธ
+
test_tube
๐งช
+
petri_dish
๐งซ
+
dna
๐งฌ
+
microscope
๐ฌ
+
telescope
๐ญ
+
satellite
๐ก
+
syringe
๐
+
drop_of_blood
๐ฉธ
+
pill
๐
+
adhesive_bandage
๐ฉน
+
stethoscope
๐ฉบ
+
door
๐ช
+
elevator
๐
+
mirror
๐ช
+
window
๐ช
+
bed
๐๏ธ
+
couch_and_lamp
๐๏ธ
+
chair
๐ช
+
toilet
๐ฝ
+
plunger
๐ช
+
shower
๐ฟ
+
bathtub
๐
+
mouse_trap
๐ชค
+
razor
๐ช
+
lotion_bottle
๐งด
+
safety_pin
๐งท
+
broom
๐งน
+
basket
๐งบ
+
roll_of_paper
๐งป
+
bucket
๐ชฃ
+
soap
๐งผ
+
toothbrush
๐ชฅ
+
sponge
๐งฝ
+
fire_extinguisher
๐งฏ
+
shopping_cart
๐
+
smoking
๐ฌ
+
coffin
โฐ๏ธ
+
headstone
๐ชฆ
+
funeral_urn
โฑ๏ธ
+
moyai
๐ฟ
+
placard
๐ชง
+
atm
๐ง
+
put_litter_in_its_place
๐ฎ
+
potable_water
๐ฐ
+
wheelchair
โฟ
+
mens
๐น
+
womens
๐บ
+
restroom
๐ป
+
baby_symbol
๐ผ
+
wc
๐พ
+
passport_control
๐
+
customs
๐
+
baggage_claim
๐
+
left_luggage
๐
+
warning
โ ๏ธ
+
children_crossing
๐ธ
+
no_entry
โ
+
no_entry_sign
๐ซ
+
no_bicycles
๐ณ
+
no_smoking
๐ญ
+
do_not_litter
๐ฏ
+
non-potable_water
๐ฑ
+
no_pedestrians
๐ท
+
no_mobile_phones
๐ต
+
underage
๐
+
radioactive
โข๏ธ
+
biohazard
โฃ๏ธ
+
arrow_up
โฌ๏ธ
+
arrow_upper_right
โ๏ธ
+
arrow_right
โก๏ธ
+
arrow_lower_right
โ๏ธ
+
arrow_down
โฌ๏ธ
+
arrow_lower_left
โ๏ธ
+
arrow_left
โฌ ๏ธ
+
arrow_upper_left
โ๏ธ
+
arrow_up_down
โ๏ธ
+
left_right_arrow
โ๏ธ
+
leftwards_arrow_with_hook
โฉ๏ธ
+
arrow_right_hook
โช๏ธ
+
arrow_heading_up
โคด๏ธ
+
arrow_heading_down
โคต๏ธ
+
arrows_clockwise
๐
+
arrows_counterclockwise
๐
+
back
๐
+
end
๐
+
on
๐
+
soon
๐
+
top
๐
+
place_of_worship
๐
+
atom_symbol
โ๏ธ
+
om
๐๏ธ
+
star_of_david
โก๏ธ
+
wheel_of_dharma
โธ๏ธ
+
yin_yang
โฏ๏ธ
+
latin_cross
โ๏ธ
+
orthodox_cross
โฆ๏ธ
+
star_and_crescent
โช๏ธ
+
peace_symbol
โฎ๏ธ
+
menorah
๐
+
six_pointed_star
๐ฏ
+
aries
โ
+
taurus
โ
+
gemini
โ
+
cancer
โ
+
leo
โ
+
virgo
โ
+
libra
โ
+
scorpius
โ
+
sagittarius
โ
+
capricorn
โ
+
aquarius
โ
+
pisces
โ
+
ophiuchus
โ
+
twisted_rightwards_arrows
๐
+
repeat
๐
+
repeat_one
๐
+
arrow_forward
โถ๏ธ
+
fast_forward
โฉ
+
next_track_button
โญ๏ธ
+
play_or_pause_button
โฏ๏ธ
+
arrow_backward
โ๏ธ
+
rewind
โช
+
previous_track_button
โฎ๏ธ
+
arrow_up_small
๐ผ
+
arrow_double_up
โซ
+
arrow_down_small
๐ฝ
+
arrow_double_down
โฌ
+
pause_button
โธ๏ธ
+
stop_button
โน๏ธ
+
record_button
โบ๏ธ
+
eject_button
โ๏ธ
+
cinema
๐ฆ
+
low_brightness
๐
+
high_brightness
๐
+
signal_strength
๐ถ
+
vibration_mode
๐ณ
+
mobile_phone_off
๐ด
+
female_sign
โ๏ธ
+
male_sign
โ๏ธ
+
transgender_symbol
โง๏ธ
+
heavy_multiplication_x
โ๏ธ
+
heavy_plus_sign
โ
+
heavy_minus_sign
โ
+
heavy_division_sign
โ
+
infinity
โพ๏ธ
+
bangbang
โผ๏ธ
+
interrobang
โ๏ธ
+
question
โ
+
grey_question
โ
+
grey_exclamation
โ
+
exclamation
โ
+
wavy_dash
ใฐ๏ธ
+
currency_exchange
๐ฑ
+
heavy_dollar_sign
๐ฒ
+
medical_symbol
โ๏ธ
+
recycle
โป๏ธ
+
fleur_de_lis
โ๏ธ
+
trident
๐ฑ
+
name_badge
๐
+
beginner
๐ฐ
+
o
โญ
+
white_check_mark
โ
+
ballot_box_with_check
โ๏ธ
+
heavy_check_mark
โ๏ธ
+
x
โ
+
negative_squared_cross_mark
โ
+
curly_loop
โฐ
+
loop
โฟ
+
part_alternation_mark
ใฝ๏ธ
+
eight_spoked_asterisk
โณ๏ธ
+
eight_pointed_black_star
โด๏ธ
+
sparkle
โ๏ธ
+
copyright
ยฉ๏ธ
+
registered
ยฎ๏ธ
+
tm
โข๏ธ
+
hash
#๏ธโฃ
+
asterisk
*๏ธโฃ
+
zero
0๏ธโฃ
+
one
1๏ธโฃ
+
two
2๏ธโฃ
+
three
3๏ธโฃ
+
four
4๏ธโฃ
+
five
5๏ธโฃ
+
six
6๏ธโฃ
+
seven
7๏ธโฃ
+
eight
8๏ธโฃ
+
nine
9๏ธโฃ
+
keycap_ten
๐
+
capital_abcd
๐
+
abcd
๐ก
+
1234
๐ข
+
symbols
๐ฃ
+
abc
๐ค
+
a
๐ ฐ๏ธ
+
ab
๐
+
b
๐ ฑ๏ธ
+
cl
๐
+
cool
๐
+
free
๐
+
information_source
โน๏ธ
+
id
๐
+
m
โ๏ธ
+
new
๐
+
ng
๐
+
o2
๐ พ๏ธ
+
ok
๐
+
parking
๐ ฟ๏ธ
+
sos
๐
+
up
๐
+
vs
๐
+
koko
๐
+
sa
๐๏ธ
+
u6708
๐ท๏ธ
+
u6709
๐ถ
+
u6307
๐ฏ
+
ideograph_advantage
๐
+
u5272
๐น
+
u7121
๐
+
u7981
๐ฒ
+
accept
๐
+
u7533
๐ธ
+
u5408
๐ด
+
u7a7a
๐ณ
+
congratulations
ใ๏ธ
+
secret
ใ๏ธ
+
u55b6
๐บ
+
u6e80
๐ต
+
red_circle
๐ด
+
orange_circle
๐
+
yellow_circle
๐ก
+
green_circle
๐ข
+
large_blue_circle
๐ต
+
purple_circle
๐ฃ
+
brown_circle
๐ค
+
black_circle
โซ
+
white_circle
โช
+
red_square
๐ฅ
+
orange_square
๐ง
+
yellow_square
๐จ
+
green_square
๐ฉ
+
blue_square
๐ฆ
+
purple_square
๐ช
+
brown_square
๐ซ
+
black_large_square
โฌ
+
white_large_square
โฌ
+
black_medium_square
โผ๏ธ
+
white_medium_square
โป๏ธ
+
black_medium_small_square
โพ
+
white_medium_small_square
โฝ
+
black_small_square
โช๏ธ
+
white_small_square
โซ๏ธ
+
large_orange_diamond
๐ถ
+
large_blue_diamond
๐ท
+
small_orange_diamond
๐ธ
+
small_blue_diamond
๐น
+
small_red_triangle
๐บ
+
small_red_triangle_down
๐ป
+
diamond_shape_with_a_dot_inside
๐
+
radio_button
๐
+
white_square_button
๐ณ
+
black_square_button
๐ฒ
+
checkered_flag
๐
+
triangular_flag_on_post
๐ฉ
+
crossed_flags
๐
+
black_flag
๐ด
+
white_flag
๐ณ๏ธ
+
rainbow_flag
๐ณ๏ธโ๐
+
transgender_flag
๐ณ๏ธโโง๏ธ
+
pirate_flag
๐ดโโ ๏ธ
+
ascension_island
๐ฆ๐จ
+
andorra
๐ฆ๐ฉ
+
united_arab_emirates
๐ฆ๐ช
+
afghanistan
๐ฆ๐ซ
+
antigua_barbuda
๐ฆ๐ฌ
+
anguilla
๐ฆ๐ฎ
+
albania
๐ฆ๐ฑ
+
armenia
๐ฆ๐ฒ
+
angola
๐ฆ๐ด
+
antarctica
๐ฆ๐ถ
+
argentina
๐ฆ๐ท
+
american_samoa
๐ฆ๐ธ
+
austria
๐ฆ๐น
+
australia
๐ฆ๐บ
+
aruba
๐ฆ๐ผ
+
aland_islands
๐ฆ๐ฝ
+
azerbaijan
๐ฆ๐ฟ
+
bosnia_herzegovina
๐ง๐ฆ
+
barbados
๐ง๐ง
+
bangladesh
๐ง๐ฉ
+
belgium
๐ง๐ช
+
burkina_faso
๐ง๐ซ
+
bulgaria
๐ง๐ฌ
+
bahrain
๐ง๐ญ
+
burundi
๐ง๐ฎ
+
benin
๐ง๐ฏ
+
st_barthelemy
๐ง๐ฑ
+
bermuda
๐ง๐ฒ
+
brunei
๐ง๐ณ
+
bolivia
๐ง๐ด
+
caribbean_netherlands
๐ง๐ถ
+
brazil
๐ง๐ท
+
bahamas
๐ง๐ธ
+
bhutan
๐ง๐น
+
bouvet_island
๐ง๐ป
+
botswana
๐ง๐ผ
+
belarus
๐ง๐พ
+
belize
๐ง๐ฟ
+
canada
๐จ๐ฆ
+
cocos_islands
๐จ๐จ
+
congo_kinshasa
๐จ๐ฉ
+
central_african_republic
๐จ๐ซ
+
congo_brazzaville
๐จ๐ฌ
+
switzerland
๐จ๐ญ
+
cote_divoire
๐จ๐ฎ
+
cook_islands
๐จ๐ฐ
+
chile
๐จ๐ฑ
+
cameroon
๐จ๐ฒ
+
cn
๐จ๐ณ
+
colombia
๐จ๐ด
+
clipperton_island
๐จ๐ต
+
costa_rica
๐จ๐ท
+
cuba
๐จ๐บ
+
cape_verde
๐จ๐ป
+
curacao
๐จ๐ผ
+
christmas_island
๐จ๐ฝ
+
cyprus
๐จ๐พ
+
czech_republic
๐จ๐ฟ
+
de
๐ฉ๐ช
+
diego_garcia
๐ฉ๐ฌ
+
djibouti
๐ฉ๐ฏ
+
denmark
๐ฉ๐ฐ
+
dominica
๐ฉ๐ฒ
+
dominican_republic
๐ฉ๐ด
+
algeria
๐ฉ๐ฟ
+
ceuta_melilla
๐ช๐ฆ
+
ecuador
๐ช๐จ
+
estonia
๐ช๐ช
+
egypt
๐ช๐ฌ
+
western_sahara
๐ช๐ญ
+
eritrea
๐ช๐ท
+
es
๐ช๐ธ
+
ethiopia
๐ช๐น
+
eu
๐ช๐บ
+
finland
๐ซ๐ฎ
+
fiji
๐ซ๐ฏ
+
falkland_islands
๐ซ๐ฐ
+
micronesia
๐ซ๐ฒ
+
faroe_islands
๐ซ๐ด
+
fr
๐ซ๐ท
+
gabon
๐ฌ๐ฆ
+
gb
๐ฌ๐ง
+
grenada
๐ฌ๐ฉ
+
georgia
๐ฌ๐ช
+
french_guiana
๐ฌ๐ซ
+
guernsey
๐ฌ๐ฌ
+
ghana
๐ฌ๐ญ
+
gibraltar
๐ฌ๐ฎ
+
greenland
๐ฌ๐ฑ
+
gambia
๐ฌ๐ฒ
+
guinea
๐ฌ๐ณ
+
guadeloupe
๐ฌ๐ต
+
equatorial_guinea
๐ฌ๐ถ
+
greece
๐ฌ๐ท
+
south_georgia_south_sandwich_islands
๐ฌ๐ธ
+
guatemala
๐ฌ๐น
+
guam
๐ฌ๐บ
+
guinea_bissau
๐ฌ๐ผ
+
guyana
๐ฌ๐พ
+
hong_kong
๐ญ๐ฐ
+
heard_mcdonald_islands
๐ญ๐ฒ
+
honduras
๐ญ๐ณ
+
croatia
๐ญ๐ท
+
haiti
๐ญ๐น
+
hungary
๐ญ๐บ
+
canary_islands
๐ฎ๐จ
+
indonesia
๐ฎ๐ฉ
+
ireland
๐ฎ๐ช
+
israel
๐ฎ๐ฑ
+
isle_of_man
๐ฎ๐ฒ
+
india
๐ฎ๐ณ
+
british_indian_ocean_territory
๐ฎ๐ด
+
iraq
๐ฎ๐ถ
+
iran
๐ฎ๐ท
+
iceland
๐ฎ๐ธ
+
it
๐ฎ๐น
+
jersey
๐ฏ๐ช
+
jamaica
๐ฏ๐ฒ
+
jordan
๐ฏ๐ด
+
jp
๐ฏ๐ต
+
kenya
๐ฐ๐ช
+
kyrgyzstan
๐ฐ๐ฌ
+
cambodia
๐ฐ๐ญ
+
kiribati
๐ฐ๐ฎ
+
comoros
๐ฐ๐ฒ
+
st_kitts_nevis
๐ฐ๐ณ
+
north_korea
๐ฐ๐ต
+
kr
๐ฐ๐ท
+
kuwait
๐ฐ๐ผ
+
cayman_islands
๐ฐ๐พ
+
kazakhstan
๐ฐ๐ฟ
+
laos
๐ฑ๐ฆ
+
lebanon
๐ฑ๐ง
+
st_lucia
๐ฑ๐จ
+
liechtenstein
๐ฑ๐ฎ
+
sri_lanka
๐ฑ๐ฐ
+
liberia
๐ฑ๐ท
+
lesotho
๐ฑ๐ธ
+
lithuania
๐ฑ๐น
+
luxembourg
๐ฑ๐บ
+
latvia
๐ฑ๐ป
+
libya
๐ฑ๐พ
+
morocco
๐ฒ๐ฆ
+
monaco
๐ฒ๐จ
+
moldova
๐ฒ๐ฉ
+
montenegro
๐ฒ๐ช
+
st_martin
๐ฒ๐ซ
+
madagascar
๐ฒ๐ฌ
+
marshall_islands
๐ฒ๐ญ
+
macedonia
๐ฒ๐ฐ
+
mali
๐ฒ๐ฑ
+
myanmar
๐ฒ๐ฒ
+
mongolia
๐ฒ๐ณ
+
macau
๐ฒ๐ด
+
northern_mariana_islands
๐ฒ๐ต
+
martinique
๐ฒ๐ถ
+
mauritania
๐ฒ๐ท
+
montserrat
๐ฒ๐ธ
+
malta
๐ฒ๐น
+
mauritius
๐ฒ๐บ
+
maldives
๐ฒ๐ป
+
malawi
๐ฒ๐ผ
+
mexico
๐ฒ๐ฝ
+
malaysia
๐ฒ๐พ
+
mozambique
๐ฒ๐ฟ
+
namibia
๐ณ๐ฆ
+
new_caledonia
๐ณ๐จ
+
niger
๐ณ๐ช
+
norfolk_island
๐ณ๐ซ
+
nigeria
๐ณ๐ฌ
+
nicaragua
๐ณ๐ฎ
+
netherlands
๐ณ๐ฑ
+
norway
๐ณ๐ด
+
nepal
๐ณ๐ต
+
nauru
๐ณ๐ท
+
niue
๐ณ๐บ
+
new_zealand
๐ณ๐ฟ
+
oman
๐ด๐ฒ
+
panama
๐ต๐ฆ
+
peru
๐ต๐ช
+
french_polynesia
๐ต๐ซ
+
papua_new_guinea
๐ต๐ฌ
+
philippines
๐ต๐ญ
+
pakistan
๐ต๐ฐ
+
poland
๐ต๐ฑ
+
st_pierre_miquelon
๐ต๐ฒ
+
pitcairn_islands
๐ต๐ณ
+
puerto_rico
๐ต๐ท
+
palestinian_territories
๐ต๐ธ
+
portugal
๐ต๐น
+
palau
๐ต๐ผ
+
paraguay
๐ต๐พ
+
qatar
๐ถ๐ฆ
+
reunion
๐ท๐ช
+
romania
๐ท๐ด
+
serbia
๐ท๐ธ
+
ru
๐ท๐บ
+
rwanda
๐ท๐ผ
+
saudi_arabia
๐ธ๐ฆ
+
solomon_islands
๐ธ๐ง
+
seychelles
๐ธ๐จ
+
sudan
๐ธ๐ฉ
+
sweden
๐ธ๐ช
+
singapore
๐ธ๐ฌ
+
st_helena
๐ธ๐ญ
+
slovenia
๐ธ๐ฎ
+
svalbard_jan_mayen
๐ธ๐ฏ
+
slovakia
๐ธ๐ฐ
+
sierra_leone
๐ธ๐ฑ
+
san_marino
๐ธ๐ฒ
+
senegal
๐ธ๐ณ
+
somalia
๐ธ๐ด
+
suriname
๐ธ๐ท
+
south_sudan
๐ธ๐ธ
+
sao_tome_principe
๐ธ๐น
+
el_salvador
๐ธ๐ป
+
sint_maarten
๐ธ๐ฝ
+
syria
๐ธ๐พ
+
swaziland
๐ธ๐ฟ
+
tristan_da_cunha
๐น๐ฆ
+
turks_caicos_islands
๐น๐จ
+
chad
๐น๐ฉ
+
french_southern_territories
๐น๐ซ
+
togo
๐น๐ฌ
+
thailand
๐น๐ญ
+
tajikistan
๐น๐ฏ
+
tokelau
๐น๐ฐ
+
timor_leste
๐น๐ฑ
+
turkmenistan
๐น๐ฒ
+
tunisia
๐น๐ณ
+
tonga
๐น๐ด
+
tr
๐น๐ท
+
trinidad_tobago
๐น๐น
+
tuvalu
๐น๐ป
+
taiwan
๐น๐ผ
+
tanzania
๐น๐ฟ
+
ukraine
๐บ๐ฆ
+
uganda
๐บ๐ฌ
+
us_outlying_islands
๐บ๐ฒ
+
united_nations
๐บ๐ณ
+
us
๐บ๐ธ
+
uruguay
๐บ๐พ
+
uzbekistan
๐บ๐ฟ
+
vatican_city
๐ป๐ฆ
+
st_vincent_grenadines
๐ป๐จ
+
venezuela
๐ป๐ช
+
british_virgin_islands
๐ป๐ฌ
+
us_virgin_islands
๐ป๐ฎ
+
vietnam
๐ป๐ณ
+
vanuatu
๐ป๐บ
+
wallis_futuna
๐ผ๐ซ
+
samoa
๐ผ๐ธ
+
kosovo
๐ฝ๐ฐ
+
yemen
๐พ๐ช
+
mayotte
๐พ๐น
+
south_africa
๐ฟ๐ฆ
+
zambia
๐ฟ๐ฒ
+
zimbabwe
๐ฟ๐ผ
+
england
๐ด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ
+
scotland
๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ
+
wales
๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ
+
+
diff --git a/docs/publish/index.md b/docs/publish/index.md
index 986dec3c..7d8d81b7 100644
--- a/docs/publish/index.md
+++ b/docs/publish/index.md
@@ -115,6 +115,60 @@ a [title](#message-title), and [tag messages](#tags-emojis) ๐ฅณ ๐. Here's an
Urgent notification with tags and title
+## Message title
+The notification title is typically set to the topic short URL (e.g. `ntfy.sh/mytopic`). To override the title,
+you can set the `X-Title` header (or any of its aliases: `Title`, `ti`, or `t`).
+
+=== "Command line (curl)"
+ ```
+ curl -H "X-Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial
+ curl -H "Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial
+ curl -H "t: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial
+ ```
+
+=== "HTTP"
+ ``` http
+ POST /controversial HTTP/1.1
+ Host: ntfy.sh
+ Title: Dogs are better than cats
+
+ Oh my ...
+ ```
+
+=== "JavaScript"
+ ``` javascript
+ fetch('https://ntfy.sh/controversial', {
+ method: 'POST',
+ body: 'Oh my ...',
+ headers: { 'Title': 'Dogs are better than cats' }
+ })
+ ```
+
+=== "Go"
+ ``` go
+ req, _ := http.NewRequest("POST", "https://ntfy.sh/controversial", strings.NewReader("Oh my ..."))
+ req.Header.Set("Title", "Dogs are better than cats")
+ http.DefaultClient.Do(req)
+ ```
+
+=== "PHP"
+ ``` php
+ file_get_contents('https://ntfy.sh/controversial', false, stream_context_create([
+ 'http' => [
+ 'method' => 'POST',
+ 'header' =>
+ "Content-Type: text/plain\r\n" .
+ "Title: Dogs are better than cats",
+ 'content' => 'Oh my ...'
+ ]
+ ]));
+ ```
+
+
+
## Message priority
All messages have a priority, which defines how urgently your phone notifies you. You can set custom
notification sounds and vibration patterns on your phone to map to these priorities (see [Android config](../subscribe/phone.md)).
@@ -182,26 +236,99 @@ You can set the priority with the header `X-Priority` (or any of its aliases: `P
## Tags & emojis ๐ฅณ ๐
-You can tag messages with emojis (or other relevant strings). If a tag matches a known emoji short code,
-it will be converted to an emoji. If it doesn't match, it will be listed below the notification. This is useful
-for things like warnings and such (โ ๏ธ, ๏ธ๐จ, or ๐ฉ), but also to simply tag messages otherwise (e.g. which script the
-message came from, ...).
+You can tag messages with emojis and other relevant strings:
-You can set tags with the `X-Tags` header (or any of its aliases: `Tags`, or `ta`).
-Use this reference
-to figure out what tags can be converted to emojis. In the example below, the tag "warning" matches the emoji โ ๏ธ,
-the tag "ssh-login" doesn't match and will be displayed below the message.
+* **Emojis**: If a tag matches an [emoji short code](../emojis.md), it'll be converted to an emoji and prepended
+ to title or message.
+* **Other tags:** If a tag doesn't match, it will be listed below the notification.
-```
-$ curl -H "Tags: warning,ssh-login" -d "Unauthorized SSH access" ntfy.sh/mytopic
-{"id":"ZEIwjfHlSS",...,"tags":["warning","ssh-login"],"message":"Unauthorized SSH access"}
-```
+This feature is useful for things like warnings (โ ๏ธ, ๏ธ๐จ, or ๐ฉ), but also to simply tag messages otherwise (e.g. script
+names, hostnames, etc.). Use [the emoji short code list](../emojis.md) to figure out what tags can be converted to emojis.
+Here's an **excerpt of emojis** I've found very useful in alert messages:
-## Message title
-The notification title is typically set to the topic short URL (e.g. `ntfy.sh/mytopic`.
-To override it, you can set the `X-Title` header (or any of its aliases: `Title`, `ti`, or `t`).
+
+
+
Tag
Emoji
+
+1
๐๏ธ
+
partying_face
๐ฅณ
+
tada
๐
+
heavy_check_mark
โ๏ธ
+
loudspeaker
๐ข
+
...
...
+
+
+
+
Tag
Emoji
+
-1
๐๏ธ
+
warning
โ ๏ธ
+
rotating_light
๏ธ๐จ
+
triangular_flag_on_post
๐ฉ
+
skull
๐
+
...
...
+
+
+
+
Tag
Emoji
+
facepalm
๐คฆ
+
no_entry
โ
+
no_entry_sign
๐ซ
+
cd
๐ฟ
+
computer
๐ป
+
...
...
+
+
+
+
+You can set tags with the `X-Tags` header (or any of its aliases: `Tags`, or `ta`). Specify multiple tags by separating
+them with a comma, e.g. `tag1,tag2,tag3`.
+
+=== "Command line (curl)"
+ ```
+ curl -H "X-Tags: warning,mailsrv13,daily-backup" -d "Backup of mailsrv13 failed" ntfy.sh/backups
+ curl -H "Tags: horse,unicorn" -d "Unicorns are just horses with unique horns" ntfy.sh/backups
+ curl -H ta:dog -d "Dogs are awesome" ntfy.sh/backups
+ ```
+
+=== "HTTP"
+ ``` http
+ POST /backups HTTP/1.1
+ Host: ntfy.sh
+ Tags: warning,mailsrv13,daily-backup
+
+ Backup of mailsrv13 failed
+ ```
+
+=== "JavaScript"
+ ``` javascript
+ fetch('https://ntfy.sh/backups', {
+ method: 'POST',
+ body: 'Backup of mailsrv13 failed',
+ headers: { 'Tags': 'warning,mailsrv13,daily-backup' }
+ })
+ ```
+
+=== "Go"
+ ``` go
+ req, _ := http.NewRequest("POST", "https://ntfy.sh/backups", strings.NewReader("Backup of mailsrv13 failed"))
+ req.Header.Set("Tags", "warning,mailsrv13,daily-backup")
+ http.DefaultClient.Do(req)
+ ```
+
+=== "PHP"
+ ``` php
+ file_get_contents('https://ntfy.sh/backups', false, stream_context_create([
+ 'http' => [
+ 'method' => 'POST',
+ 'header' =>
+ "Content-Type: text/plain\r\n" .
+ "Tags: warning,mailsrv13,daily-backup",
+ 'content' => 'Backup of mailsrv13 failed'
+ ]
+ ]));
+ ```
+
+
-```
-curl -H "Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/mytopic<
-```
-
diff --git a/docs/static/css/extra.css b/docs/static/css/extra.css
index b834efce..f2de6ce4 100644
--- a/docs/static/css/extra.css
+++ b/docs/static/css/extra.css
@@ -2,3 +2,13 @@ figure img {
border-radius: 7px;
filter: drop-shadow(3px 3px 5px #ccc);
}
+
+.remove-md-box {
+ background: none;
+ border: none;
+ margin: 0 auto;
+}
+
+.remove-md-box td {
+ padding: 0 10px
+}
diff --git a/docs/static/img/notification-with-tags.png b/docs/static/img/notification-with-tags.png
new file mode 100644
index 00000000..81773220
Binary files /dev/null and b/docs/static/img/notification-with-tags.png differ
diff --git a/docs/static/img/notification-with-title.png b/docs/static/img/notification-with-title.png
new file mode 100644
index 00000000..fd458332
Binary files /dev/null and b/docs/static/img/notification-with-title.png differ
diff --git a/mkdocs.yml b/mkdocs.yml
index a877bfb4..3539e8bb 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -79,7 +79,8 @@ nav:
- "Polling": subscribe/poll.md
- "Other things":
- "Examples": examples.md
- - "FAQs": faq.md
+ - "Emojis ๐ฅณ ๐": emojis.md
- "Development": develop.md
+ - "FAQs": faq.md
diff --git a/scripts/emoji-convert.sh b/scripts/emoji-convert.sh
index 8c145653..c6504037 100755
--- a/scripts/emoji-convert.sh
+++ b/scripts/emoji-convert.sh
@@ -7,10 +7,11 @@ SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)"
ROOTDIR="$(cd "$(dirname "$0")/.." && pwd)"
if [ -z "$1" ]; then
- echo "Syntax: $0 FILE.(js|json)"
+ echo "Syntax: $0 FILE.(js|json|md)"
echo "Example:"
echo " $0 emoji-converted.json"
echo " $0 $ROOTDIR/server/static/js/emoji.js"
+ echo " $0 $ROOTDIR/docs/emojis.md"
exit 1
fi
@@ -19,6 +20,30 @@ if [[ "$1" == *.js ]]; then
// Original data source: https://github.com/github/gemoji/blob/master/db/emoji.json
const rawEmojis = " > "$1"
cat "$SCRIPTDIR/emoji.json" | jq -rc 'map({emoji: .emoji,aliases: .aliases})' >> "$1"
+elif [[ "$1" == *.md ]]; then
+ echo "# Emoji reference
+
+
+
+You can [tag messages](../publish/#tags-emojis) with emojis ๐ฅณ ๐ and other relevant strings. Matching tags are automatically
+converted to emojis. This is a reference of all supported emojis. To learn more about the feature, please refer to the
+[tagging and emojis page](../publish/#tags-emojis).
+
+
+" > "$1"
+
+ count="$(cat "$SCRIPTDIR/emoji.json" | jq -r '.[] | .emoji' | wc -l)"
+ percolumn=$(($count / 3)) # This will misbehave if the count is not divisible by 3
+ for col in 0 1 2; do
+ from="$(($col * $percolumn + 1))"
+ to="$(($col * $percolumn + 1 + $percolumn))"
+ echo "