- Products
- Solutions Use casesBy industry
- Developers
- Resources Connect
- Pricing
Nylas makes it easy and fast for developers to integrate their app with the Gmail API and 100% of email service providers, simplifying the process of accessing and managing Gmail accounts and other email features.
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: '[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"
}
}
}
}
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.
It takes 5,016 developer hours on average to build a full-featured Gmail integration on your own. Connect to Gmail and any other email provider in a fraction of the time with the Nylas Email API.
Nylas provides search functionality that allows you to run a full-text search that is proxied to the users’ Gmail accounts. Results are matched with objects that have been synced and then returned.
Webhooks allow your application to receive notifications when certain events occur — they are easy to integrate with your app and scale seamlessly with your growth.
The reliability of the Nylas communication platform provides an integration that guarantees 99.9% uptime.
As your platform scales and your user base grows, so do costs for maintaining custom Gmail API integrations, such as:
With Nylas, we manage the end-to-end integration for you. Our platform adheres to the most rigorous security and compliance standards so you can feel confident that your company and customer data remain safeguarded.
Security is our top priority — we sweat the small stuff so you don’t have to. Nylas is SOC 2 Type II Certified, ISO 27001 compliant, GDPR compliant, and HIPAA compliant. Data from every email is encrypted and isolated with multi-level permission checks.
Discover the power of the Nylas platform and connect up to 5 accounts for free.
The Gmail API is a RESTful interface that provides access to all of the data and functionality in Gmail mailboxes, enabling developers to parse email data, create email drafts, send emails, organize an email inbox with labels, modify settings for user accounts, and create filters to automatically label, forward, or archive emails.
At Nylas, we spend a ton of time integrating with third-party APIs, like the Gmail API, to build our email API, so we’re here to offer our expertise about what it takes to build a best-in-class integration with Gmail.
The Nylas Email API encrypts 100% of your data with enterprise-grade security standards. In addition, Nylas is compliant or certified with GPDR, CCPA, SOC 2 Type II, ISO 27001, and HIPAA.
Before you can access a Gmail account, you will need to authenticate the account with the appropriate permissions. All Google APIs use OAuth 2.0 for account authentication and authorization, which establishes a login process where your app negotiates with the Google Identity Platform to receive an access token for user accounts. This token provides limited access to user resources based on the scopes the user consented to as part of the authentication process.
Alternatively, Nylas Hosted Auth auto-detects Google accounts, even for domains other than gmail.com, and prompts users to sign in and accept the permissions your app needs. Your user’s credentials are stored safely on our SOC 2 Certified infrastructure, and Nylas provides an access token your app can use for Gmail data and functionality.
For a deep dive into integrating with the Gmail API, check out this blog post.
Nylas supports all major email, calendar, and contacts providers out of the box, enabling your users to keep using their service provider of choice.
Nylas supports several technologies for Gmail API integration, including Python, Node.js, Ruby, and Java.