This advanced syntax allows you to use search queries
to filter messages by properties such as the sender, date, or label to name a
few possibilities. For example, the following query retrieves all messages sent
by the user in January of 2014:
GET https://www.googleapis.com/gmail/v1/users/me/messages?q=in:sent after:2014/01/01 before:2014/02/01
In addition to search queries, you can also filter messages and threads by label
with thelabelIdsparameter. This allows you to search for messages and
threads with the specified system or user labels applied. For more information,
see themessages.listorthreads.listmethod reference.
Search and filter differences: Gmail UI versus Gmail API
The Gmail UI performsalias expansionwhich allows it to infer an
account alias from a Google Workspace account. For example, suppose you have an
account
ofmyprimary@mycompany.netand your admin sets up an alias for that account ofmyalias@mycompany.net. Ifmyalias@mycompany.netsends an email, but you
search for "from: myprimary@mycompany.net)" the email sent bymyalias@mycompany.netshows up as a search result the Gmail UI, but not in
the API response.
The Gmail UI allows users to perform thread-wide searches, but the API
doesn't.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Searching for Messages\n\nYou can search or filter files using the\n[`messages.list`](/workspace/gmail/api/v1/reference/users/messages/list) and\n[`threads.list`](/workspace/gmail/api/v1/reference/users/threads/list) methods.\nThese methods accept the `q` parameter which supports most of the same\n[advanced search syntax](https://support.google.com/mail/answer/7190) as\nthe Gmail web-interface. For a list of search and filter differences between\nthe Gmail UI and Gmail API, see\n[Search filter differences: Gmail UI versus Gmail API](#differences).\n\nThis advanced syntax allows you to use search queries\nto filter messages by properties such as the sender, date, or label to name a\nfew possibilities. For example, the following query retrieves all messages sent\nby the user in January of 2014: \n\n GET https://www.googleapis.com/gmail/v1/users/me/messages?q=in:sent after:2014/01/01 before:2014/02/01\n\n| **Warning:** All dates used in the search query are interpreted as midnight on that date in the PST timezone. To specify accurate dates for other timezones pass the value in seconds instead: \n|\n| ```\n| ?q=in:sent after:1388552400 before:1391230800\n| ```\n\nIn addition to search queries, you can also filter messages and threads by label\nwith the `labelIds` parameter. This allows you to search for messages and\nthreads with the specified system or user labels applied. For more information,\nsee the [`messages.list`](/workspace/gmail/api/v1/reference/users/messages/list) or\n[`threads.list`](/workspace/gmail/api/v1/reference/users/threads/list) method reference.\n\nSearch and filter differences: Gmail UI versus Gmail API\n--------------------------------------------------------\n\n- The Gmail UI performs *alias expansion* which allows it to infer an\n account alias from a Google Workspace account. For example, suppose you have an\n account\n of `myprimary@mycompany.net` and your admin sets up an alias for that account of\n `myalias@mycompany.net`. If `myalias@mycompany.net` sends an email, but you\n search for \"`from: myprimary@mycompany.net)`\" the email sent by\n `myalias@mycompany.net` shows up as a search result the Gmail UI, but not in\n the API response.\n\n- The Gmail UI allows users to perform thread-wide searches, but the API\n doesn't."]]