Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Lettr API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flettr.com%2Flettr" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flettr.com%2Flettr" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Lettr API.
Send a transactional email to up to 50 recipients from html, text, or a template_slug with substitution_data, with an Idempotency-Key for safe retries
Schedule an email for a set scheduled_at time and cancel it by transmission id before it sends
Filter email events by type such as delivery, bounce, spam_complaint, open, or click, and by recipient and date range
Add and verify a sending domain, then subscribe a webhook to message events such as message.delivery and message.bounce
GET STARTED
Create, update, and fetch templates, and read a template's merge tags before filling them
Add contacts singly or in bulk, attach them to lists and topics, and build segments from conditions
Create a marketing campaign, send it now or schedule it, and read its engagement events
Patterns agents use Lettr API for, with concrete tasks.
★ Agent-sent transactional email through Jentic
An AI agent handling customer requests can send a templated email with the right merge data and then check its delivery events to confirm it arrived. Through Jentic the agent finds the send operation by intent and the bearer key is injected at execution time, and a rule can allow sending and event reads while leaving domain deletion and campaign sends out of reach.
Call POST /emails with from 'support@example.com', to ['jane@example.com'], template_slug 'order-confirmation', and substitution_data containing the order number, then call GET /emails/events with recipients 'jane@example.com' and events 'delivery,bounce'
Reliable transactional sends
Receipts, password resets, and alerts must arrive once and only once. Lettr sends from html or text or a stored template, tags messages and attaches metadata for later lookup, and honours an Idempotency-Key so a retried request returns the original result instead of sending again, with open and click tracking toggled per message.
Call POST /emails with Idempotency-Key 'reset-8841', from 'no-reply@example.com', to ['user@example.com'], subject 'Reset your password', and html containing the reset link
Deliverability monitoring
Bounces and spam complaints need attention before they damage sender reputation. The Lettr events operation filters by event type, recipient, date range, transmission, and bounce class, and webhooks push events such as message.delivery and message.bounce to your endpoint with basic or OAuth authentication.
Call GET /emails/events with events 'bounce,spam_complaint' for the last day and list the affected recipients
Newsletter audiences and campaigns
Lettr also covers marketing email. Contacts can be added in bulk with properties, attached to lists and subscription topics, and grouped into condition-based segments, and a campaign built from html content or a template can be sent at once or scheduled with scheduled_at, with engagement events available per campaign.
Call POST /audience/contacts with email 'new.subscriber@example.com' and the newsletter list_id, then POST /campaigns/{campaignId}/schedule with scheduled_at '2026-11-09T09:00:00Z'
71 endpoints — the lettr api sends transactional email with tracking, attachments, and personalization, either from raw html and text or from a stored template_slug filled with substitution_data.
METHOD
PATH
DESCRIPTION
/emails
Send an email
/emails/scheduled
Schedule an email
/emails/events
List email events
/emails/{requestId}
Get email detail
/domains/{domain}/verify
Verify a sending domain
/webhooks
Create a webhook
/audience/contacts
Create a contact
/campaigns/{campaignId}/send
Send a campaign
/emails
Send an email
/emails/scheduled
Schedule an email
/emails/events
List email events
/emails/{requestId}
Get email detail
/domains/{domain}/verify
Verify a sending domain
/webhooks
Create a webhook
/audience/contacts
Create a contact
/campaigns/{campaignId}/send
Send a campaign
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Lettr by hand means managing a bearer key, setting an Idempotency-Key on retries, verifying sending domains, and choosing between html, text, and template_slug content on each send. Through Jentic you install once, import Lettr from the API Directory, store the key once, and your agent calls it.
Permission scoping
Lettr carries recipients and content in the request body, so for sends, rules bound which operations your agent may call, not who it emails. Templates, campaigns, domains, and audience lists carry their ids in the URL path (/templates/{slug}, /campaigns/{campaignId}/send), so those operations can be pinned to one template, campaign, or list. You choose the operations it may call, so destructive ones like deleting a domain or sending a campaign are not included unless you add them.
Credential isolation
Your Lettr API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'send a transactional email' or 'check if an email bounced', and Jentic returns the matching Lettr operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Lettr API through Jentic.
Is there a Lettr MCP server?
You don't need an MCP server to give your agent the Lettr API. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it. Operations are discovered on demand, so your agent's context carries no tool definitions it will not use.
What authentication does the Lettr API use?
Per its OpenAPI spec, the Lettr API uses HTTP bearer authentication with your Lettr API key, and GET /auth/check confirms a key is valid. The health check is declared open. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at execution time, so it never enters the agent's context.
Can I retry a Lettr send without sending the email twice?
Yes. Send an Idempotency-Key header with POST /emails. Repeating the same payload with the same key returns the original result without another delivery, while a conflicting payload or a transmission still in progress returns 409.
What are the rate limits for the Lettr API?
The OpenAPI spec does not specify rate limits, though it notes Lettr checks your sending quota before each send. Check https://docs.lettr.com for current limits.
How do I send a templated email with Lettr through Jentic?
Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the Lettr API from the directory, and store your API key. Your agent then searches for 'send a transactional email' and Jentic returns POST /emails, which requires from and to and accepts a template_slug with substitution_data. To run it on your own infrastructure, install Jentic One from its GitHub repo.
How do I find out whether a Lettr email bounced?
Call GET /emails/events with events set to bounce and recipients set to the address, optionally narrowed by a from and to date range and by bounce_classes. For push delivery, create a webhook with POST /webhooks subscribed to events such as message.bounce.
Can I limit what my agent is allowed to do with the Lettr API?
Yes. For a support assistant, write a rule that allows only POST /emails and GET /emails/events: the agent can send transactional emails and check their delivery, but cannot send or schedule campaigns, delete domains, or edit your audience, and every call it makes is logged.
For Agents
Send and schedule transactional emails from HTML or templates, track delivery, bounce, open, and click events, and manage sending domains, templates, audience contacts, and campaigns in Lettr.
Use for: I need to send a password reset email to a user, Send the order confirmation template to this customer with their order details, Schedule a reminder email for tomorrow at 9am, Check whether my email to jane@example.com was delivered or bounced
Not supported: Does not handle SMS, push notifications, inbound email parsing, or inbox hosting. Use for sending and tracking transactional and campaign email only.
The Lettr API sends transactional email with tracking, attachments, and personalization, either from raw html and text or from a stored template_slug filled with substitution_data. A send takes up to 50 recipients plus cc and bcc, and accepts an Idempotency-Key header so retries never deliver the same message twice; messages can also be scheduled for a later time and cancelled before they go out. Delivery is observable through sent-email lists and an event stream covering delivery, bounce, open, click, and unsubscribe events, and the same API manages sending domains, webhooks, templates, audience contacts, lists, topics, segments, and marketing campaigns.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>