Delivering your transactional and marketing email through one reliable platform.

Get Started Try for Free

Integrate in Minutes

Not a developer? Check out our marketing email features and our best practice resources.

Start sending now via SMTP or HTTP.

SendGrid has been built from the ground up as an API company. We're built to serve developers and make it easy to send email no matter your environment. You can send email over SMTP or HTTP, and even use one of our official client libraries. In just a few minutes, you can send your first email and millions more.

View all Documentation ›
curl -X POST https://api.sendgrid.com/api/mail.send.json \
     -d "api_user=YOUR_USERNAME" \
     -d "api_key=YOUR_KEY" \
     -d "[email protected]" \
     -d "[email protected]" \
     -d "subject=Sending with SendGrid is Fun" \
     -d "html=and easy to do anywhere, even with CURL"
// using SendGrid's Node.js Library - https://github.com/sendgrid/sendgrid-nodejs
var sendgrid = require("sendgrid")(api_user, api_key);
var email = new sendgrid.Email();
 
email.addTo("[email protected]");
email.setFrom("[email protected]");
email.setSubject("Sending with SendGrid is Fun");
email.setHtml("and easy to do anywhere, even with Node.js");
 
sendgrid.send(email);
# using SendGrid's Ruby Library - https://github.com/sendgrid/sendgrid-ruby
require 'sendgrid-ruby'
 
sendgrid = SendGrid::Client.new(api_user: api_user, api_key: api_key)
 
email = SendGrid::Mail.new do |m|
  m.to      = '[email protected]'
  m.from    = '[email protected]'
  m.subject = 'Sending with SendGrid is Fun'
  m.html    = 'and easy to do anywhere, even with Ruby'
end
 
sendgrid.send(email)
# using SendGrid's Python Library - https://github.com/sendgrid/sendgrid-python
import sendgrid
 
sendgrid = sendgrid.SendGridClient(api_user, api_key)
message = sendgrid.Mail()
 
message.add_to("[email protected]")
message.set_from("[email protected]")
message.set_subject("Sending with SendGrid is Fun")
message.set_html("and easy to do anywhere, even with Python")
 
sendgrid.send(message)
// using SendGrid's Go Library - https://github.com/sendgrid/sendgrid-go
package main
 
import ("github.com/sendgrid/sendgrid-go")
 
func main() {
    sendgrid := sendgrid.NewSendGridClient(api_user, api_key)
 
    message := sendgrid.NewMail()
    message.AddTo("[email protected]")
    message.SetFrom("[email protected]")
    message.SetSubject("Sending with SendGrid is Fun")
    message.SetHTML("and easy to do anywhere, even with Go")
 
    sendgrid.Send(message)
}
// using SendGrid's PHP Library - https://github.com/sendgrid/sendgrid-php
$sendgrid = new SendGrid($api_user, $api_key);
$email    = new SendGrid\Email();
 
$email->addTo("[email protected]")
      ->setFrom("[email protected]")
      ->setSubject("Sending with SendGrid is Fun")
      ->setHtml("and easy to do anywhere, even with PHP");
 
$sendgrid->send($email);
// using SendGrid's Java Library - https://github.com/sendgrid/sendgrid-java
import com.sendgrid.*;
 
public class SendGridExample {
  public static void main(String[] args) {
    SendGrid sendgrid = new SendGrid(api_user, api_key);
 
    SendGrid.Email email = new SendGrid.Email();
 
    email.addTo("[email protected]");
    email.setFrom("[email protected]");
    email.setSubject("Sending with SendGrid is Fun");
    email.setHtml("and easy to do anywhere, even with Java");
 
    SendGrid.Response response = sendgrid.send(email);
  }
}
// using SendGrid's C# Library - https://github.com/sendgrid/sendgrid-csharp
using System;
using System.Net;
using System.Net.Mail;
using SendGridMail;
using SendGridMail.Transport;
 
SendGrid mail = SendGrid.GetInstance();
mail.From = new MailAddress("[email protected]");
mail.AddTo("[email protected]");
mail.Subject = "Sending with SendGrid is Fun";
mail.Text = "and easy to do anywhere, even with C#";
 
var credentials = new NetworkCredential(api_user, api_key);
var transportWeb = new Web(credentials);
transportWeb.Deliver(mail);
# using SendGrid's Perl Library - https://github.com/sendgrid/sendgrid-perl
use Mail::SendGrid;
use Mail::SendGrid::Transport::REST;
 
my $sendgrid = Mail::SendGrid->new(
  from => "[email protected]",
  to => "[email protected]",
  subject => "Sending with SendGrid is Fun",
  html => "and easy to do anywhere, even with Perl"
);
 
Mail::SendGrid::Transport::REST->new( username => $api_user, password => $api_key );

Sending over 19 billion emails per month.

SendGrid provides unmatched deliverability, scalability, and reliability. We deliver email on behalf of happy customers such as:

Become an email expert

Boost your email deliverability skills with best practice guides, videos and webinars.

Guides

SendGrid best practice guides

Download complimentary guides written by SendGrid email experts that will help you master deliverability and improve your sending reputation.

View all Guides ›
Learn what factors affect your deliverability and what key steps you can take right now to make it to the inbox.
Discover the power of SendGrid’s APIs and webhooks through detailed descriptions, sample use cases, and customer success stories.
Learn 30 actionable tips to grow your email subscriber list, without renting or buying addresses.
Your step-by-step guide to SendGrid’s email platform that highlights our key differentiators and how they can benefit your business.
Key strategies, tools, and tactics to help you comply with the Internet Service Providers, including a dozen resource links.
Learn the best placement, content, and design for your CTAs that will help guarantee a click.

Webcasts

SendGrid webcast recordings

Access free advice from SendGrid and other industry experts on how to improve your email communication strategies and drive engagement with your subscribers.

View all Webcasts ›

Videos

SendGrid video resources

Learn more about SendGrid's core values that influence every part of our product and gain valuable takeaways about deliverability basics in our instructional videos.

View all Videos ›