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
feed
reader, or add the feed URL directly: https://developers.google.com/feeds/gmail-release-notes.xml
.
November 12, 2019
The 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.
May 05, 2017
Deprecated Review Action, which sunsets on July 15th, 2017.
February 07, 2017
The history.list
method supports filtering history records by type.
November 30, 2016
The 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:
The q
request parameter for the drafts.list
method restricts results to the messages matching the specified query.
February 25, 2016
The messages.batchDelete
method lets you delete multiple messages, by message IDs, in a single batch operation.
January 13, 2016
The drafts.list
method has an includeSpamTrash
option, which determines if the response should include drafts with the SPAM
or TRASH
label 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 messagesAdded
, messagesDeleted
, labelsAdded
, and labelsRemoved
.
June 18, 2015
Added a 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:
https://www.googleapis.com/auth/gmail.insert
: Allows themessages.insert
andmessages.import
methods only.https://www.googleapis.com/auth/gmail.labels
: Allows all label operations.
March 18, 2015
The messages.insert
method now supports the deleted
request parameter and lets you set SENT
and DRAFT
labels.
February 25, 2015
The history.list
method now provides details of the change type in each history record. For example, using the messagesAdded
, messagesDeleted
, labelsAdded
, or 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
The messages.import
method now supports the following parameters to better support Email Migration
use cases:
neverMarkSpam
processForCalendar
deleted
January 23, 2015
You can now specify message.labelIds
on messages.import
requests to automatically apply the given labels to the message.
The default behavior no longer automatically adds INBOX
and UNREAD
labels to messages.import
emails. When message.labelIds
isn't specified, imported mail is only visible in All Mail. If you want INBOX
or UNREAD
labels applied, specify them in the message.labelIds
field.
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 full
, metadata
, and 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
The 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:
messagesTotal
messagesUnread
threadsTotal
threadsUnread
September 25, 2014
The messages.insert
method defaults to using receivedTime
and the messages.import
method defaults to using dateHeader
.
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
You can specify the internalDateSource
for both the messages.insert
and messages.import
methods.
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!
October 28, 2013
The Review Action is out of preview, and now available to all users.
October 03, 2013
The Schema Validator tool in Testing Your Schemas has been replaced with the new Email Markup Tester.
July 23, 2013
It is now possible to use schemas to define Orders, Parcel Deliveries, and the TrackAction to let users track packages being delivered.
July 11, 2013
The RSVP Action is now enabled for all emails sent by Google Calendar.