Mail

Open Mail →

Calling it

This is your own data, so a call has to say who you are. Make a token at /token and send it as a header.

curl -H "Authorization: Bearer $MU_TOKEN" \
  https://micro.mu/api/v1/mail/inbox

The same method over MCP, which is what an agent speaks: mail_inbox. The answer is identical.

How every call behaves →

Methods

GET /api/v1/mail/inbox

List the account's most recent messages — read my mail, check my inbox

Needs an account.

ArgumentTypeDescription
tagstringOnly messages sent to this plus-address tag
offsetnumberMatching messages to skip
limitnumberMax messages (default 10)
curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://micro.mu/api/v1/mail/inbox"
GET /api/v1/mail/info

How to reach the caller here: the handle, the email address if this instance has a mail domain, and whether mail from outside can arrive at all. Pass a tag for a separate one (you+tag) — give that out, then read only its messages with mail_inbox(tag)

Needs an account.

ArgumentTypeDescription
tagstringA label for this handle, e.g. "research" or "receipts". Omit for the plain one
curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://micro.mu/api/v1/mail/info"
POST /api/v1/mail/markread

Mark specified inbox message IDs, or explicitly all current inbox messages, as read. Changes read status only; does not read, summarize or triage the content.

Needs an account. Changes something, so POST only.

ArgumentTypeDescription
idsarrayMessage IDs to mark read; use all instead to clear the inbox unread count
allbooleanExplicitly mark all current inbox mail as read
curl -X POST \
  -H "Authorization: Bearer $MU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://micro.mu/api/v1/mail/markread
GET /api/v1/mail/read

Read your correspondence by id in bounded body-character pages, including attachment names. Follow the returned next offset for the rest. Omitting id retains the legacy inbox summary

Needs an account.

ArgumentTypeDescription
offsetnumberBody character offset
limitnumberBody characters per page; default and maximum 2000
idstringMessage id from mail_inbox or mail_search
curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://micro.mu/api/v1/mail/read"
POST /api/v1/mail/send

Write to somebody, as you. A username reaches them on this instance and is free; a full email address leaves over SMTP under this instance's domain, so a reply comes back to your inbox, and is charged. Resolve a name with contacts_find first. Mail that leaves needs MAIL_DOMAIN configured on the instance

Needs an account. Changes something, so POST only. Withheld from the agent — a person or a program only.

ArgumentTypeDescription
to *stringRecipient: a username on this instance, or a full email address. Resolve a name with contacts_find first
subject *stringMessage subject
body *stringMessage body, plain text
curl -X POST \
  -H "Authorization: Bearer $MU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body":"body","subject":"subject","to":"to"}' \
  https://micro.mu/api/v1/mail/send

The same methods are tools over MCP, and every service on this instance is in one reference.