Documentation
Everything you need to integrate Pigeonify into your application
Quick Start Guide
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_hereSend Email
POST
/api/v1/sendSend 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
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
- Log in to your Pigeonify dashboard
- Navigate to Dashboard → API Keys
- Click "Create API Key"
- Give your key a name (e.g., "Production API")
- Copy the generated key (it starts with
pgn_) - Store it securely - you won't be able to see it again!
SMTP Configuration
SMTP Settings
Use your personal SMTP credentials to send emails from your verified domains. Generate your credentials in the Settings → SMTP section.
Host:
smtp.pigeonify.com
Port (TLS):
587
Port (SSL):
465
Username:
Your SMTP Username (from Settings)
Password:
Your SMTP Password (from Settings)
Important: You can only send emails from your verified domains. Make sure to verify your domain in the Domains section before using SMTP.
Node.js Example (Nodemailer):
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.pigeonify.com',
port: 587,
secure: false, // true for 465, false for 587
auth: {
user: 'smtp-12345678', // Your SMTP username
pass: 'your-smtp-password' // Your SMTP password
}
});
await transporter.sendMail({
from: 'sender@yourdomain.com', // Must be from a verified domain
to: 'recipient@example.com',
subject: 'Hello from Pigeonify',
html: '<h1>Hello World</h1>'
});Python Example (smtplib):
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
msg = MIMEMultipart('alternative')
msg['Subject'] = 'Hello from Pigeonify'
msg['From'] = 'sender@yourdomain.com'
msg['To'] = 'recipient@example.com'
html = '<h1>Hello World</h1>'
part = MIMEText(html, 'html')
msg.attach(part)
with smtplib.SMTP('smtp.pigeonify.com', 587) as server:
server.starttls()
server.login('smtp-12345678', 'your-smtp-password')
server.sendmail(msg['From'], msg['To'], msg.as_string())Getting Started:
- Go to Settings → SMTP in your dashboard
- Click "Generate SMTP Credentials" to create your credentials
- Copy your SMTP username and password (password shown only once)
- Verify a domain in the Domains section
- Use the credentials in your application to send emails
Domain Setup
Verify Your Domain
To send emails from your domain, you need to verify it by adding DNS records:
- Go to Dashboard > Domains and add your domain
- Copy the provided DNS records (TXT, SPF, DKIM, DMARC)
- Add these records to your domain's DNS settings
- Click "Verify" to confirm the setup
Note: DNS changes can take up to 48 hours to propagate, but usually complete within a few hours.