The Maildeno SDK handles rendering locally — merge tags and dynamic data never leave your server. This reference covers the HTTP endpoints the SDK calls under the hood, plus key management.

Base URL

https://api.maildeno.com

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer sk_live_your_api_key

Endpoints

GET /v1/sdk/template/{id}

Fetch a template’s JSON definition and render it locally using the SDK’s local render engine — an embedded Wasm module for the JS/Python SDKs, a bundled native binary for the PHP SDK. Merge tags and context never leave your server.

Request

GET /v1/sdk/template/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer <API_KEY>

Response — 200 OK

Returns the template’s JSON definition — the TemplateJson payload the SDKs cache and render locally via their respective engines. Treat the body as opaque unless you are building your own renderer against the exported TemplateJson type.

Error responses

Same code values as the render endpoint: 401 INVALID_API_KEY, 403 FORBIDDEN, 404 TEMPLATE_NOT_FOUND. See Error Codes.

POST /v1/sdk/render — DEPRECATED & REMOVED

This endpoint was deprecated and permanently removed on 2026-06-05. It no longer accepts requests.

Use GET /v1/sdk/template/{id} with an official SDK instead. The SDK fetches the template JSON once and renders entirely in-process — merge tags and dynamic data never leave your server. This means:

  • Zero data egress — dynamic data is never transmitted to Maildeno servers.

  • GDPR compliance — personal data in merge tags stays within your own infrastructure.

  • HIPAA compliance — protected health information (PHI) in merge tags never crosses a network boundary.

curl examples

# Fetch template JSON for local rendering
curl https://api.maildeno.com/v1/sdk/template/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer $MAILDENO_API_KEY"

Key management endpoints

POST /api/v1/keys

Create a new API key.

curl -X POST https://api.maildeno.com/api/v1/keys \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ADMIN_KEY>" \
  -d '{"name": "Production HTML", "targets": ["html"]}'
{
  "id": "key_01abc...",
  "name": "Production HTML",
  "key": "sk_live_...",   // shown once — copy it now
  "targets": ["html"],
  "created_at": "2025-01-01T00:00:00Z"
}