REST API

Build on the
NexusProMail API

Send transactional emails, manage contacts, automate campaigns and track analytics — all via a simple REST API.

Get API Key FreeView Documentation
99.9%
Uptime SLA
<100ms
Avg Response Time
REST
API Standard
Free
Sandbox Mode

API Reference

All endpoints require your API key in the Authorization header.

Authentication
Authorization: Bearer YOUR_API_KEY
Email
POST/v1/api/sendSend a transactional email
Contacts
GET/v1/api/contactsList all contacts
POST/v1/api/contactsCreate a contact
PATCH/v1/api/contacts/:emailUpdate a contact
DELETE/v1/api/contacts/:emailDelete a contact
Campaigns
GET/v1/api/campaignsList all campaigns
POST/v1/api/campaignsCreate a campaign
POST/v1/api/campaigns/sendSend a campaign
PATCH/v1/api/campaigns/:idUpdate a campaign
DELETE/v1/api/campaigns/:idDelete a campaign
Templates
GET/v1/api/templatesList all templates
POST/v1/api/templatesCreate a template
PATCH/v1/api/templates/:idUpdate a template
DELETE/v1/api/templates/:idDelete a template
Analytics
GET/v1/api/analyticsGet analytics overview
GET/v1/api/usageGet API usage stats
Webhooks
GET/v1/api/webhooksList webhooks
POST/v1/api/webhooksRegister a webhook
DELETE/v1/api/webhooks/:idDelete a webhook

Code Examples

Get started in minutes with your favourite language.

Node.js
const NexusProMail = require('nexuspromail')
const client = new NexusProMail('YOUR_API_KEY')

await client.send({
  to: 'customer@example.com',
  subject: 'Welcome!',
  html: '<h1>Hello World</h1>'
})
Python
import requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY',
  'Content-Type': 'application/json'
}
data = {
  'to': 'customer@example.com',
  'subject': 'Welcome!',
  'html': '<h1>Hello World</h1>'
}
r = requests.post(
  'https://app.nexuspromail.com/v1/api/send',
  json=data, headers=headers
)
PHP
$client = new GuzzleHttp\Client();
$response = $client->post(
  'https://app.nexuspromail.com/v1/api/send',
  [
    'headers' => [
      'Authorization' => 'Bearer YOUR_API_KEY',
      'Content-Type' => 'application/json'
    ],
    'json' => [
      'to' => 'customer@example.com',
      'subject' => 'Welcome!',
      'html' => '<h1>Hello World</h1>'
    ]
  ]
);
cURL
curl -X POST \
  https://app.nexuspromail.com/v1/api/send \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "to": "customer@example.com",
    "subject": "Welcome!",
    "html": "<h1>Hello World</h1>"
  }'

Documentation & Guides

The full developer surface. Everything you need to integrate, debug and scale.

Transactional Email API

REST API reference for send, batch send, scheduled send, contacts, lists, webhooks.

EU Email API

The EU-jurisdiction story: operator under Finnish law, signed DPA, no US transfer chain.

API Integration Guide

End-to-end integration walkthrough: authentication, idempotency, webhooks, error patterns.

API Pricing

Plan structure, contact + send-volume tiers, worked examples by use case.

Email Deliverability

SPF/DKIM/DMARC setup, sender reputation, bounce handling, the inbox-vs-spam picture.

Domain Warming

Week-by-week schedule for warming a new sending domain. Safety thresholds.

SMTP vs REST

Why NexusProMail exposes REST (not SMTP) and how to migrate from SMTP-based stacks.

Webhook events

Event types (delivered, opened, clicked, bounced, complained, unsubscribed). HMAC verification.

Multi-brand sending

Sub-account isolation. Per-brand suppression. Per-brand DKIM keys. Multi-tenant patterns.

GDPR for developers

DPA, DSAR API, consent records, suppression enforcement. The compliance picture from the API side.

Schrems II / EU jurisdiction

The Schrems II story at the processor level. EU controller-processor relationship.

DPA — Data Processing Agreement

Pre-signed Article 28 DPA covering NexusProMail processing on behalf of customers.

Pre-built Integration Guides

For the most common integration patterns. Each guide includes setup steps, webhook mapping and example workflows.

Shopify
Webhook-driven order/cart/marketing email.
WooCommerce
Replace wp_mail with a real API.
n8n
Self-hosted automation, EU-friendly.
Zapier
Webhooks action from 6,000+ apps.

Developer FAQ

How do I get an API key?+
Sign up for the free tier; the sandbox API key is issued immediately, no credit card required. The sandbox key works against the production API for testing. When you're ready to send real volume, add SPF/DKIM/DMARC to your sending domain and rotate to the production key.
Is the API REST or SMTP?+
REST only at this time. NexusProMail intentionally does not offer customer-facing SMTP relay — REST gives better visibility (per-request response codes, immediate idempotency, structured error responses) and avoids the legacy reputation issues of shared SMTP. For SMTP-only legacy applications we can discuss accommodations on the Enterprise plan.
What authentication does the API use?+
Bearer token. Header: Authorization: Bearer YOUR_API_KEY. Keys are scoped per account; separate sandbox and production keys per account. Key rotation supported with a 5-minute overlap window so live integrations don't break during rotation.
How do webhooks work?+
Register endpoints in the admin or via API. NexusProMail POSTs delivery events (delivered, opened, clicked, bounced, complained, unsubscribed) with an HMAC signature header. Verify with your shared webhook secret. Retries on failure with exponential backoff for up to 24 hours.
Is there rate limiting?+
Per-account rate limits enforced. Returns HTTP 429 with Retry-After when exceeded. The batch send endpoint (POST /v1/api/send/batch) accepts up to 1,000 recipients per call and counts as one rate-limit consumption — use this for high-volume scenarios.
What SDKs are available?+
First-party SDKs for Node.js and Python with feature parity. Postman collection for ad-hoc testing. Community-maintained SDKs for PHP and Ruby exist as best-effort. For other languages, the REST API works directly via standard HTTP libraries.

Ready to build?

Get your free API key and start sending in minutes.

Get Started Free