Seamlessly connect your application with Microsoft Exchange using the Nylas Email API.
Connect up to 5 accounts for free, no credit card required.
By creating an account, you agree to our Terms of Service and Privacy Policy.
With a few lines of code, build email CRUD capabilities and bi-directional sync to solve problems with Microsoft Exchange email API integrations.
See the docsNode.js
Ruby
Python
Java
Curl
const messages = await nylas.messages.list({ identifier, queryParams: { limit: 5, } })
require 'nylas' nylas = Nylas::Client.new(api_key: 'API_KEY') query_params = { limit: 5 } messages, _ = nylas.messages.list(identifier: '<GRANT_ID>', query_params: query_params) messages.each {|message| puts "[#{Time.at(message[:date]).strftime("%d/%m/%Y at %H:%M:%S")}] \ #{message[:subject]}" }
messages = nylas.messages.list( grant_id, query_params={ "limit": 5 } )
import com.nylas.NylasClient; import com.nylas.models.*; import java.text.SimpleDateFormat; public class ReadInbox { public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError { NylasClient nylas = new NylasClient.Builder("<API_KEY>").build(); ListMessagesQueryParams queryParams = new ListMessagesQueryParams.Builder().limit(5).build(); ListResponse<Message> message = nylas.messages().list("<GRANT_ID>", queryParams); for(Message email : message.getData()) { String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"). format(new java.util.Date((email.getDate() * 1000L))); System.out.println("[" + date + "] | " + email.getSubject()); } } }
curl --request GET \ --url "https://api.us.nylas.com/v3/grants/GRANT_ID/messages?limit=5" \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <API_KEY_OR_ACCESS_TOKEN>' \ --header 'Content-Type: application/json'
Node.js
Ruby
Python
Java
Curl
const contact = new Contact(nylas); // The following attributes can be modified for the contact object contact.givenName = 'Nyla' contact.birthday = '2014-06-01' contact.companyName = 'Nylas' contact.jobTitle = 'Communications Platform' contact.officeLocation = 'San Francisco' contact.notes = 'Check out the Nylas Email, Calendar, and Contacts APIs' contact.emailAddresses = [new EmailAddress({ type: 'work', email: 'nyla@nylas.com' })]; contact.save();
contact = nylas.contacts.create contact.given_name = 'Nyla' contact.office_location = 'San Francisco' contact.company_name = 'Nylas' contact.notes = 'Check out the Nylas Email, Calendar, and Contacts APIs' contact.manager_name = 'Communications' contact.job_title = 'Communications Platform' contact.birthday = '2014-06-01' contact.emails = [ { type: 'work', email: 'nyla@nylas.com' }] contact.save
contact = nylas.contacts.create() contact.given_name = 'Nyla' contact.office_location = 'San Francisco' contact.company_name = 'Nylas' contact.notes = 'Check out the Nylas Email, Calendar, and Contacts APIs' contact.manager_name = 'Communications' contact.job_title = 'Communications Platform' contact.birthday = datetime(2014, 6, 1) contact.emails['work'] = ['nyla@nylas.com'] contact.save()
public class NylasExamples { public static void createContact() throws IOException, RequestFailedException { Contact contact = new Contact(); contact.setGivenName("Nyla"); contact.setNickname("Nylas"); contact.setOfficeLocation("San Francisco"); contact.setCompanyName("Nylas"); contact.setNotes("Check out the Nylas Email, Calendar, and Contacts APIs"); contact.setManagerName("Communications"); contact.setJobTitle("Communications Platform"); contact.setBirthday("2014-06-01"); contact.setEmails(Arrays.asList(new Contact.Email("work", "nyla@nylas.com"))); contact = account.contacts().create(contact); } }
curl --request POST \ --url https://api.nylas.com/contacts \ --data '{ "birthday": "2014-06-01", "company_name": "Nylas", "emails": [ { "email": "nyla@nylas.com", "type": "work" } ], "given_name": "Nyla", ], "job_title": "Nylas Mascot", "phone_numbers": [ { "number": "1 800 GO NYLAS", "type": "business" } ], "web_pages": [ { "type": "work", "url": "nylas.com" } ], }'
Response
{ "request_id": "d0c951b9-61db-4daa-ab19-cd44afeeabac", "data": [ { "starred": false, "unread": true, "folders": [ "UNREAD", "CATEGORY_PERSONAL", "INBOX" ], "grant_id": "1", "date": 1706811644, "attachments": [ { "id": "1", "grant_id": "1", "filename": "invite.ics", "size": 2504, "content_type": "text/calendar; charset=\"UTF-8\"; method=REQUEST" }, { "id": "2", "grant_id": "1", "filename": "invite.ics", "size": 2504, "content_type": "application/ics; name=\"invite.ics\"", "is_inline": false, "content_disposition": "attachment; filename=\"invite.ics\"" } ], "from": [ { "name": "Nylas DevRel", "email": "nylasdev@nylas.com" } ], "id": "1", "object": "message", "snippet": "Send Email with Nylas APIs", "subject": "Learn how to Send Email with Nylas APIs", "thread_id": "1", "to": [ { "name": "Nyla", "email": "nyla@nylas.com" } ], "created_at": 1706811644, "body": "Learn how to send emails using the Nylas APIs!" } ], "next_cursor": "123" }
{ "type": "event.created3", "data": { "object": { "busy": true, "calendar_id": "mock-name%40nylas.com", "created_at": 1234567890, "description": "mock description", "hide_participants": false, "ical_uid": "mock_uids@google.com", "id": "mock-data-id", "object": "event", "owner": "Mock Owner <mock_owner@example.com>", "organizer": { "name": "mock organizer name", "email": "mock_email@example.com" }, "participants": [ { "email": "mockParticipantsA@example.com", "name": "mockParticipantsA", "status": "yes" }, { "email": "mockParticipantsB@example.comm", "name": "mockParticipantsB", "status": "noreply" } ], "read_only": false, "reminders": null, "status": "confirmed", "title": "mock_title", "updated_at": 1234567890, "when": { "start_time": 1234567890, "start_timezone": "America/Edmonton", "end_time": 1234567890, "end_timezone": "America/Edmonton", "object": "timespan" } } } }
Receive real-time notifications to monitor events and trigger automated workflows.
Fast-track your Microsoft Exchange email API integration with our Node.js, Ruby, Python, Java and Kotlin SDKs.
With Nylas, you can build a full create, read, update, delete (CRUD) and bi-directional Microsoft Exchange email API integration between your app and 100% of email service providers with just a few lines of code.
Nylas handles the complexities of EWS, EAS, and binary xml for you.
Ensures the latest conversation history is available in real-time — both in your application and your users’ email client.
Unlock full email CRUD capabilities in your application with every synced account.
Users can send emails from your app that land in the inbox, not in SPAM.
Rich insights into every email send
As your platform scales and your user base grows, so do costs for maintaining a custom Microsoft Exchange email API integration. These costs include:
With Nylas, none of these costs apply. We manage servers, specialization, security certifications, and provide world-class support SLAs.
Calculate your savings with the Nylas APIsSecurity is our top priority — we sweat the small stuff so you don’t have to. Nylas is SOC 2 Certified, Privacy Shield certified, GDPR compliant, and HIPAA-ready. Data from every email you sync is encrypted and isolated with multi-level permission checks.
Discover the power of the Nylas platform and connect up to five accounts for free.
Microsoft’s Exchange Web Services (EWS) provides an Exchange email API that provides access to all of the data and functionality in Exchange mailboxes. It enables developers to parse email data, create email drafts, send emails, manage attachments, and organize an email inbox with folders. EWS offers a direct SOAP implementation and C# client library that provides full access to user accounts in Exchange Online, Exchange Online as part of Office 365, and Exchange server inboxes.
If you’re looking to integrate Exchange inboxes directly into your app, check out this post that details the major aspects of the Exchange Email API and explains what it takes to integrate Exchange inboxes. It also demonstrates how the Nylas Email API abstracts away much of the complexity of building a direct integration with the Exchange email API to enable you to build your calendar integration much more quickly and efficiently.
When integrating Microsoft Exchange Email API with other apps or services, you can obtain API credentials, choose an integration method such as Microsoft Graph API, Exchange Web Services, or Exchange ActiveSync, implement the integration, test and debug your code, deploy it to production and monitor it. Alternatively, you can also consider using Nylas, which offers a unified email API solution for Microsoft Exchange, Gmail, and other email providers.
Yes, there are limitations to the number of events or calendars that can be accessed through the Microsoft Exchange Email API. The specific limitations depend on the API version and the licensing plan you have subscribed to.
Microsoft provides libraries and SDKs for several programming languages that can be used to integrate the Microsoft Exchange Email API, including C#, Java, JavaScript, Python, and Ruby.