Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Anjal 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%2Fmyagentmail.com%2Fmyagentmail" | 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%2Fmyagentmail.com%2Fmyagentmail" | 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 Anjal API.
Create an agent inbox with POST /v1/inboxes, idempotent on the requested username, with a strict flag that returns 409 instead of falling back to a numbered username
Send from an inbox with POST /v1/inboxes/{id}/send, passing an Idempotency-Key header so a retry never sends twice, plus labels and trackOpens
Reply, reply-all, or forward a received message by its messageId with POST /v1/inboxes/{id}/reply/{messageId} and its reply-all and forward siblings
Search mail across every inbox the key can see with GET /v1/messages/search by query, from, to, participant, direction, date range, or attachment filename
GET STARTED
Schedule a send by creating a draft with sendAt through POST /v1/inboxes/{id}/drafts
Register a custom domain with POST /v1/domains, keeping an existing Google or Microsoft mail provider through sharedWith, then confirm it with GET /v1/domains/{domain}/verify
Enroll a lead in a server-side outreach cadence of LinkedIn and email steps with POST /cadences/{id}/enrollments, with daily send caps and exit on reply
Patterns agents use Anjal API for, with concrete tasks.
★ An inbox your agent owns, through Jentic
An agent that handles support or scheduling needs a real address it can send from and read. Through Jentic it finds the Anjal operations by intent, creates its inbox with POST /v1/inboxes and a username, sends with POST /v1/inboxes/{id}/send, and picks up replies with GET /v1/inboxes/{id}/threads or a message.received webhook. Sends to addresses that have never replied to the inbox are rejected unless verified is true.
Call POST /v1/inboxes with username 'scout' and displayName 'Scout', then POST /v1/inboxes/{id}/send with an Idempotency-Key header, to 'ops@example.com', subject 'Weekly report', and plainBody containing the report
Find the right message in one call
GET /v1/messages/search runs full-text search over subject, plain-text body, and participant addresses across every inbox the key can see, scoped automatically by key tier. Hits are lightweight: ids, participants, subject, receivedAt, hasAttachments, and a snippet of about 200 characters, never htmlBody, so an agent can scan results cheaply and then fetch the winning thread with GET /v1/inboxes/{id}/threads/{threadId}.
Call GET /v1/messages/search with query 'invoice', from 'billing@acme.com', and hasAttachment true, then call GET /v1/inboxes/{id}/threads/{threadId} for the newest hit
Sending from your own domain
Agents often need to send as your brand rather than as anjal.app. POST /v1/domains returns the DNS records to set at your registrar and starts the domain in pending; if the domain already receives mail at Google Workspace or Microsoft 365, pass sharedWith to keep that provider or replaceMailProvider to move mail over, otherwise the call returns 422 DOMAIN_HAS_MAIL_PROVIDER. GET /v1/domains/{domain}/verify confirms it and GET /v1/domains/{domain}/zone-file exports a BIND zone file.
Call POST /v1/domains with domain 'mail.example.com' and sharedWith 'google', report the returned DNS records, then call GET /v1/domains/mail.example.com/verify after they are set
Multi-step outreach cadences
Outbound sequences run on Anjal's side as cadences: an ordered list of steps such as a LinkedIn invite, a wait, a DM, and an email, with branching on events like an accepted invite or a reply. POST /cadences sets businessHoursOnly, exitOnReply, exitOnUnsubscribe, and a dailySendCap from 1 to 1000, and POST /cadences/{id}/enrollments enrolls each lead by leadExternalId.
Call POST /cadences with name 'Q4 founders', dailySendCap 40, and exitOnReply true, then POST /cadences/{id}/enrollments with leadExternalId 'crm-1042', leadName 'Dana Lee', and leadEmail 'dana@example.com'
112 endpoints — the anjal api gives ai agents their own email inboxes: it creates inboxes on anjal.
METHOD
PATH
DESCRIPTION
/v1/inboxes
Create an inbox
/v1/inboxes/{id}/send
Send a message
/v1/inboxes/{id}/reply/{messageId}
Reply to a message
/v1/inboxes/{id}/threads
List threads
/v1/messages/search
Search messages across inboxes
/v1/inboxes/{id}/drafts
Create a draft, optionally scheduled
/v1/domains
Register a custom domain
/v1/webhooks
Create a webhook
/v1/inboxes
Create an inbox
/v1/inboxes/{id}/send
Send a message
/v1/inboxes/{id}/reply/{messageId}
Reply to a message
/v1/inboxes/{id}/threads
List threads
/v1/messages/search
Search messages across inboxes
/v1/inboxes/{id}/drafts
Create a draft, optionally scheduled
/v1/domains
Register a custom domain
/v1/webhooks
Create a webhook
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Anjal by hand means picking the right key tier among sa_, tk_, wk_, ak_, and mam_ for each endpoint, sending it in X-API-Key, and generating an Idempotency-Key for every send. Through Jentic you install once, import the Anjal API from the API Directory, store the key once, and your agent calls it.
Permission scoping
Anjal puts the inbox id in the URL path (/v1/inboxes/{id}/...), so a rule can pin your agent to one inbox and the operations you pick. You choose the operations it may call, so ones like deleting threads, registering domains, or LinkedIn outreach are not included unless you add them.
Credential isolation
Your Anjal 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 an email from my agent inbox' or 'search my email for an invoice', and Jentic returns the matching Anjal 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 Anjal API through Jentic.
Is there an Anjal MCP server?
You don't need an MCP server to give your agent the Anjal API. Jentic connects it directly from the API Directory: import it, store your Anjal API key once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.
What authentication does the Anjal API use?
Per its OpenAPI spec, the Anjal API takes an API key in the X-API-Key header. Keys come in tiers with the prefixes sa_, tk_, wk_, ak_, and mam_, and scope is enforced per endpoint; for example, creating an inbox needs a tenant master or workspace master key. Two operations use a one-time t query token instead of a key: GET /downloads/{downloadId} and PUT /uploads/{uploadId}. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at call time.
Can I limit what my agent is allowed to do with the Anjal API?
Yes. For example, write a rule that allows only GET /v1/inboxes/{id}/threads, GET /v1/inboxes/{id}/threads/{threadId}, and POST /v1/inboxes/{id}/reply/{messageId} for one inbox id. Your agent can then read that inbox and answer mail in it, but it cannot send fresh outbound mail, delete threads, touch domains, or run LinkedIn actions, and every call it makes is logged.
What are the rate limits for the Anjal API?
The OpenAPI spec does not state a general request rate limit. It does describe per-session quotas for the LinkedIn operations, reported by GET /linkedin/sessions/utilization, and a dailySendCap of 1 to 1000 per cadence. Check https://anjal.app for current account limits.
How do I send an email from my agent's inbox through Jentic?
Search Jentic for 'send an email from my agent inbox', load the sendMessage operation, and call POST /v1/inboxes/{id}/send with to and subject, a plainBody or htmlBody, and an Idempotency-Key header. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Why was my Anjal send rejected?
As a deliverability safeguard, sends to an address that has never replied to the inbox are rejected unless you pass verified: true. Check recipients first with POST /v1/verify-email, which MX-probes the domain, then send with verified set to true.
Can I schedule an email with the Anjal API?
Yes. Create a draft with POST /v1/inboxes/{id}/drafts and set sendAt, and Anjal sends it at that time with no cron on your side. A draft.send_failed webhook event reports a scheduled send that did not go out.
For Agents
Give your agent its own email inbox: send, reply, forward, and schedule mail, search and label threads, handle attachments, register custom domains, subscribe to mail events, and run LinkedIn and email outreach cadences.
Use for: I need my agent to have its own email address, Send a follow-up email from the sales inbox without sending it twice on retry, Search all inboxes for messages from acme.com with an invoice attached, Reply to the last message in this thread
Not supported: Does not read or send from a person's existing Gmail or Outlook mailbox, run newsletter campaigns with templates, or send SMS. Use for agent-owned email inboxes, their mail and domains, and Anjal's outreach cadences only.
The Anjal API gives AI agents their own email inboxes: it creates inboxes on anjal.app or a custom domain, sends, replies, forwards, and schedules mail from them, and reads, labels, and searches what comes back. Mail is organized into threads and messages with attachments, raw .eml download, drafts that send at a set sendAt time, and contact lists per inbox, and a cross-inbox full-text search returns compact hits with a short snippet instead of whole bodies. Custom domains come with the DNS records to set, a verify call, and a BIND zone file export, and webhooks cover events such as message.received, message.bounced, and message.opened. The same API also runs LinkedIn sessions, intent signals, and multi-step outreach cadences that mix LinkedIn and email steps, all organized by tenant and workspace with tiered API keys.
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>