This page lists and explains the changes to Messages, Drafts, and related APIs between Nylas v2.7 and v3.
Changes to Messages and Drafts
Section titled “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. - By default, Nylas now stores messages on IMAP providers in a cache for 90 days after they’re received or created.
- You can access messages older than 90 days by setting the
query_imapparameter totruewhen you make a request to the following endpoints: Get Message, Get all Messages, Get Draft, Get all Drafts, and the Attachments endpoints. This directly queries the IMAP server instead of Nylas’ cache.
- You can access messages older than 90 days by setting the
Changes to Folders and Labels endpoints
Section titled “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
Section titled “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)
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “New endpoint”DELETE /threads/<id>
New response fields
Section titled “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
Section titled “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
Section titled “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?
Section titled “What’s next?”For more information about Nylas API v3, including how to start using it, you can browse the following resources: