Productivity Infrastructure for Modern Software
Launch smart workflows and powerful user experiences. No custom code required.


Powering the Software that Makes Work Easier
// See Industry Solutions

Quickly Launch Features That Boost User Productivity
Nylas powers popular features that save end-users an average of one workday per week across industries like sales, customer service, HR, real estate, legal, and finance.

Data Synchronization
Get powerful CRM capabilities through full, bi-directional sync with your users’ inboxes, calendars, and contacts.
Data Extraction & Processing
Extract relevant data from unstructured sources like emails, attachments, images, and PDFs to trigger powerful workflows.
Automated Communications
Automate the sending of messages from your users based upon criteria like date, time, and recipient.
Streamlined Scheduling
Make booking interactions and resources easy with smart scheduling and calendaring features.
Email Send & Deliverability
Ensure a 99% + deliverability rate for any email your users send from your application.
Message Analysis, Filtering & Routing
Analyze, filter and route messages to your users based on sender, intent, relevance and importance.
The Nylas Difference
Stop Building Features From Scratch
Deliver new features without tying up your development team.
Launch in Days, Not Months
Accelerate product innovation with pre-built solutions that work off-the-shelf.
Get Rock-Solid Reliability At Scale
Make being on-call easy for SREs with 99.9% guaranteed uptime.
Elite Performance for Enterprise Applications
Built for Developers,
By Developers
We remove the headaches of working with messy, unstructured communications data and having to write custom code.
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
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
With the Nylas API, I had launchable code for full features in just two days.
– Stefan Roesch
It would have cost us at least a year to build out our own integrations.
– Aaron George
Everything Connected.
Everything Secure.
Let your CISO sleep safe and sound with comprehensive security and compliance features.
Learn More