The Leading Platform for Email, Calendar, and Contacts
One connection for every provider in the world.

Integrate Once. Connect to Every Provider.
We remove the complexity of building and managing direct integrations.
- Modern, RESTful APIs make integrating quick and easy.
- Bi-directional sync with inboxes, calendars, and address books.
- Full CRUD (create, read, update, delete) capabilities.
Lexicata saved 12 months of engineering hours with Nylas. Learn How »

Security You Can Trust. Control When You Need It.
We help you by processing your data safely and securely, but you always have full control.
- Data is encrypted in transit and at rest.
- Full access control and gated permission checks.
- Token management, selective sync, and more.
Nylas protects and secures your data. Learn How »

Reliability. Scalability. Elite Performance.
We handle ongoing maintenance for you so you can focus on other things.
-
99.9% guaranteed uptime, backed by industry-leading support SLAs.
-
Low latency sync and billions of API requests handled per week.
-
Smart API versioning makes for smooth updates every time.
Nylas delivers a scalable API architecture. Learn How »
How It Works
// Get StartedGet a Free API Key
Create an account to unlock the full platform for 30 days — no credit card required.
Build a Basic Integration
With just a few lines of code, you can get full bi-directional sync with any inbox.
Connect All Your Users
Whether you are connecting 100 or 100 million accounts, you can rest easy knowing your data is safe with us.
Universal APIs for Email, Calendar, and Contacts
import Nylas from 'nylas'; Nylas.config({ clientId: CLIENT_ID, clientSecret: CLIENT_SECRET }); var nylas = Nylas.with(ACCESS_TOKEN); nylas.threads .count({in:'inbox'}) .then(count => { console.log(`There are ${count} threads in your inbox.`); });
public class Email { public static void main (String[] args) throws Exception { NylasAccount account = new NylasClient().account(ACCESS_TOKEN); List threads = account.threads().list( new ThreadQuery().unread(true)); threads.stream().forEach(( Thread thread ) -> { System.out.println( thread.getSubject() ); }); } }
from nylas import APIClient nylas = APIClient( CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN ) threads = nylas.threads.where( unread=True, limit=5 ) for thread in threads: print(thread.subject)
require 'nylas' nylas = Nylas::API.new( app_id: CLIENT_ID, app_secret: CLIENT_SECRET, access_token: ACCESS_TOKEN ) threads = nylas.threads.search( "Hello!" ) threads.each do |thread| puts thread.subject end
Universal Email API
A single point of integration that connects your application to every email service provider in the world.
With just a few lines of code, you can build a secure, reliable connection to your users’ inboxes. Get full, bi-directional sync with Gmail, Outlook.com, Microsoft Exchange, Office 365, IMAP and all the rest in minutes. Learn More»
import Nylas from 'nylas'; Nylas.config({ clientId: CLIENT_ID, clientSecret: CLIENT_SECRET, }); var nylas = Nylas.with(ACCESS_TOKEN); nylas.events .count() .then(count => { console.log( `You have ${count} events.` ); });
public class Calendar { public static void main (String[] args) throws Exception { NylasAccount account = new NylasClient().account(ACCESS_TOKEN); List events = account.events().list( new EventQuery().title("Birthday Party!")); events.stream().forEach(( Event event ) -> { System.out.println( event.getLocation() ); }); } }
from nylas import APIClient nylas = APIClient( CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN, ) events = nylas.events.where( starts_after=15147064800, limit=5 ) for event in events: print(event.title)
require 'nylas' nylas = Nylas::API.new( app_id: CLIENT_ID, app_secret: CLIENT_SECRET, access_token: ACCESS_TOKEN ) events = nylas.events.search( "Hello!" ) events.each do |events| puts events.title end
Universal Calendar API
Connect to every calendar provider, including Google Calendar, Outlook.com and Office 365, and Microsoft Exchange. We even give you calendar support for IMAP via autogenerated calendar events.
Quickly build embedded calendar features, get recurring events support from every provider, create events from email, and more.
import Nylas from 'nylas'; Nylas.config({ clientId: CLIENT_ID, clientSecret: CLIENT_SECRET }); var nylas = Nylas.with(ACCESS_TOKEN); nylas.contacts .count() .then(count => { console.log( `You have ${count} contacts.` ); });
public class Contacts { public static void main (String[] args) throws Exception { NylasAccount account = new NylasClient().account(ACCESS_TOKEN); List contacts = account.contacts().list(); contacts.stream().forEach(( Contact contact ) -> { System.out.println( event.getEmails() ); }); } }
from nylas import APIClient nylas = APIClient( CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN ) contacts = nylas.contacts.where( country='USA' ) ) for contact in contacts: print(contact.given_name)
require 'nylas' nylas = Nylas::API.new( app_id: CLIENT_ID, app_secret: CLIENT_SECRET, access_token: ACCESS_TOKEN ) contacts = nylas.contacts.where( email: "alice@gmail.com" ) contacts.each do |contact| puts contact.birthday end
Universal Contacts API
Get full contacts sync with your users’ address books. Unlock auto-complete for contact information such as email address, phone number, job title, and profile photo.
Our platform is certified in the latest security standards like SOC 2 Certification and GDPR compliance, so you can focus on building the features your users will love. Learn More »