Bukka Mail API Reference
Build email products that feel fast, trusted, and intelligent.
Send transactional mail, run campaigns, verify domains, automate warmup, add human-approved AI workflows, and collect legally binding e-signatures from one polished API surface.
Secure access
Authentication
All API requests use bearer authentication. Create and rotate keys from the Bukka Mail console, then include the token in every request.
Base URL: https://mail.bukka.ai/api
Authorization: Bearer bk_live_your_api_key_here
Content-Type: application/jsonStore API keys on your server, rotate them regularly, and create separate keys for development, staging, and production.
Core endpoint
Send Email
Use the send endpoint for receipts, notifications, onboarding messages, alerts, password resets, and any transactional email flow.
/api/sendSend a transactional email with text, HTML, attachments, and tracking options.
const response = await fetch('https://mail.bukka.ai/api/send', {
method: 'POST',
headers: {
Authorization: 'Bearer bk_live_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: 'hello@yourdomain.com',
to: 'customer@example.com',
subject: 'Welcome aboard',
html: '<p>Your account is ready.</p>'
})
});
const result = await response.json();curl -X POST https://mail.bukka.ai/api/send \
-H "Authorization: Bearer bk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"to": "customer@example.com",
"subject": "Welcome aboard",
"text": "Your account is ready."
}'Marketing workflows
Campaigns
Create, preview, schedule, and report on audience campaigns while keeping deliverability controls in the same workspace.
/api/campaignsList campaigns and their delivery status.
/api/campaignsCreate a campaign with audience, template, and schedule.
/api/campaigns/:idRead campaign details, content, and metrics.
/api/campaigns/:id/sendSend or schedule a ready campaign.
/api/campaigns/:idArchive or remove a campaign.
Trust layer
Domains and Warmup
Register sending domains, validate DNS records, watch reputation signals, and warm new inboxes before scaling traffic.
/api/domainsList verified domains and setup status.
/api/domainsAdd a sending domain for verification.
/api/domains/:id/verifyRefresh SPF, DKIM, and DMARC checks.
/api/domains/:idRemove a domain from the workspace.
/api/warmup/startStart a warmup plan for a domain or mailbox.
/api/warmup/:idTrack warmup health, volume, and reputation.
Human-approved AI
AI Features
Add the same AI actions used in Bukka Mail to your own email experience: compose, refine, summarize, translate, detect risk, and prioritize work.
POST /api/ai/reply
{
"message": "Can we move the meeting to Friday?",
"tone": "professional",
"context": "Customer success follow-up"
}Event automation
Webhooks
Subscribe to delivery and workspace events so your CRM, product database, or analytics stack stays in sync.
email.sentemail.deliveredemail.openedemail.clickedemail.bouncedemail.complainedwarmup.progressdomain.verifiedPerformance data
Analytics
Read reporting data for delivery, campaigns, domains, warmup, and AI usage without exporting spreadsheets manually.
/api/analytics/overviewWorkspace-wide delivery, engagement, and AI usage.
/api/analytics/campaigns/:idCampaign performance by recipient, link, and segment.
/api/analytics/domains/:idDomain reputation, DNS health, and bounce trends.
/api/analytics/warmup/:idWarmup progress and recommended next volume.
Plan limits
Rate Limits
Limits are designed to protect sender reputation and keep the platform stable. Enterprise customers can request custom throughput.
| Plan | API requests | AI actions | Email volume |
|---|---|---|---|
| Free | 100 / min | 10 / day | 1K / month |
| Pro | 1,000 / min | Unlimited | 50K / month |
| Business | 5,000 / min | Unlimited | 500K / month |
| Enterprise | Custom | Unlimited | Unlimited |
Electronic signatures
BukkaSign eSign API
Legally binding electronic signatures with Canadian data residency. Upload PDFs, place signature fields, send for signing, track completion, and download certified documents — all via API.
All BukkaSign endpoints are served from https://sign.bukka.ai/api. Authentication uses JWT Bearer tokens obtained from the login endpoint.
// 1. Upload document
const form = new FormData();
form.append('file', pdfFile);
form.append('title', 'Service Agreement');
const doc = await fetch('https://sign.bukka.ai/api/documents', {
method: 'POST',
headers: { Authorization: 'Bearer your_jwt_token' },
body: form
});
const { id } = await doc.json();
// 2. Add recipients and fields, then send
await fetch(`https://sign.bukka.ai/api/documents/${id}`, {
method: 'PUT',
headers: {
Authorization: 'Bearer your_jwt_token',
'Content-Type': 'application/json'
},
body: JSON.stringify({
recipients: [
{ email: 'signer@company.ca', name: 'Jane Smith', role: 'signer' }
],
fields: [
{ type: 'signature', page: 1, x: 60, y: 85, width: 20, height: 6 }
]
})
});
// 3. Send for signatures
await fetch(`https://sign.bukka.ai/api/documents/${id}/send`, {
method: 'POST',
headers: {
Authorization: 'Bearer your_jwt_token',
'Content-Type': 'application/json'
},
body: JSON.stringify({ mode: 'parallel' })
});/api/auth/signupCreate a BukkaSign account.
/api/auth/loginAuthenticate and receive a JWT token.
/api/documentsList all documents with recipient counts.
/api/documentsUpload a PDF and create a signing document.
/api/documents/:idGet document details, recipients, fields, and audit trail.
/api/documents/:idUpdate fields, recipients, or expiry date.
/api/documents/:id/sendSend document for signatures (parallel or sequential).
/api/documents/:id/voidVoid a document and notify all parties.
/api/documents/:id/remindSend reminders to pending signers.
/api/documents/:id/downloadDownload signed PDF (with watermarks for voided/expired).
/api/documents/:id/certificateDownload Certificate of Completion PDF.
/api/sign/:tokenGet document info for signing (public, no auth).
/api/sign/:tokenSubmit signature fields (public, no auth).
/api/templatesList reusable document templates.
/api/templatesCreate template from PDF upload or existing document.
/api/templates/:id/useCreate and send a new document from a template.
/api/bulk-sendSend same document to up to 100 recipients.
/api/analytics/overviewDashboard stats, completion rates, and activity.
/api/webhooksList registered webhook endpoints.
/api/webhooksRegister a webhook for signing events.
Webhook events — Subscribe to real-time notifications when documents are signed, completed, voided, or expired.
document.sentdocument.completeddocument.voideddocument.expiredrecipient.signedrecipient.declinedSequential & parallel signing, document expiry with auto-enforcement, PDF watermarks (DRAFT/VOID/EXPIRED), bulk send (up to 100 recipients), reusable templates, SHA-256 audit trail, Certificate of Completion, and PIPEDA-compliant Canadian data residency.
Ready to integrate?