Email API Solution - Build Engaging Email Capabilities
Icon Email API

Integrate any email provider, fast

The Nylas Email API connects your app with 100% of email service providers. Deliver integrations 12x faster than building on your own with near-perfect deliverability.

Icon
New

AE Studio + Nylas Fireside Chat: Reshaping developer workflows with artificial intelligence

Register Now
Introducing the Nylas Email API

Build contextual email features that drive engagement

Nylas’ contextual email API syncs bi-directionally with your users’ go-to service providers (e.g., Gmail, Outlook, IMAP, etc.), powering two-way email conversations.

Attachments Bounce Detection Drafts Folders Messages Read, click and reply tracking Scheduled Send Search Send status Smart Compose Threads
Image
Image

Connect to every provider

Connect to 100% of email service providers in minutes with our universal API. No custom code required.

Image

Unmatched deliverability

Send directly from your users’ inboxes vs proxy sends, with Nylas’ industry-leading 99.6% deliverability.

Image

Save thousands of dev hours

Give your developers and integration experts time back to refocus on advancing your roadmap. 

For developers

Sync emails in minutes

With a few lines of code, build email CRUD capabilities and bi-directional sync.

See the docs

Node.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"
        }
      }
    }
  }  
 

Webhooks

Receive real-time notifications to monitor events and trigger automated workflows.

Sandbox environment

Experiment with our API with pre-configured settings in the Nylas Dashboard.

SDKs

Fast-track your integration with our Node.js, Ruby, Python, Java and Kotlin SDKs.

Features

Speed up integrations with robust and intelligent email features

Leverage advanced email capabilities that save users time and automate tedious, manual workflows. 

Image

Message analytics

Track and show email status, including opens, clicks, replies, and bounces, for users to deliver more effective outreach.

Image

Smart Compose

Use our generative AI-powered email composer to create and edit messages, improving efficiency and eliminating writer’s block.

Image

Intelligent endpoints

Extract email signatures to keep user contact books up to date, create chat-like views of email threads, and access message metadata for trend analysis.

Customers

The email API powering top-tier applications

250,000+ developers trust Nylas to power email experiences their customers love.

Salesloft

Salesloft partners with Nylas to unlock new enterprise market

“We have millions of emails sent each week. Nylas frees us up to focus on delivering new features to our customers and working with our data science team on exciting new projects.”

Nora Ignatius

Nora Ignatius

Product Manager @ Salesloft

10+

full-time engineers retasked to other work

25%

of maintenance team resources conserved

Read the full story

Funnel launches productivity-enhancing communications features using Nylas

“Nylas accelerated our timelines for moving forward because they provided a clear solution to meet our challenges. We were able to springboard out of the vision stage and dive into the execution sprint.”

Ben Rubin,

Ben Rubin,

CPO @ Funnel

150%

YoY increase in annual revenue

2

developers launched the solution in just three months

Read the full story

Jobylon expands global customer base with premium email and calendar features

“Nylas can do the heavy lifting of integrating with proprietary APIs, allowing us to work with a simple, standardized API.”

Niklas A. Emanuelsson,

Niklas A. Emanuelsson,

Head of Engineering @ Jobylon

25%

increase in annual recurring revenue

30%

increase in expansion and upsells

Read the full story

Crunchbase increases sales productivity and bookings with Nylas

“Adding bi-directional email sync provides our users with a way to increase their productivity within the Crunchbase platform [while encouraging upsells to a new pricing tier with premium features].

Monika Abraham,

Monika Abraham,

Product Ops Manager @ Crunchbase

1 new

pricing tier added to increase revenue

$75k

saved from Google security review

Read the full story
Use cases

Turn your application into a communications hub with Nylas

Nylas makes it easy to build best-in-class email experiences in your application.

Contextual email

Power personal, relationship-building conversations in your app.

Explore contextual email

Automated outreach

Quickly build high-volume email outreach with near-perfect deliverability.

Explore automated outreach

Start building the future

Get your API key and connect up to 5 accounts for free.

Image