Changes to Email APIs in Nylas v3
This page lists and explains the changes to Messages, Drafts, and related APIs between Nylas v2.7 and v3.
Changes to Messages and Drafts
- All Messages and Drafts endpoints now require a 
grant_id, an email address, or — if you're using access token authentication — the/me/construction. - Labels and Folders have been consolidated into Folders.
folder→foldersfor all Messages and Threads calls.labels→foldersfor all Messages and Threads calls.
 - Files are now called Attachments.
- Previously, you used the 
filesendpoints to add files to messages. Now, you use the Drafts and Message-Send endpoints to add attachments, and the Attachments APIs to get information about the attachments. For more information, see Working with email attachments. 
 - Previously, you used the 
 - You can now send drafts.
 - You can schedule a send time for a message, and edit or delete scheduled send times.
 - You can now soft-delete messages and threads.
 - The new 
message.send_successandmessage.send_failednotifications allow you to track the results of a scheduled send. - The new 
message.bounce_detectednotification is available to check for message bounces from Google, Microsoft Graph, iCloud, and Yahoo. - The 
schedule_id,send_at, anduse_draftparameters have been added toPOSTcalls. - The 
/messages/searchendpoint has been deprecated. Instead, you now include a URL-encoded provider query string in aGET /v3/grants/<NYLAS_GRANT_ID>/messagesrequest. - The 
/threads/searchendpoint has been deprecated. Instead, you now include a URL-encoded provider query string in aGET /v3/grants/<NYLAS_GRANT_ID>/threadsrequest. - The 
not_inandfilenamequery parameters have been deprecated forGETcalls. - The 
view=countquery parameter has been deprecated forGETcalls. - The 
eventsandcidsproperties have been deprecated forGETcalls. - Nylas stores email messages from IMAP providers in a 90-day rolling window. After 90 days Nylas deletes the stored copies, and you can't retrieve them using the Nylas API once they're deleted. If you require access to IMAP messages older than 90 days, your project must store them.
 
Changes to Folders and Labels endpoints
- All Labels endpoints have been replaced by Folders endpoints.
 - Added 
system_folderfor Google in all Folders calls. - Added 
total_countinPOSTandPUTcalls. - Added 
unread_countinGETcalls. - Added 
attributesinGETandPUTcalls. 
Changes to the Send endpoint
- Added an 
attachmentsproperty toPOSTcalls. - Added 
send_attoPOSTcalls for scheduled Messages. - Added 
is_drafttoPOSTcalls for scheduled send. 
Changes to Files (Attachments)
- The Files endpoints have been replaced by Attachments endpoints.
 POSTFile upload has been deprecated.GET /fileshas been deprecated.DELETE /files/<file_id>has been deprecated.
Changes to message tracking
Nylas API v3 includes several small changes to message tracking to improve the clarity of tracking parameters and responses:
- The 
trackingsub-object that you include in Send Message and Create Draft requests is now calledtracking_options. - The 
tracking_optionssub-object'spayloadfield is now calledlabelto better reflect its purpose.- Webhook responses now also reference the 
labelfield. 
 - Webhook responses now also reference the 
 - The 
recentsarray'sidfield is now calledclick_idfor link clicked tracking, andopened_idfor message open tracking. 
Changes to email search in v3
In v2 you could only search messages on IMAP providers by subject and body contents. In v3, you can search using all standard IMAP SEARCH operators.
Microsoft Graph mutable IDs
In general, Nylas v3 returns globally unique, immutable identifiers for messages and threads. This means that if you store a Nylas message_id or thread_id in your database, you can use it to get that message or thread at any time in the future. In some cases with Microsoft Graph, however, Nylas cannot guarantee that message or thread identifiers are immutable. This occurs when listing or searching with the following query parameters:
search_query_nativetoccbccany_email
This issue is specific to Microsoft Graph and affects only the listed query parameters. Nylas has not encountered this issue with any other providers.
To learn more about immutable identifiers and how it could affect your application, see Microsoft's official immutable identifiers documentation.
Changes to the Threads API in v3
The Threads API has been retooled for Nylas API v3. The following sections explain the changes.
New endpoint
DELETE /threads/<id>
New response fields
The Threads API now returns the following fields in its request responses, in addition to the fields returned in API v2.7:
- The 
latest_draft_or_messagefield, representing the most recent message or draft in the thread. - The 
has_draftsfield, showing whether the thread has Drafts associated with it. 
Updated response fields
The following response fields have been renamed:
first_message_timestamp→earliest_message_datelast_message_received_timestamp→latest_message_received_datelast_message_sent_timestamp→latest_message_sent_date
Removals
- The 
labelsresponse field has been removed. Threads are now organized byfolders, regardless of your email provider. - The 
last_message_timestampresponse field has been moved and renamed. You can now find this information in thelatest_draft_or_message.datesub-object. - The 
view=expandedquery param is no longer supported. - The 
view=countquery param is no longer supported. 
What's next?
For more information about Nylas API v3, including how to start using it, you can browse the following resources: