Email API

Connect to 100% of users’ inboxes with the Nylas Email API

Launch powerful native email capabilities quickly and securely with a single API.

  • Deliver email features months, if not years, ahead of the competition.
  • Build an email experience that connects directly to your users’ inboxes, not proxy IPs, with 99.6% email deliverability.
  • Get maintenance-free connections with a 99.9% guaranteed uptime.

Request a demo to see the Nylas Email API in action.

For more information about how this data is used, please view our Privacy Policy

Our simple
three-step
process.

01

Get a free API key

Create an account to unlock our full platform for up to 5 accounts — no credit card required

02

Build integrations quickly

With just a few lines of code, you get full create, read, update, delete (CRUD) capabilities and bi-directional sync.

03

Connect all your users

Whether you’re connecting 100 or 100 million accounts, you can rest easy knowing your data is safe.

For developers

Sync emails in minutes

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

Build for free

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: '[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"
        }
      }
    }
  }  
 

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.

Trusted by over 250,000 developers worldwide

Logo Logo Logo Logo Logo