{"service":"nanamail","description":"Email service for Nanawall using Resend API","endpoints":{"GET /":"This documentation","GET /health":"Health check","POST /send":"Send email"},"POST /send":{"description":"Send an email via Resend API","method":"POST","Content-Type":"application/json","rateLimit":{"maxRequests":10,"windowSeconds":60,"scope":"per IP address"},"limits":{"maxRequestSize":"25MB","maxRecipients":50,"maxSubjectLength":998,"maxContentLength":"1024KB","maxAttachments":10,"maxAttachmentSize":"10MB"},"body":{"to":"string | string[] (required)","from":"string (optional, defaults to contact@nanawall.com)","subject":"string (required)","html":"string (optional, but either html or text required)","text":"string (optional, but either html or text required)","cc":"string | string[] (optional)","bcc":"string | string[] (optional)","reply_to":"string | string[] (optional)","attachments":"Array<{filename: string, content: string, content_type?: string}> (optional)"},"response":{"success":"boolean","message":"string (if success)","id":"string (if success)","error":"string (if error)"},"headers":{"X-RateLimit-Limit":"Maximum requests per window","X-RateLimit-Remaining":"Remaining requests in current window","X-RateLimit-Reset":"Unix timestamp when rate limit resets","Retry-After":"Seconds to wait (only on 429 response)"}},"example":{"url":"https://send.rs.nanawall.com/send","method":"POST","headers":{"Content-Type":"application/json"},"body":{"to":"user@example.com","subject":"Test Email","html":"<h1>Hello World!</h1><p>This is a test email.</p>","text":"Hello World! This is a test email."}}}