No endpoints here yet
Check back soon — the catalog grows weekly.
How-to guide
How do I give an agent its own mailbox?a mailbox of its own, drafts reviewed before anything sends
Step 1
Set up Monid.
One line. It installs the CLI and asks for an API key from app.monid.ai. New accounts start with $1.00.
Say this to your agent
>set up https://monid.ai/SKILL.md
Step 2
Pick what you need. Say it in one sentence.
Click a job. Paste the sentence, fill in the brackets.
What is already running, and what it costs
Say this to your agent
>list every inbox in my workspace with agentmail on monid and give me the renewal price and period for each. tell me the monthly total before i create another one
What the agent runsdone
agentmail /list-inboxes$0.00
agentmail /inboxes/{id} · not run$0.00
agentmail /release-inboxes/{id} · not run$0.00What came backtwo test mailboxes · 2026-09-25
What the mailboxes costUS dollars a month
one mailbox$1.00
this workspace$15.00
what we found15 mailboxes already open, most from experiments nobody closed, for a standing $15.00 a month
the renewaleach carries a block with a dated period end, and the price in it is in micro-dollars: the value reads 1000000 and means $1.00
so read the unitan agent that prints the raw value tells its user each mailbox costs a million dollars a month
the fixthere is a release endpoint, it is free, and nothing calls it for you
$0.00free to look
Give the agent its own address
Say this to your agent
>before you create an inbox with agentmail on monid, list the inboxes i already have and read the renewal block on one of them: the catalog says $1.00 per call and says nothing about renewal, so listing first is the only way to learn it is monthly without paying to find out
What the agent runsdone
agentmail /create-inboxes$1.00
agentmail /create-domains · not run$0.00
agentmail /release-inboxes/{id} · not run$0.00What came backtwo test mailboxes · 2026-09-25
what came backan address, a display name and a created timestamp, immediately usable
the catchthe listed price is per call, but the inbox renews at the same price every month, and nothing in the endpoint's own pricing says so: it reads PER_CALL $1.00 with an empty notes field
so asking the catalog does not workan agent told to inspect the endpoint and report before running answers one-off, and is wrong; the recurrence shows up only on the renewal block of an inbox you already hold
which is why the sentence lists firstone free call on an existing mailbox tells you the price is monthly before any money moves
the habitcreate one mailbox per agent, not one per task, and release it when the task ends
$1.00per inbox, then monthly
Read what arrived
Say this to your agent
>list the messages in <inbox> with agentmail on monid and read the newest one. listing and reading are free, so do not batch them to save money. if you filter by subject, pass one plain word rather than the whole subject line: the match is tokenised, a term with punctuation in it finds nothing, and two terms in the array are ANDed rather than ORed
What the agent runsdone
agentmail /list-messages$0.00
agentmail /messages/{id}$0.00
agentmail /list-threads$0.00What came backtwo test mailboxes · 2026-09-25
what came backthe full message: headers, authentication results, size, plain text and extracted text
the labelsreceived and unread, which is how an agent decides what it has not handled
the pricenothing, so an agent can poll its own mailbox as often as it likes
the subject filter does work, tokenisedon a 28-message mailbox the literal subject v1.4 is live returned nothing, while is live, v1 and live each returned the two matching messages, because the term is tokenised and the punctuation in v1.4 splits it
and the array is ANDtwo terms in one filter returned zero rather than the union, so it narrows where a reader expects it to widen
the failure is silenta malformed filter comes back 200, COMPLETED, count zero and $0.00, which looks exactly like an empty mailbox
$0.00free, every time
Who must never be contacted
Say this to your agent
>list the send-direction block entries for <inbox> with agentmail on monid before you draft anything, and refuse to draft to anyone on it. it takes a body with direction and type, not query params
What the agent runsdone
agentmail /list-allow-block-entries$0.00
agentmail /create-allow-block-entries · not run$0.00
agentmail /delete-allow-block-entries · not run$0.00What came backtwo test mailboxes · 2026-09-25
what came backan empty list, because nothing has ever been suppressed in this workspace
the pointa do-not-contact list costs nothing to keep and nothing enforces it for you
the shapeit wants a direction of send, receive or reply and a type of allow or block, in the body
the habitcheck it first, every run, because a reply asking to stop is worth more than the send that caused it
$0.00free to read and to write
Write the whole campaign before anything sends
Say this to your agent
>draft the outbound for <list> with agentmail on monid, one draft each, and show me all of them. do not send: drafting is free and i want to read every message first
What the agent runsdone
agentmail /create-drafts$0.00
agentmail /list-drafts$0.00
agentmail /update-drafts/{id} · not run$0.00
agentmail /drafts/{id} · not run$0.00What came backtwo test mailboxes · 2026-09-25
What the outbound sequence costsUS dollars per message
check the block list$0.00
draft it$0.00
edit and review$0.00
send it$0.001
what came backa draft id, the recipients, the subject and the body, with nothing sent
the price$0.00 to write, $0.00 to edit, $0.00 to list, $0.00 to read back
why it mattersa human can review an entire campaign at no cost before one message leaves
a follow-up is set at creationthe field that makes a draft a reply is inReplyTo and it can only be passed when the draft is created: the update endpoint rejects it outright as an unrecognised key
there is no kind fieldan earlier version of this page called it a kind of plain, reply or forward. No such field exists anywhere in the API, so a reader looking for it finds nothing
$0.00however many you write
Send the queue, and see it arrive
Say this to your agent
>send the drafts i approved with agentmail on monid, one at a time, and show me each one arriving. this is the only step that bills, and it bills per recipient rather than per message, so tell me the recipient count before you send anything with more than one name on it
What the agent runsdone
agentmail /send-messages$0.001 / result
agentmail /reply-messages/{id}$0.001 / result
saperly /send-messages · not run$0.025What came backtwo test mailboxes · 2026-09-25
The message against the addressUS dollars
send one$0.001
hold the address$1.00 / mo
what came backa message id and a thread id, and the message in the other mailbox seconds later
it is per recipientthe tenth of a cent is charged once per address on the message, so a draft to five people is $0.005 rather than $0.001
the ratiosending costs a tenth of a cent; the address that sends it costs a thousand times that a month
what that meansvolume is almost free and presence is the real cost, which is the opposite of most tools
the rule herethis test only ever sent between two mailboxes we created, never outward
$0.001per recipient
Follow a conversation
Say this to your agent
>reply to that message with agentmail on monid, then show me the thread from both mailboxes. tell me whether the thread ids match
What the agent runsdone
agentmail /reply-messages/{id}$0.001 / result
agentmail /threads/{id}$0.00
agentmail /list-threads$0.00What came backtwo test mailboxes · 2026-09-25
the trapthe send returned one thread id and the receiving mailbox shows a different one for the same message
what travelsthe message id is identical on both sides; the thread id is local to the inbox you are reading
the reply does it tooa reply returns the replying mailbox's own local thread id, not the one the original sender holds, so the id changes again on the way back
what breaksan agent storing the thread id from a send will look it up in the other mailbox and find nothing
both sidesafter the reply, the sending mailbox lists two messages in its own thread
$0.001per reply
The phone side, before you commit
Say this to your agent
>list the numbers and voices available from saperly on monid. both are free to look at. do not provision a number or place a call without asking me first
What the agent runsdone
saperly /list-voices$0.00
saperly /list-numbers$0.00
saperly /provision-numbers · not run$2.00
saperly /place-calls · not run$0.005 / second
saperly /calls-transcript · not run$0.00What came backtwo test mailboxes · 2026-09-25
the voices751 of them, listed for nothing before any number exists
two language counts, both realthe voices carry 52 language codes while the languages endpoint returns 42; the ten extra are regional variants such as en-GB and pt-BR, so quote which one you counted
the numbersan empty list, because none was provisioned: the phone side costs nothing until you commit
what it would cost$2.00 to provision a number, then $0.005 per second to place a call, so a four minute conversation is $1.20 and two of them cost more than the number
the free partreading a call transcript afterwards is $0.00, like reading email
$0.00free to survey
Read more
View all →
Enrich a list you already have
Before an agent writes to anyone, working out who they are is the cheaper call.

Cheapest source first, then fall through
Finding a verified address, so the message you pay to send arrives.

Extract page content for RAG
Reading the page someone linked in their reply, as its own call.