Documentation

Everything you need to integrate Pigeonify into your application

Quick Start Guide

API Integration

Send emails programmatically using our RESTful API

View API Docs →

SMTP Setup

Configure SMTP to send emails from your application

SMTP Guide →

Stripe Setup

Configure billing and subscription management

Setup Guide →

Stripe Setup

Complete Billing Integration

Pigeonify uses Stripe for subscription billing. Follow these steps to set up payment processing for your Pro and Scale plans.

📖 Read the complete Stripe setup guide

Quick Setup Checklist

1
Create a Stripe account

Sign up at dashboard.stripe.com

2
Get your API keys

From Stripe Dashboard → Developers → API keys

3
Create products

Pro Plan ($20/mo) and Scale Plan ($90/mo) in Stripe Products

4
Set up webhook

Point to: https://pigeonify.com/api/billing/webhook

5
Add environment variables

Add 5 required variables to your Vercel project

Required Environment Variables

STRIPE_SECRET_KEY=sk_test_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PRO_PRICE_ID=price_...
STRIPE_SCALE_PRICE_ID=price_...

Add these to your Vercel project: Settings → Environment Variables

API Documentation

Authentication

All API requests require an API key. You can generate API keys from your dashboard under Settings → API Keys.

Include your API key in the X-API-Key header:

X-API-Key: pgn_your_api_key_here

Send Email

POST/api/v1/send

Send a single email through the Pigeonify API

Request Headers:

Content-Type: application/json
X-API-Key: pgn_your_api_key_here

Request Body:

{
  "from": "noreply@yourdomain.com",
  "to": "recipient@example.com",
  "subject": "Hello from Pigeonify",
  "html": "<h1>Hello!</h1><p>This is a test email.</p>",
  "text": "Hello! This is a test email.",
  "reply_to": "support@yourdomain.com"
}
Required fields: from, to, subject, html
Optional fields: text, reply_to

Example Request (cURL):

curl --location 'https://pigeonify.com/api/v1/send' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: pgn_your_api_key_here' \
--data-raw '{
  "from": "noreply@yourdomain.com",
  "to": "recipient@example.com",
  "subject": "Hello from Pigeonify",
  "html": "<h1>Hello!</h1><p>This is a test email.</p>",
  "text": "Hello! This is a test email."
}'

Success Response (200):

{
  "success": true,
  "message_id": "01020193d9c7e8f8-7d2a8b3c-4e5f-6789-a0b1-c2d3e4f5g6h7-000000"
}

Error Responses:

401 Unauthorized
{
  "error": "Missing X-API-Key header"
}
400 Bad Request
{
  "error": "Missing required fields: from, to, subject, html"
}

🔑 How to Get Your API Key

  1. Log in to your Pigeonify dashboard
  2. Navigate to Dashboard → API Keys
  3. Click "Create API Key"
  4. Give your key a name (e.g., "Production API")
  5. Copy the generated key (it starts with pgn_)
  6. Store it securely - you won't be able to see it again!

SMTP Configuration

SMTP Settings

Use these settings to configure SMTP in your application:

Host:
smtp.pigeonify.com
Port:
587 (TLS)
Username:
Your API Key Name
Password:
Your API Key

Node.js Example (Nodemailer):

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: 'smtp.pigeonify.com',
  port: 587,
  secure: false,
  auth: {
    user: 'your-api-key-name',
    pass: 'your-api-key'
  }
});

await transporter.sendMail({
  from: 'sender@yourdomain.com',
  to: 'recipient@example.com',
  subject: 'Hello',
  html: '<h1>Hello World</h1>'
});

Domain Setup

Verify Your Domain

To send emails from your domain, you need to verify it by adding DNS records:

  1. Go to Dashboard > Domains and add your domain
  2. Copy the provided DNS records (TXT, SPF, DKIM, DMARC)
  3. Add these records to your domain's DNS settings
  4. Click "Verify" to confirm the setup

Note: DNS changes can take up to 48 hours to propagate, but usually complete within a few hours.

Need Help?

Can't find what you're looking for? Our support team is here to help.

Contact Support