Integrate any email provider with Email API
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.
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.
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.
Connect to 100% of email service providers in minutes with our universal API. No custom code required.
Send directly from your users’ inboxes vs proxy sends, with Nylas’ industry-leading 99.6% deliverability.
Give your developers and integration experts time back to refocus on advancing your roadmap.
250,000+ developers trust Nylas to power email experiences their customers love.
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: '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"
}
}
}
}
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.
Leverage advanced email capabilities that save users time and automate tedious, manual workflows.
Track and show email status, including opens, clicks, replies, and bounces, for users to deliver more effective outreach.
Use our generative AI-powered email composer to create and edit messages, improving efficiency and eliminating writer’s block.
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.
Nylas makes it easy to build best-in-class email experiences in your application.
Power personal, relationship-building conversations in your app.
Explore contextual emailQuickly build high-volume email outreach with near-perfect deliverability.
Explore automated outreachGet your API key and connect up to 5 accounts for free.