DripEmails.org

API Reference

Integrate DripEmails.org with your own tools and workflows. Complete REST API documentation with examples.

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:

  1. Log in to your account
  2. Go to Settings → Profile
  3. 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

GET POST /api/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 PUT DELETE /api/campaigns/<campaign_id>/

Get, update, or delete a specific campaign.

POST /api/campaigns/<campaign_id>/activate/

Activate a campaign to start sending emails.

POST /api/campaigns/<campaign_id>/deactivate/

Deactivate a campaign to stop sending emails.

GET /api/campaigns/<campaign_id>/stats/

Get statistics for a campaign including open rates, click rates, and engagement metrics.

GET POST /api/campaigns/<campaign_id>/emails/

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 PUT DELETE /api/campaigns/<campaign_id>/emails/<email_id>/

Get, update, or delete a specific email template.

POST /api/campaigns/<campaign_id>/emails/reorder/

Reorder email templates in a campaign sequence.

POST /api/campaigns/<campaign_id>/emails/<email_id>/send/

Send an email to a specific subscriber from a campaign.

POST /api/campaigns/<campaign_id>/emails/<email_id>/test/

Send a test email to verify the template before sending to subscribers.

POST /api/campaigns/<campaign_id>/generate-email/

Use AI to generate email content for a campaign.

👥 Subscribers

GET POST /api/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 PUT DELETE /api/subscribers/<subscriber_id>/

Get, update, or delete a specific subscriber.

POST /api/subscribers/import/

Import subscribers from a CSV file. Requires multipart/form-data with a file upload.

POST /api/subscribers/validate-file/

Validate a CSV file before importing to check for errors.

GET POST /api/subscribers/lists/

List all subscriber lists or create a new list.

POST Request Body

{
  "name": "Newsletter Subscribers",
  "description": "Main newsletter list"
}
GET PUT DELETE /api/subscribers/lists/<list_id>/

Get, update, or delete a specific subscriber list.

✉️ Email Sending

POST /api/send-email/

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'

GET /api/send-email/requests/

List all email send requests with their status.

POST /api/send-email/requests/<request_id>/send-now/

Send a scheduled email immediately instead of waiting for the scheduled time.

POST /api/send-email/requests/<request_id>/unsubscribe/

Unsubscribe a subscriber from a send request.

📊 Analytics

POST /api/footers/create/

Create a new email footer template.

POST /api/regenerate-key/

Regenerate your API key. The old key will be invalidated.

⚙️ Profile Settings

GET PUT /api/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