Powerful Email APIs for applications that need better control on email sending

Connect Pepipost to your systems for seamless email inbox delivery with a few lines of code, integrate with your latest configuration and start sending your emails.

We have created code libraries in most of the popular programming languages to make the integration simpler for you.

Just check out the library from GIT and do few config changes and you’re good to go live.


var client = new RestClient("https://api.pepipost.com/v2/sendEmail");
var request = new RestRequest(Method.POST);
request.AddHeader("api_key", "");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"personalizations\":[{\"recipient\":\"user@example.com\"}],\"from\":{\"fromEmail\":\"sales@yourdomain.com\",\"fromName\":\"MyCompany\"},\"subject\":\"Test email from Pepipost\",\"content\":\"Hi, This is my first test mail\",}", ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

require 'uri'
require 'net/http'
url = URI("https://api.pepipost.com/v2/sendEmail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["api_key"] = ''
request.body = "{\"personalizations\":[{\"recipient\":\"user@example.com\"}],\"from\":{\"fromEmail\":\"sales@yourdomain.com\",\"fromName\":\"MyCompany\"},\"subject\":\"Test email from Pepipost\",\"content\":\"Hi, This is my first test mail\",}"
response = http.request(request)
puts response.read_body

var http = require("https");

var options = {
  "method": "POST",
  "hostname": "api.pepipost.com",
  "port": null,
  "path": "/v2/sendEmail",
  "headers": {
    "content-type": "application/json",
    "api_key": ""

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {

  res.on("end", function () {
    var body = Buffer.concat(chunks);

req.write(JSON.stringify({ personalizations: 
   [ { recipient: 'hi@welcom.com'} ],
  from: { fromEmail: 'xyz@yourdomain.com', fromName: 'YourCompanyName' },
  subject: 'Test email from Pepipost',
  content: 'Hi, This is my first test email',

import http.client
conn = http.client.HTTPSConnection("api.pepipost.com")
payload = "{\"personalizations\":[{\"recipient\":\"user@example.com\"}],\"from\":{\"fromEmail\":\"sales@yourdomain.com\",\"fromName\":\"MyCompany\"},\"subject\":\"Test email from Pepipost\",\"content\":\"Hi, This is my first test mail\",}"

headers = {
    'content-type': "application/json",
   'api_key': ""

conn.request("POST", "/v2/sendEmail", payload, headers)
res = conn.getresponse()
data = res.read()

HttpResponse response = Unirest.post("https://api.pepipost.com/v2/sendEmail")

  .header("content-type", "application/json")
  .header("api_key", "")
  .body("{\"personalizations\":[{\"recipient\":\"user@example.com\"}],\"from\":{\"fromEmail\":\"sales@yourdomain.com\",\"fromName\":\"MyCompany\"},\"subject\":\"Test email from Pepipost\",\"content\":\"Hi, This is my first test mail\",}")

  CURLOPT_POSTFIELDS => "{\"personalizations\":[{\"recipient\":\"user@example.com\"}],\"from\":{\"fromEmail\":\"sales@yourdomain.com\",\"fromName\":\"MyCompany\"},\"subject\":\"Test email from Pepipost\",\"content\":\"Hi, This is my first test mail\",}",
   "api_key: ",
   "content-type: application/json"

$response = curl_exec($curl);
$err = curl_error($curl);
if ($err) {
  echo "cURL Error #:" . $err;
 } else {
  echo $response;

curl --request POST \
  --url https://api.pepipost.com/v2/sendEmail \
  --header 'api_key: ' \
  --header 'content-type: application/json' \
  --data '{"personalizations":[{"recipient":"sampleuser@example.com"}],"from":{"fromEmail":"admin@yourdomain.com","fromName":"MyCompany"},"subject":"This is a test email","content":"Hi, this is my first test mail"}'

Template APIs.

Reduce the payload size and avoid sending a repeated set of data packets like the email template over API. We have the template APIs ready so that you can pass the template once and reuse it for life by just referring to the template ID.

Tracking Your Emails

Rest assured, everything is tracked and kept for 90 days.

Whether you want real-time or offline access to your email activities- we have solutions for both.

Webhooks- For Real-Time Tracking

Define the callback URL for each email event like delivered, bounced, opens, etc. Your system will get real-time feeds of your email activities.

Email doesn’t have to be one-way communication.

Track responses in real-time and take action. Tracking bounces through Webhooks is a perfect use case to be implemented in your signup forms.When someone uses the signup form and hits the submit button, you can send a confirmation email. If the bounce webhook is triggered, simply display a warning on the sign-up page to change the email address.

Stats API- For Offline Tracking

If you’re looking for an API service which you can call remotely and download all of your email activity logs, then Stats API is the answer.

We have an extensive repository of Stats API service to meet most of your requirements.

Custom Meta Data

We support custom metadata which can be associated with each of your emails and can be accessed anytime during the entire lifecycle of the email.

This is a simple key-value pair where the name of the key is X-APIHEADER and value is what you pass. You can pass data like InvoiceID, TransactionID, MessageID, etc. You can easily keep track of each of the email messages and can link back the responses into your system easily.

Globally Distributed Email API Service

When it comes to on-time delivery, we need to ensure each of our hops are perfectly optimized to process data.  Accepting email from your application is the biggest hop in this entire process. Just because of one reason- network latency.We have deployed our API service servers globally at multiple locations. We ensure your email sending requests are served from your nearest location to reduce network latency.

Currently, our servers are located in Delaware, NY, Frankfurt, Bengaluru, Singapore, Mumbai and there are more coming.


Pepipost Worldwide

Developer Friendly API Documentation

You don’t have to integrate first to test our email APIs.
Our docs are simplified in a way for you to test while reading the doc. Use our built-in API Explorer to take the complete test drive of our APIs before approval.

Migration Guides To Switch Between APIs

In case you’re looking to switch from some of the other email vendors like SendGrid, Mailgun and Amazon SES, you can do it very swiftly as we have the migration guides and email API ready.

Now that you know how Pepipost helps with better email delivery, it’s time to see what actually happens behind the scenes.

Pepipost uses advanced AI algorithms to optimize email delivery. Eager to know how that helps? See how our AI-powered email delivery system works.

Ready to get started?

30,000 emails free for first 30 days.
Then 100/day forever.

Pepi thinking

Start typing and press Enter to searchi

Fill out your information below, and we will send you a PepiAlert, that will describe your domain’s email deliverability situation. Please note that your email address must match the domain, or the domain must be owned by the company matching the email address. We have the right to refuse the request, if we can’t verify the information.

*All fields are required