Back to Blog
Guide

How to Search Slack by Emoji Reaction (has:: and hasmy::)

Type has::eyes: in the Slack search bar to find every message with an :eyes: reaction. Use hasmy::eyes: for messages you reacted to, has:reaction for any reaction, and a minus sign to exclude one. Tested modifiers, recipes and an export script.

Slack Green Team
September 28, 2026
September 28, 2026
5 min read
Share:
slack
search
emoji
productivity

To search Slack by emoji reaction, type has:: followed by the emoji code in the search bar, for example has::eyes: to find every message someone reacted to with 👀. Use hasmy::eyes: for messages you reacted to yourself, has:reaction for messages with any reaction, and -has::white_check_mark: to leave out messages that already have a ✅. You can add words, a channel, a person or a date to the same search.

We build Slack Green, which keeps your Slack status green from our servers during the hours you set. The results below come from real searches in our own workspace on 28 September 2026, so every modifier on this page was checked, including two that do not work.

Search Slack by emoji reaction: has::emoji:, hasmy::emoji:, has:reaction and -has::emoji:

The reaction search modifiers

Slack's help center lists has: and hasmy: with an emoji code. We also tested the variants people guess at. The emoji code keeps both of its colons, so has: plus :eyes: becomes has::eyes: with two colons in the middle.

Reaction search modifiers we tested and how many messages each returned
Type thisWhat it findsWorks?
has::eyes:Messages anyone reacted to with 👀Yes
hasmy::eyes:Messages you reacted to with 👀Yes
has:reactionMessages with at least one reaction of any kindYes
-has::white_check_mark:Messages without a ✅ reactionYes
-has:reactionMessages nobody reacted toYes
has::+1: or has::thumbsup:The same messages, both names workYes
has::loading-2:A custom workspace emojiYes
has:eyesNothing, the colons are missingNo
hasmy:reactionNothing, not a modifierNo

has:reaction is not in Slack's help article, but it worked in our test: it returned 82 messages, every one we opened had a reaction, and -has:reaction returned the rest of the workspace. If you do not know an emoji's code, hover over the reaction under a message or look it up in our Slack emoji codes list.

How to search by reaction, step by step

  • Click the search bar at the top of Slack, or press Cmd+G on a Mac (Ctrl+G on Windows).
  • Type has:: and then the emoji code, such as has::eyes:. You can leave out search words entirely.
  • Press Enter. Slack shows messages with that reaction, newest or most relevant first.
  • To narrow it down, add more modifiers in the same box, or use the filters above the results.
  • Two has:: filters in one search mean both reactions must be on the message. In our workspace has::eyes: found 24 messages, has::white_check_mark: found 32, and both together found 0. Slack has no OR for reactions, so run two searches when you want either one.

    Find messages you reacted to

Never appear "away" on Slack again

Cloud-based. No downloads. Works 24/7 even when your laptop is off.

hasmy:: shows only your own reactions. This is the useful one for personal to-do lists: many people react with 🔖 :bookmark:, ✅ or 👀 to mark things to come back to, then search for them later.

  • • hasmy::eyes: shows everything you said you would look at.
  • • hasmy::white_check_mark: shows what you marked done.
  • • hasmy::eyes: -has::white_check_mark: shows what you looked at that nobody has closed yet.
  • There is no hasmy:reaction for all of your reactions at once; it returned 0 in our test even though we had reacted to many messages. Slack's own Saved items (the bookmark icon on a message) is the built-in alternative for a personal list, and is:saved finds those.

    Reaction search recipes for teams

    Build a reaction search in three parts: reaction, where and who, when

    Teams that use reactions as a lightweight status system get the most out of this. Some searches we use:

    You wantSearch
    Requests someone claimed but nobody closedhas::eyes: -has::white_check_mark: in:#support
    Messages in a channel nobody reacted to-has:reaction in:#help
    Your posts people reacted tohas:reaction from:me
    Announcements people confirmed they readhas::white_check_mark: in:#announcements
    Links the team liked last monthhas::+1: has:link during:august
    Kudos given in a channelhas::raised_hands: in:#wins

    The 👀 convention, where a reaction means "I'm on it", is explained in what does the eyes emoji mean in Slack. The other modifiers used here (in:, from:, during:, is:thread) are covered in full in our Slack search operators guide.

    What reaction search cannot do

    What Slack reaction search can and cannot do

  • • You cannot search who reacted. hasmy:: works only for you. To see who reacted to one message, hover over the reaction under it.
  • • You cannot filter by reaction count, such as messages with five or more 👍.
  • • Search only covers messages you can see. A private channel you are not in stays out of the results, and so do messages older than your plan keeps.
  • Reactions are also the closest Slack gets to read receipts; see does Slack have read receipts. If you wonder whether admins can see what you type into the search bar, that is in can Slack admins see what you search.

    Export every message with a reaction

    Never appear "away" on Slack again

    Cloud-based. No downloads. Works 24/7 even when your laptop is off.

    For a weekly report, such as every request marked ✅ in #support, the Web API method search.messages accepts the same search text. It needs a user token with the search:read scope, because bots cannot search. This Python script writes the results to a CSV file:

    # pip install slack_sdk
    import csv, os
    from slack_sdk import WebClient
    
    client = WebClient(token=os.environ["SLACK_USER_TOKEN"])  # xoxp- token with search:read
    query = "has::white_check_mark: in:#support after:2026-09-01"
    
    rows, page = [], 1
    while True:
        res = client.search_messages(query=query, count=100, page=page, sort="timestamp")
        for m in res["messages"]["matches"]:
            rows.append([m["ts"], m["channel"]["name"], m.get("username", ""), m["text"][:200], m["permalink"]])
        if page >= res["messages"]["paging"]["pages"]:
            break
        page += 1
    
    with open("reactions.csv", "w", newline="") as f:
        csv.writer(f).writerows([["ts", "channel", "user", "text", "link"], *rows])
    print(len(rows), "messages")

    Slack marks search.messages as a legacy method, but it still accepts the reaction modifiers.

    Make an emoji worth searching for

    Custom emoji work in search too, so a team-only reaction such as :approved: or :shipped: gives you a filter nobody else uses by accident. Make one from a word or your logo with the free Slack emoji maker, shrink an existing image with the Slack emoji resizer, then search it with has::approved:. More ideas are in Slack emoji ideas.

    FAQ

    How do I search for a specific emoji reaction in Slack? Type has:: plus the emoji code in the search bar, for example has::eyes:.

    How do I find messages I reacted to in Slack? Search hasmy:: plus the emoji code, such as hasmy::white_check_mark:. You need one search per emoji.

    Can I search for any reaction in Slack? Yes. has:reaction returns messages with at least one reaction, and -has:reaction returns messages with none.

    Can I see everything someone else reacted to? Not in the Slack app. Hover over a reaction to see who added it to that one message.

    Always Active

    Stop Jiggling Your Mouse.

    Join hundreds of remote workers who never worry about their Slack status. Set it up once, stay green forever.

    Related Articles

    Guide

    Slack Emoji for Approved, Perfect and Sounds Good

    The Slack emoji for approved is ✅ :white_check_mark:. For perfect, use 💯 :100: or 🤌 :pinched_fingers:; for sounds good or sure, 👍 :+1: or 👌 :ok_hand:. Every code checked in Slack, what each one means to readers, custom LGTM and SGTM emoji, and a pinned legend for approval channels.

    Slack Green Team•5 min read
    Guide

    Tips for Working Across Time Zones: 10 Habits That Work

    Working across time zones works when the team writes things down, keeps a short overlap window for live talk, says the zone with every time, and lets tools deliver messages in each person's working hours. Ten habits, a follow-the-sun handoff note, the Slack settings that help, and a script that shows your team's local times.

    Slack Green Team•5 min read
    Templates

    Slack Emoji for OOO, PTO and Days Off

    The usual Slack emoji for OOO is 🌴 :palm_tree:, with ✈️ :airplane: for travel and 🗓️ :spiral_calendar_pad: for planned PTO. Enterprise's built-in Out of office status uses ⛔. Codes for vacation, upcoming PTO, sick days, holidays and outages, custom :ooo: and :pto: emoji, and statuses to copy.

    Slack Green Team•5 min read