DropAphi v1 API

Developer reference for email, newsletter, OTP, and files

Email Builder
Doc For DropAphi Email Builder.
Authentication
Include your API key in the DROP-API-Key header.

Blog

Fetch published workspace blog posts and view individual posts by slug.

GET/v1/blog

List blog posts

Fetch published blog posts from the workspace with pagination and optional tag filtering.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/blog" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "posts": [
      {
        "id": "post_123",
        "title": "Why communication matters",
        "slug": "why-communication-matters",
        "excerpt": "A short summary",
        "coverImage": "https://dropaphi.xyz/images/communication-cover.jpg",
        "publishedAt": "2026-08-01T00:00:00.000Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 1,
      "pages": 1
    }
  }
}
GET/v1/blog/{slug}

Get blog post by slug

Retrieve a single published blog post by its slug from the workspace.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/blog/{slug}" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "id": "post_123",
    "workspaceId": "workspace_123",
    "authorId": "user_123",
    "title": "Why communication matters",
    "slug": "why-communication-matters",
    "excerpt": "A short summary",
    "content": "<p>Full blog content</p>",
    "coverImage": "https://dropaphi.xyz/images/communication-cover.jpg",
    "tags": [
      "communication",
      "productivity",
      "business"
    ],
    "seoTitle": "Why Communication Matters",
    "seoDesc": "Learn why effective communication matters.",
    "isFeatured": true,
    "isApproved": true,
    "status": "PUBLISHED",
    "publishedAt": "2026-08-01T00:00:00.000Z",
    "scheduledAt": null,
    "viewCount": 42,
    "createdAt": "2026-07-25T10:00:00.000Z",
    "updatedAt": "2026-08-01T00:00:00.000Z",
    "author": {
      "fullName": "Jane Doe",
      "avatarUrl": "https://dropaphi.xyz/images/jane-doe.jpg",
      "bio": "Writer and communications specialist"
    },
    "workspace": {
      "name": "Acme",
      "slug": "acme",
      "logoUrl": "https://dropaphi.xyz/images/acme-logo.png"
    }
  }
}

Email

Send transactional and marketing emails, inspect templates, and check delivery status.

POST/v1/email/send

Send email

Send one or many emails with HTML, text, templates, attachments, and tracking.

Requires DROP-API-Key
Sample request
curl -X POST "https://dropaphi.xyz/api/v1/email/send" \n  -H "DROP-API-Key: da_live_your_key" \n  -H "Content-Type: application/json" \n  -d '{\n  "to": "recipient@example.com",\n  "subject": "Welcome to DropAphi",\n  "html": "<h1>Hello there</h1>",\n  "text": "Hello there",\n  "template": "welcome",\n  "templateData": {\n    "name": "Ada"\n  },\n  "fromName": "DropAphi",\n  "tracking": {\n    "opens": true,\n    "clicks": true\n  }\n}'
Expected response
{
  "success": true,
  "data": {
    "id": "eml_123",
    "status": "PENDING",
    "message": "Email queued successfully"
  }
}
  • Each recipient counts as one email unit.
  • You can pass cc, bcc, attachments, and custom headers.
GET/v1/email/templates

List templates

Fetch the built-in templates and the variables each template supports.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/email/templates" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "templates": [
      {
        "id": "welcome",
        "name": "Welcome",
        "variables": [
          "name",
          "company",
          "actionUrl"
        ]
      },
      {
        "id": "newsletter",
        "name": "Newsletter",
        "variables": [
          "title",
          "name",
          "articles",
          "unsubscribeUrl"
        ]
      },
      {
        "id": "marketing",
        "name": "Marketing",
        "variables": [
          "headline",
          "subheadline",
          "message",
          "ctaUrl"
        ]
      },
      {
        "id": "notification",
        "name": "Notification",
        "variables": [
          "type",
          "title",
          "message",
          "actionUrl"
        ]
      },
      {
        "id": "invite",
        "name": "Invite",
        "variables": [
          "name",
          "workspaceName",
          "inviterName",
          "acceptUrl"
        ]
      }
    ]
  }
}
  • Default templates are available via GET /v1/email/templates.
  • Use the template field on POST /v1/email/send to send a pre-built template.
GET/v1/email/{id}

Get email status

Retrieve delivery details, timestamps, and engagement counts for a sent email.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/email/{id}" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "id": "eml_123",
    "status": "DELIVERED",
    "deliveredAt": "2026-07-11T10:00:00.000Z",
    "openCount": 2,
    "clickCount": 1
  }
}

Newsletter

Subscribe contacts, view subscriber lists, and trigger welcome emails.

POST/v1/newsletter/subscribe

Subscribe contact

Create or reactivate a subscribed contact and optionally send a welcome email.

Requires DROP-API-Key
Sample request
curl -X POST "https://dropaphi.xyz/api/v1/newsletter/subscribe" \n  -H "DROP-API-Key: da_live_your_key" \n  -H "Content-Type: application/json" \n  -d '{\n  "email": "subscriber@example.com",\n  "name": "Jane Doe",\n  "source": "landing_page",\n  "templateId": "tmpl_123"\n}'
Expected response
{
  "success": true,
  "message": "Subscription created",
  "subscriber": {
    "id": "sub_123",
    "email": "subscriber@example.com",
    "status": "ACTIVE"
  }
}
  • Existing unsubscribed contacts are reactivated automatically.
  • Each subscription consumes one subscriber unit.
GET/v1/newsletter/subscribers

List subscribers

Paginate through subscribers and filter by status or segment.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/newsletter/subscribers" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "subscribers": [
      {
        "id": "sub_123",
        "email": "subscriber@example.com",
        "status": "ACTIVE"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 50,
      "total": 1,
      "pages": 1
    }
  }
}

OTP

Create one-time passcodes, verify them, and resend codes with rate limiting protection.

POST/v1/otp/send

Send OTP

Generate and send a verification code to a recipient email address.

Requires DROP-API-Key
Sample request
curl -X POST "https://dropaphi.xyz/api/v1/otp/send" \n  -H "DROP-API-Key: da_live_your_key" \n  -H "Content-Type: application/json" \n  -d '{\n  "email": "user@example.com",\n  "length": 6,\n  "expiry": 10,\n  "brandName": "DropAphi"\n}'
Expected response
{
  "success": true,
  "data": {
    "id": "otp_123",
    "message": "OTP sent successfully to user@example.com",
    "expiresAt": "2026-07-11T10:10:00.000Z"
  }
}
  • The API blocks repeat requests within 60 seconds for the same email.
  • A pending OTP can only be verified while it is still valid.
POST/v1/otp/verify

Verify OTP

Verify a submitted code against the latest pending OTP for the recipient.

Requires DROP-API-Key
Sample request
curl -X POST "https://dropaphi.xyz/api/v1/otp/verify" \n  -H "DROP-API-Key: da_live_your_key" \n  -H "Content-Type: application/json" \n  -d '{\n  "email": "user@example.com",\n  "code": "123456"\n}'
Expected response
{
  "success": true,
  "data": {
    "verified": true,
    "message": "OTP verified successfully",
    "id": "otp_123"
  }
}
POST/v1/otp/resend

Resend OTP

Invalidate the previous pending OTP and send a fresh verification code.

Requires DROP-API-Key
Sample request
curl -X POST "https://dropaphi.xyz/api/v1/otp/resend" \n  -H "DROP-API-Key: da_live_your_key" \n  -H "Content-Type: application/json" \n  -d '{\n  "email": "user@example.com",\n  "reason": "not_received",\n  "length": 6,\n  "expiry": 10\n}'
Expected response
{
  "success": true,
  "data": {
    "id": "otp_456",
    "message": "New verification code sent to user@example.com",
    "regenerated": true
  }
}

Files

Upload files, list workspace assets, and fetch metadata for private or public files.

POST/v1/files/upload

Upload file

Upload a file using JSON/base64 encoded file data and optional metadata.

Requires DROP-API-Key
Sample request
# JSON/base64 upload
curl -X POST "https://dropaphi.xyz/api/v1/files/upload"   -H "DROP-API-Key: da_live_your_key"   -H "Content-Type: application/json"   -d '{"name":"invoice.pdf","type":"application/pdf","data":"<BASE64_FILE_CONTENT>","metadata":{"visibility":"PUBLIC","folder":"invoices"}}'
Expected response
{
  "success": true,
  "data": {
    "id": "fil_123",
    "name": "invoice.pdf",
    "size": 2.4,
    "mimeType": "application/pdf",
    "url": "https://dropaphi.xyz/api/files/fil_123"
  }
}
  • This endpoint accepts JSON uploads only.
  • Send application/json with name, type, and data (base64) fields.
  • Optional metadata may include folder, visibility, and filename.
  • Video uploads are allowed, but video files are limited to 2MB each.
GET/v1/files

List files

List files in the current workspace with pagination and folder filtering.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/files" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "files": [
      {
        "id": "fil_123",
        "originalName": "invoice.pdf",
        "visibility": "PUBLIC"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 50,
      "total": 1,
      "pages": 1
    }
  }
}
GET/v1/files/{fileId}

Get file details

Fetch the metadata and access URL for a specific file.

Requires DROP-API-Key
Sample request
curl -X GET "https://dropaphi.xyz/api/v1/files/{fileId}" \n  -H "DROP-API-Key: da_live_your_key"
Expected response
{
  "success": true,
  "data": {
    "id": "fil_123",
    "name": "invoice.pdf",
    "mimeType": "application/pdf",
    "visibility": "PRIVATE",
    "size": 2457600
  }
}