# Sendar agent reference Reviewed 2026-09-30. Contract version 1.0.0. REST: https://sendar.app/api MCP: https://sendar.app/api/mcp ## Choose an integration Use REST from server-side application code for transactional email, saved templates, batch sends and message history. Install skills for coding guidance. Connect MCP for account tools: setup, preview, domains, templates, message history and optional single-email sending. Skills installation alone does not authenticate an account. ## Permissions and prerequisites REST uses a private server-side Bearer API key with its existing account permissions. MCP supports OAuth with S256 PKCE; new OAuth connections default to read-only. Sending requires an explicit grant bounded by domain, recipients and daily allowance. Verify your sending domain before live delivery. Account caps and suppression rules apply. ## Preview before sending The MCP preview_email tool validates a proposed message without sending or consuming quota. A preview does not establish domain readiness or guarantee delivery. REST has no documented dry-run endpoint: test with a local mock first, then explicitly authorize one real send. ## Limits and reliable retries Single-email REST requests support up to five attachments with 1.3 MiB total decoded content. Scheduled sending is available on Growth and above, up to 30 days ahead. Batch requests contain 1–100 items and have no documented idempotency guarantee. Use Idempotency-Key on POST /emails: 16–128 letters, digits, underscores, colons or hyphens. Reuse the exact key and payload for the same event. A 409 or timeout may mean an uncertain outcome: inspect history instead of generating another key. ## What success means An API response or provider acceptance does not guarantee inbox delivery. Inspect the returned status and message history. Fix validation, authentication or quota errors before proceeding. Keep reset-token generation, expiry and account authorization in your own application. ## Pricing - Free: $0/month; 3000 emails/month; 100 daily cap. - Starter: $12/month; 30000 emails/month; no separate plan daily cap. - Growth: $39/month; 100000 emails/month; no separate plan daily cap. - Scale: $99/month; 400000 emails/month; no separate plan daily cap. - Dedicated: custom, from $199/month; custom volume; no separate plan daily cap. Annual prices and account limits: https://sendar.app/pricing. Plans have hard caps; account-specific overrides can differ. ## Resources - [Public OpenAPI specification](https://sendar.app/openapi.json) - [Compact documentation index](https://sendar.app/llms.txt) - [Complete agent reference](https://sendar.app/llms-full.txt) - [Machine-readable capabilities and pricing](https://sendar.app/agent-capabilities.json) - [Runnable recipes (mocked by default)](https://sendar.app/downloads/sendar-recipes.mjs) - [Integration reference in Markdown](https://sendar.app/docs/agent-reference.md) ## Recipes ### Welcome after signup Trigger after the application commits a signup. Use the account/event identifier as the stable message key. Do not send again on each login. Run locally: node sendar-recipes.mjs welcome ### Booking confirmation Send after the booking transaction succeeds. Include date, time zone and reference from your booking record; use a separate event key for each reschedule. Run locally: node sendar-recipes.mjs booking ### Password reset Your application creates and stores a secure, expiring, single-use token. Pass its HTTPS reset URL to the email recipe; never use the email provider to authenticate the user or generate the token. Run locally: node sendar-recipes.mjs password-reset ### Invoice notification Send after invoice creation. Supply the application’s authenticated payment URL and invoice reference. Do not place payment credentials in messages. Run locally: node sendar-recipes.mjs invoice ### Migrate one workflow Map sender, recipients, subject, body and template variables explicitly. Compare mock payloads, test an authorized recipient, then switch one workflow. Disable the old sender for that event to avoid duplicates; retain a rollback switch. Run locally: node sendar-recipes.mjs migration ## API operations - GET https://sendar.app/api/emails: List sent emails - POST https://sendar.app/api/emails: Send an email - GET https://sendar.app/api/emails/{id}: Get an email log - GET https://sendar.app/api/emails/{id}/events: List open/click events recorded for an email - POST https://sendar.app/api/emails/batch: Send up to 100 emails in one request ## Testing and production Recipes use a local mock unless SENDAR_LIVE=1. Configure SENDAR_API_KEY, SENDAR_FROM, SENDAR_TO and a stable SENDAR_EVENT_ID before an authorized live test. Inspect returned status and GET /emails/{id}. Never put credentials in a prompt or public source. ## Example request body POST /api/emails with a server-side Bearer API key and a stable Idempotency-Key. Replace the example sender with your verified domain and recipient with an authorized address. ```json { "from": "Sendar demo ", "to": [ "recipient@example.net" ], "subject": "Welcome aboard", "text": "Your account is ready. Sign in to get started." } ``` A 201 response includes the message id and status. Retrieve it using GET /api/emails/{id}. A scheduled status means pending work; sent means provider acceptance, not inbox delivery.