This page contains release notes for features and updates to the Gmail API. We recommend that Gmail API developers periodically check this list for any new announcements.
To get the latest product updates delivered to you, add the URL of this page to your
reader, or add the feed URL directly:
November 12, 2019
messages.import method uses a more performant backend implementation. The new version is API-compatible with the previous implementation and all clients automatically started using the new behavior as of a few weeks ago. The new backend supports parallel
message.import calls efficiently and clients can now import messages in parallel for a user to achieve higher migration throughput. The quota cost of the
message.import method has been decreased to reflect the new performance.
February 07, 2017
history.list method supports filtering history records by type.
November 30, 2016
messages.batchModify method lets you modify labels on multiple messages by message IDs, in a single batch operation.
November 01, 2016
The Gmail API supports a
gmail.metadata scope. This scope gives developers access to a user's mailbox including history records, labels, and email headers, but not email body's or attachments.
July 01, 2016
New endpoints for managing mail settings:
q request parameter for the
drafts.list method restricts results to the messages matching the specified query.
February 25, 2016
messages.batchDelete method lets you delete multiple messages, by message IDs, in a single batch operation.
January 13, 2016
drafts.list method has an
includeSpamTrash option, which determines if the response should include drafts with the
TRASHlabel applied. The default is currently set to
true for this option.
June 22, 2015
To determine the full state of an email before and after a change, the
history.list method returns all current
Message.labelIds as part of the response in
June 18, 2015
Message.internalDate field that exposes the message's creation timestamp in the mailbox.
May 29, 2015
You can now send push notifications on mailbox updates, providing real-time server notification without the need for constant polling. With Cloud Pub/Sub, you can now use webhooks—for example, to receive callbacks when updates happen. Additionally, you can filter these notifications to specific Gmail labels.
March 31, 2015
New scopes for labels and inserting messages to better protect users and accommodate apps that don't need full mailbox data access:
March 18, 2015
messages.insert method now supports the
deleted request parameter and lets you set
February 25, 2015
history.list method now provides details of the change type in each history record. For example, using the
labelsDeleted enums, it's possible to easily tell how a message was changed and typically avoids the need for additional calls to synchronize your client.
February 11, 2015
messages.import method now supports the following parameters to better support
Email Migration use cases:
January 23, 2015
You can now specify
messages.import requests to automatically apply the given labels to the message.
The default behavior no longer automatically adds
UNREAD labels to
messages.import emails. When
message.labelIds isn't specified, imported mail is only visible in All Mail. If you want
UNREAD labels applied, specify them in the
January 15, 2015
Increased the default per-user quotas from 25 units/user/second to 250 units/user/second and adjusted some method costs slightly.
October 22, 2014
You can now specify the return format for the
threads.get method. The available formats are
minimal, similar to the
messages.get method. The raw format isn't allowed for the
threads.get to avoid unexpectedly large amounts of data being returned.
October 16, 2014
getProfile method provides mailbox-wide information like current history ID and total message and thread counts.
October 06, 2014
Added a new
IMPORTANT label to match functionality with the Gmail UI.
Added new fields to the
Labels resource to simplify counting how many messages have a given label applied:
September 25, 2014
messages.insert method defaults to using
receivedTime and the
messages.import method defaults to using
September 08, 2014
When you use the
messages.get method, you can request the metadata return format to return only the email headers and metadata such as identifiers and labels.
September 02, 2014
July 11, 2014
Quota costs for all methods in the API have been reduced by a factor of 10. For example, if a method previously cost 150 quota units, it now costs 15. For a complete list of API method costs, see the per-method quota usage chart.
June 25, 2014
The Gmail API is publicly available!