Jentic OSThe workplace. An in-house AI platform for every employeeJentic OneSafe access. Agents reach your systems without holding keysJentic AIRThe foundation. Gets your existing platforms ready for AI
Pricing

GET STARTED

API DirectoryBrowse 10,000+ APIs ready for AI agent integrationDocumentationGuides and API reference

TOOLS

API ScoringCheck your AI readiness using our scorecardArazzo UIVisualize Arazzo workflows as interactive documentationArazzo EditorBuild and edit multi-step API workflows visually

COMMUNITY

GitHubOpen source projects and examplesOpen StandardsBuilt on open specs. Never locked in.
All ResourcesEverything in one placeBlogLatest articles and insightsTech Talk NewsletterAPIs, AI agents, architecture and strategyWebinarsLive sessions and on-demand recordingsReports & WhitepapersOriginal research on enterprise AI
About UsOur mission and teamCareersJoin our teamContactGet in touch
Try it now
Jentic OSJentic OneJentic AIR
Pricing
API DirectoryDocumentationAPI ScoringArazzo UIArazzo EditorGitHubOpen Standards
All ResourcesBlogTech Talk NewsletterWebinarsReports & Whitepapers
About UsCareersContact
Try it now
JenticJentic
Products
  • Jentic OS
  • Jentic One
  • Jentic AIR
For Developers
  • API Directory
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
  • Trust Centre
ISO/IEC 27001:2022 certification badge issued by Prescient SecurityISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

AICPA SOC for Service Organizations logoAICPA SOC for Service Organizations logo

SOC 2® Type 1 report

Audited by Prescient Assurance

Terms & Conditions•Privacy Policy•
© 2026 Jentic Technology Ltd. All rights reserved.
2 Grattan Court East, Dublin, D02 VX86, Ireland
Switch to light modeSwitch to dark mode
APIs / Communications / Primitive API
Primitive API logo

Primitive API

53
AI ReadinessFoundational (C)53/100
See full scorecard
Official vendor OpenAPI document · agent-readyCommunicationsEmail Deliverybearer, apiKey203 EndpointsREST

For Agents

Give your agent a working inbox: send mail, reply in-thread, wait for the reply to a sent message, and search received and sent mail by keyword or meaning. Inbound email can trigger webhooks or deployed functions.

Use for: I need to send an email from my agent's own address, Reply to the latest inbound email in this thread, Check whether a reply has arrived for the email I sent, Search my inbox for messages from billing@acme.com with attachments

Not supported: Does not run marketing campaigns, manage mailing list subscribers, or connect to existing Gmail or Outlook mailboxes. Use for sending, receiving, and searching email at your own Primitive domains only.

The Primitive API gives AI agents their own email: it receives mail at your verified domains, sends outbound messages and threaded replies, and pushes each inbound email to webhook endpoints or serverless functions. Inbound mail can be listed, searched with structured filters such as from, subject, has_attachment, and spam_score_lt, or ranked with keyword, semantic, or hybrid semantic search across received and sent mail. Around that core it manages domain claims and DNS verification, recipient routes, filter rules, wake schedules, scheduled and repeating sends, contacts and contact policy, agent connections and registries, and x402 payment challenges.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Primitive API to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Primitive 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.

1

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%2Fprimitive.dev%2Fprimitive" | sh
2

Step 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%2Fprimitive.dev%2Fprimitive" | sh
jentic register       # connects your agent to your Jentic One instance

Jentic 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.

Capabilities

What an agent can do with Primitive API.

Send outbound email with from, to, subject, body_text or body_html, attachments, and an optional scheduled_at time

Reply to an inbound email with threading headers and the Re: subject derived server-side

Wait for the first threaded reply to a sent email instead of polling the inbox

Search inbound mail by from, to, subject, body, has_attachment, and spam score, or run keyword, semantic, or hybrid search across received and sent mail

Claim a domain, publish the returned dns_records, verify ownership, and run on-demand DNS health checks

Deliver inbound email to webhook endpoints with signed Primitive-Signature headers, replay deliveries, or pull events without a public URL

Deploy functions that run on inbound mail, bind them to recipient routes, and read their execution logs

Use Cases

Patterns agents use Primitive API for, with concrete tasks.

★ Agent with its own inbox

An AI agent that coordinates with people by email needs to send, wait, and read replies without a human mail client. Through Jentic the agent searches for 'send an email', calls sendEmail with from, to, and subject, then calls awaitReply on the sent email id to long-poll for the first threaded response, and reads it with getEmailReadable. The conversation stays threaded because Primitive derives In-Reply-To and References server-side when the agent replies.

POST /send-mail with from 'agent@example.dev', to 'jane@acme.com', and subject 'Invoice question', then GET /sent-emails/{id}/reply with wait true and summarise the reply

Inbound email triggers

A support or operations workflow can react to every message that arrives at a domain. createEndpoint registers a webhook URL, optionally with rules, and each delivery is signed with a Primitive-Signature header carrying an HMAC-SHA256 of the timestamp and raw body. Failed deliveries show up in listDeliveries and can be replayed, and pullWebhookEvent lets a local process receive events with no public endpoint at all.

POST /endpoints with url 'https://example.dev/hooks/mail' and the target domain_id, then POST /endpoints/{id}/test to send a test webhook

Searching mail history

An agent asked what a vendor said about a renewal can search instead of scanning every message. GET /emails/search filters inbound mail by from, subject, date_from, date_to, has_attachment, and spam_score_lt, while POST /semantic-search ranks both received and sent mail with keyword, semantic, or hybrid mode, so the agent finds the relevant thread even when the wording differs.

POST /semantic-search with query 'contract renewal terms' and mode 'hybrid', then GET /threads/{id} for the top result

Custom domain setup

Before an agent can send and receive at a branded address, the domain has to be claimed and verified. addDomain returns the exact dns_records to publish, downloadDomainZoneFile produces an importable zone file, and verifyDomain plus checkDomainDns confirm the records are live, so setup can be scripted end to end.

POST /domains with domain 'mail.example.dev', publish the returned dns_records, then POST /domains/{id}/verify and POST /domains/{id}/dns/check

Key Endpoints

203 endpoints — the primitive api gives ai agents their own email: it receives mail at your verified domains, sends outbound messages and threaded replies, and pushes each inbound email to webhook endpoints or serverless functions.

METHOD

PATH

DESCRIPTION

POST

/send-mail

Send outbound email

POST

/emails/{id}/reply

Reply to an inbound email

GET

/sent-emails/{id}/reply

Get or wait for the reply to a sent email

GET

/emails/search

Search inbound emails

POST

/semantic-search

Semantic search across received and sent mail

POST

/domains

Claim a new domain

POST

/endpoints

Create a webhook endpoint

POST

/functions

Deploy a function

POST

/send-mail

Send outbound email

POST

/emails/{id}/reply

Reply to an inbound email

GET

/sent-emails/{id}/reply

Get or wait for the reply to a sent email

GET

/emails/search

Search inbound emails

POST

/semantic-search

Semantic search across received and sent mail

POST

/domains

Claim a new domain

POST

/endpoints

Create a webhook endpoint

POST

/functions

Deploy a function

Jentic AI Readiness Score

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.

P

Primitive API

- Foundational (C)
53/100
73
Foundational Compliance
65
Developer Experience & Jentic Compatibility
52
AI-Readiness & Agent Experience
43
Agent Usability
38
Security
80
AI Discoverability
Powered by JenticScoring Framework 1.0.0 | Scoring Engine 0.4.2
Show dimension breakdown
73

Foundational Compliance

Base layer of spec validity and structural soundness.

Grade: A-Signals: 4
92%

Lint Results

Aggregated quality score from linter diagnostics, weighted by severity.

100%

Resolution Completeness

Percentage of `$ref` references that resolve successfully.

100%

Specification Validity

Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).

0%

Structural Integrity

Structural correctness score based on schema issues using logarithmic dampening.

65

Developer Experience & Jentic Compatibility

Clarity, completeness, and ingestion readiness for developers and tooling.

Grade: BSignals: 4
11%

Example Density

How richly the API is illustrated with examples.

99%

Example Validity

Percentage of examples that conform to their schemas.

52%

Response Coverage

Percentage of operations with complete response definitions (success, client error, server error).

100%

Tooling Readiness

Health of API ingestion, bundling, and resolution within Jentic pipelines.

52

AI-Readiness & Agent Experience

Semantic breadth, depth, and agent comprehension for AI systems.

Grade: C-Signals: 4
52%

Description Coverage

Coverage of descriptions across API elements.

0%

Error Standardization

Coverage of RFC 9457 Problem Details for error responses.

99%

OperationId Quality

Coverage, uniqueness, and casing consistency of operationIds for AI inference.

58%

Summary Coverage

Coverage of summaries across operations/tags/info.

43

Agent Usability

Functional utility, complexity comfort, and AI orchestration readiness.

Grade: D-Signals: 1
43%

Complexity Comfort

Agent comfort level based on API operational and structural complexity.

38

Security

Trust, risk posture, and security compliance.

Grade: FSignals: 1
38%

Authentication Strength

Average quality of security schemes based on authentication method strength (weakest link for OAuth2).

80

AI Discoverability

Findability, semantic richness, and reasoning readiness.

Grade: ASignals: 1
80%

Descriptive Richness

Clarity and depth of descriptions across API elements.

View full reportHow the score is calculatedMore about the dimensions

Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

Score your own APIScoring CLI agent skill
npx @jentic/api-scorecard-cli score <openapi-url>

Why Jentic?

What agents get from Jentic-routed access to this vendor.

Setup

Wiring Primitive by hand means handling three bearer token types, cursor pagination with a success, data, and meta envelope, Idempotency-Key headers on writes, and HMAC verification of signed webhook deliveries. Through Jentic you install once, import Primitive from the API Directory, store the token once, and your agent calls it.

Permission scoping

Primitive puts resource ids in the URL path (/domains/{id}, /emails/{id}, /functions/{id}), so a rule can pin your agent to a specific domain or function for those operations. Outbound recipients travel in the /send-mail request body, so for sending, rules bound which operations your agent may call, not who it writes to. You choose the operations it may call, so destructive ones like deleteDomain or rotateWebhookSecret are not included unless you add them.

Credential isolation

Your Primitive token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header 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' or 'wait for a reply', and Jentic returns the matching Primitive operation with its input schema, so the agent finds sendEmail or awaitReply among the full surface without loading every operation up front.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Alternative

Resend

→

Developer email sending API for transactional messages

Choose Resend for outbound transactional sending; choose Primitive when the agent also needs to receive, search, and reply to inbound mail

Alternative

Postmark Server API

→

Transactional email delivery with inbound processing and bounce tracking

Choose Postmark for established transactional delivery; choose Primitive for agent-centric inboxes with reply waiting and semantic search

Alternative

Nylas

→

Connects to existing Gmail and Microsoft mailboxes, calendars, and contacts

Choose Nylas to act inside a user's existing mailbox; choose Primitive to give the agent its own addresses on your domain

Complementary

MailSlurp

→

Disposable test inboxes for checking email flows

Use MailSlurp to test that messages your Primitive setup sends arrive correctly; use Primitive for the production inbox

FAQs

Specific to using Primitive API through Jentic.

What authentication does the Primitive API use?

Per its OpenAPI spec, the Primitive API authenticates with a bearer token in the Authorization header: an organization API key (prim_), an OAuth access token (prim_oat_), or an address-bound agent connection key (pconn_). Raw email and attachment archive downloads also accept a signed token query parameter supplied in webhook payloads. Signup, CLI login, demo, discovery, templates, public notes, and health are public endpoints that need no credential. Through Jentic the token is held by your own instance and attached at call time.

Can my agent wait for a reply to an email it sent with the Primitive API?

Yes. After POST /send-mail, call GET /sent-emails/{id}/reply with the sent email id. It returns the first threaded inbound reply, keyed by the inbound email's reply_to_sent_email_id, and with wait set it long-polls until a reply arrives or wait_timeout_ms passes, so the agent does not need its own search loop.

What are the rate limits for the Primitive API?

The OpenAPI spec states that the v1 API allows 3000 requests per 60 seconds per Developer, Power, or Platinum organization, shared across API keys, OAuth tokens, and agent keys, and 120 requests per 60 seconds for Agent-tier organizations. A rejected request gets HTTP 429 with a Retry-After header, and outbound sends carry additional limits of their own.

Is there a Primitive MCP server?

You don't need an MCP server to give your agent Primitive. Jentic connects it directly from the API Directory: import it, store your token once, and your agent discovers the send, reply, and search operations on demand instead of loading the full tool list into its context.

How do I send an email through Jentic with the Primitive API?

Search Jentic for 'send an email', load the sendEmail operation, and execute it with from, to, and subject plus body_text or body_html. Set wait to true if the agent should see the first SMTP delivery outcome before continuing. To run it on your own infrastructure, install Jentic One from its GitHub repo.

Can I limit what my agent is allowed to do with the Primitive API?

Yes. Write a rule that allows only searchEmails, getEmailReadable, and replyToEmail, so the agent can read and answer inbound mail but cannot send new messages to arbitrary recipients, rotate the webhook secret, or delete domains. Every call it makes is logged for review.

How do I verify Primitive webhook signatures?

Each delivery carries a Primitive-Signature header of the form t=<unix-seconds>,v1=<hex>. Compute an HMAC-SHA256 over the timestamp, a period, and the raw request body using your account webhook secret, and compare it to the v1 value. GET /account/webhook-secret returns the secret and POST /account/webhook-secret/rotate replaces it.

GET STARTED

Start building with Primitive API

Explore with Jentic One
View OpenAPI Document