Launching 2026
Send transactional emails via REST API. Async delivery with retry logic, dead-letter queue and full status tracking. Built with Java and Spring Boot.
No spam. Unsubscribe anytime.
How it works today
Your application calls the REST API. StackSend handles the queuing, retries and delivery — you just get the result.
If Kafka is unavailable, the service falls back to direct delivery automatically — no downtime, no manual intervention.
Email lifecycle
API Reference — v1
All endpoints require a Bearer JWT token in the Authorization header. Base URL: https://api.stacksend.dev
Request body
// POST /auth/login { "email": "you@example.com", "password": "yourpassword" }
| Field | Type | Required | Description |
|---|---|---|---|
| string | required | Valid email address | |
| password | string | required | Account password |
Response
// HTTP 200 OK { "token": "eyJhbGciOiJIUzI1NiJ9..." }
Request
// POST /emails // Authorization: Bearer <token> { "to": "recipient@example.com", "subject": "Your order was confirmed", "body": "Hello! Your order #1234 has been confirmed." }
| Field | Type | Required | Description |
|---|---|---|---|
| to | string | required | Recipient email address |
| subject | string | required | Email subject line |
| body | string | required | Plain text or HTML email body |
Response
// HTTP 202 Accepted { "message": "Event sent to Kafka" }
Full example with curl
# Step 1 — Authenticate TOKEN=$(curl -s -X POST https://api.stacksend.dev/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com","password":"yourpassword"}' \ | jq -r .token) # Step 2 — Send email curl -X POST https://api.stacksend.dev/emails \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "to": "recipient@example.com", "subject": "Welcome to StackSend", "body": "Your account is ready." }'
Spring Boot example
RestTemplate rest = new RestTemplate(); // Authenticate Map credentials = Map.of("email", "you@example.com", "password", "yourpassword"); Map auth = rest.postForObject("https://api.stacksend.dev/auth/login", credentials, Map.class); String token = (String) auth.get("token"); // Send email HttpHeaders headers = new HttpHeaders(); headers.setBearerAuth(token); headers.setContentType(MediaType.APPLICATION_JSON); Map payload = Map.of( "to", "user@example.com", "subject", "Order confirmed", "body", "Your order #1234 was confirmed." ); rest.postForEntity("https://api.stacksend.dev/emails", new HttpEntity<>(payload, headers), String.class);
What's included today
Everything listed here is built and working. No roadmap items, no "coming soon".
Tech stack
Roadmap
These features are planned but not yet available. Early access users will be the first to test each one.
Replace JWT login with static API keys per account. Simpler integration, more secure for production use.
Web interface showing sent emails, delivery status, bounce rate and usage metrics per account.
Save reusable templates with variables. Send with templateId + variables instead of full body.
Get notified on delivered, bounced and failed events. Your endpoint receives the event payload automatically.
Native Spring Boot autoconfigure on Maven Central. Add one dependency and inject the client directly.
Same API, new channel. Send SMS to any country with delivery receipts and usage-based pricing.
iOS and Android push via a single API call. No SDK to maintain on the client side.
Full account isolation. Each customer sees only their own emails, usage and billing.
Pricing
Pay for what you send. No tiers, no annual commitment, no lock-in. Pause anytime.