- Products
- Solutions Use casesBy industry
- Developers
- Resources Connect
- Pricing
Seamlessly connect your application with Microsoft Exchange using the Nylas Email API.
With a few lines of code, build email CRUD capabilities and bi-directional sync.
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: '[email protected]'
})];
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: '[email protected]'
}]
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'] = ['[email protected]']
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", "[email protected]")));
contact = account.contacts().create(contact);
}
}
curl --request POST \
--url https://api.nylas.com/contacts \
--data '{
"birthday": "2014-06-01",
"company_name": "Nylas",
"emails": [
{
"email": "[email protected]",
"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": "[email protected]"
}
],
"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": "[email protected]"
}
],
"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": "[email protected]",
"id": "mock-data-id",
"object": "event",
"owner": "Mock Owner <[email protected]>",
"organizer": {
"name": "mock organizer name",
"email": "[email protected]"
},
"participants": [
{
"email": "[email protected]",
"name": "mockParticipantsA",
"status": "yes"
},
{
"email": "[email protected]",
"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.
Experiment with our API with pre-configured settings in the Nylas Dashboard.
Fast-track your 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 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 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.
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.
Unlock your key API and sync up to 5 accounts