Enterprise-grade email at a startup pace!

Schedule Demo
More about Automation Flows

Email Marketing

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

Marketing Marketing Marketing
Learn More

Transactional Email

Use the best editor in the industry to send receipts, password resets and custom notifications.

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"
        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")
        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,
        reply_to="john@example.net", from_name="John", subject="Dinner served")
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
University of Pennsylvania

Get Started Today

Let ExpressPigeon get your email channels off the ground!