API Reference
Integrate DripEmails.org with your own tools and workflows. Complete REST API documentation with examples.
Quick Navigation
Base URL
https://dripemails.org/api
🔐 Authentication
All API requests require authentication using a Bearer token. Get your API key from your profile settings.
How to get your API key:
- Log in to your account
- Go to Settings → Profile
- Copy your API key or generate a new one
Authentication Header
Authorization: Bearer YOUR_API_KEY_HERE
Example Request
curl -X GET 'https://dripemails.org/api/campaigns/' \ -H 'Authorization: Bearer YOUR_API_KEY_HERE' \ -H 'Content-Type: application/json'
📧 Campaigns
List all campaigns or create a new campaign.
POST Request Body
{
"name": "Welcome Series",
"description": "Onboarding emails for new subscribers",
"subscriber_list": "list-uuid-here"
}
Response (201 Created)
{
"id": "campaign-uuid",
"name": "Welcome Series",
"description": "Onboarding emails for new subscribers",
"is_active": false,
"subscriber_list": "list-uuid-here",
"created_at": "2024-01-01T00:00:00Z"
}
Get, update, or delete a specific campaign.
Activate a campaign to start sending emails.
Deactivate a campaign to stop sending emails.
Get statistics for a campaign including open rates, click rates, and engagement metrics.
List all emails in a campaign or create a new email template.
POST Request Body
{
"subject": "Welcome to DripEmails!",
"content": "Hi {first_name}, welcome!
",
"wait_time": 1,
"wait_unit": "days",
"order": 0
}
Get, update, or delete a specific email template.
Reorder email templates in a campaign sequence.
Send an email to a specific subscriber from a campaign.
Send a test email to verify the template before sending to subscribers.
Use AI to generate email content for a campaign.
👥 Subscribers
List all subscribers or create a new subscriber. Use ?list_id=<uuid> to filter by list.
POST Request Body
{
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"list_id": "list-uuid-here",
"is_active": true
}
Get, update, or delete a specific subscriber.
Import subscribers from a CSV file. Requires multipart/form-data with a file upload.
Validate a CSV file before importing to check for errors.
List all subscriber lists or create a new list.
POST Request Body
{
"name": "Newsletter Subscribers",
"description": "Main newsletter list"
}
Get, update, or delete a specific subscriber list.
✉️ Email Sending
Send an email to a subscriber with optional scheduling.
POST Request Body
{
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"campaign_id": "campaign-uuid",
"email_id": "email-uuid",
"schedule": "days",
"schedule_value": "3"
}
Schedule options: 'now', 'minutes', 'hours', 'days', 'weeks', 'months', 'seconds'
List all email send requests with their status.
Send a scheduled email immediately instead of waiting for the scheduled time.
Unsubscribe a subscriber from a send request.
📊 Analytics
Create a new email footer template.
Regenerate your API key. The old key will be invalidated.
⚙️ Profile Settings
Get or update your profile settings including timezone preferences.
💻 Example Code
Python Example
import requests
url = 'https://dripemails.org/api/campaigns/'
headers = {
'Authorization': 'Bearer YOUR_API_KEY_HERE',
'Content-Type': 'application/json'
}
# List campaigns
response = requests.get(url, headers=headers)
campaigns = response.json()
print(campaigns)
# Create a campaign
campaign_data = {
'name': 'Welcome Series',
'description': 'Onboarding emails'
}
response = requests.post(url, json=campaign_data, headers=headers)
new_campaign = response.json()
print(new_campaign)
cURL Example
# List campaigns
curl -X GET 'https://dripemails.org/api/campaigns/' \
-H 'Authorization: Bearer YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json'
# Create a campaign
curl -X POST 'https://dripemails.org/api/campaigns/' \
-H 'Authorization: Bearer YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{"name": "Welcome Series", "description": "Onboarding emails"}'
📋 HTTP Status Codes
200 OK
Request successful
201 Created
Resource created successfully
400 Bad Request
Invalid request data
401 Unauthorized
Missing or invalid authentication
403 Forbidden
Access denied
404 Not Found
Resource not found
500 Server Error
Internal server error