Marketing. Transactional. Emails. Delivered.

Deliver your marketing and transactional messages to the right customers at the perfect moment.

Register For Free

Transactional

Your marketing team designs templates, your developers send us triggers, we merge and send!

                            
curl -X POST -H "X-auth-key: 00000000-0000-0000-0000-000000000000"
    -H "Content-type: application/json"
    -d \
    '{
        "template_id": 123,
        "reply_to": "john@example.net",
        "from": "John",
        "to": "jane@example.net",
        "subject": "Dinner served"
    }'
'https://api.expresspigeon.com/messages'
                            
                        
                            
import org.javalite.http.Http;
import static org.javalite.common.Collections.map;
import static org.javalite.common.Collections.list;
import static org.javalite.common.JsonHelper.toJsonString;
import static org.javalite.common.JsonHelper.toMap;

String content = toJsonString(map("template_id", 123,
        "reply_to", "john@example.net",
        "from", "John",
        "to", "jane@example.net",
        "subject", "Dinner served"
));
String response = Http.post("https://api.expresspigeon.com/messages", content)
        .header("X-auth-key", AUTH_KEY)
        .header("Content-type", "application/json")
        .text();
Map<String, Object> result = toMap(response);
                            
                        
                            
$data = array(
  'template_id' => 123,
  'reply_to' => 'john@example.net',
  'from' => 'John',
  'to' => 'jane@example.net',
  'subject' => 'Dinner served'
);
$options = array(
  'http' => array(
    'method' => 'POST',
    'content' => json_encode($data),
    'header' => "Content-Type: application/json\r\n" .
                "X-auth-key: 00000000-0000-0000-0000-000000000000\r\n"
    )
);
$context = stream_context_create($options);
$result = file_get_contents('https://api.expresspigeon.com/messages', false, $context);
$response = json_decode($result);
                            
                        
                            require 'expresspigeon-ruby'

response = ExpressPigeon::API.messages.send_message template_id,
     'john@example.com', 'jane@example.com', 'Jane Doe',
     "Let's go out for dinner?",
     { first_name: 'John', meetup_place: 'Downtown' }

                            
                        
                            
from expresspigeon import ExpressPigeon

api = ExpressPigeon()
response = api.messages.send_message(template_id=123,
to="jane@example.net",
reply_to="john@example.net", from_name="John", subject="Dinner served")
                            
                        
Learn More

Marketing

Design awesome messages that stand apart, backed by the our advanced delivery platform.

Marketing Marketing Marketing
Learn More

Our Customers Love Us

See why industry leading companies are choosing ExpressPigeon. Read G2Crowd ExpressPigeon Reviews from our current users.

Johnson & Johnson
Chicago public schools
Context Media Health
Walker Sands Communications
Fooda
University of Pennsylvania
BigMarker
HighGround
More Testimonials

Get Started Today

Let ExpressPigeon get your email channels off the ground!

Sign Up Free