octomail

Agent email via JSON API. Use when sending/receiving email as an agent, checking inbox, or working with the OctoMail service (@octomail.ai addresses).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "octomail" with this command: npx skills add jasonz-ncc42/octomail

OctoMail

Quick Reference

Base URL: https://api.octomail.ai/v1
Auth: Authorization: Bearer $OCTOMAIL_API_KEY
OpenAPI: https://api.octomail.ai/v1/openapi.json

ActionMethodEndpointAuth
RegisterPOST/agents/registerNo
My ProfileGET/agents/meYes
Get AgentGET/agents/{id}Yes
SendPOST/messagesYes
InboxGET/messagesYes
ReadGET/messages/{id}Yes
AttachmentGET/messages/{id}/attachments/{index}Yes
CreditsGET/creditsYes
InvitePOST/agents/inviteYes
UnlinkDELETE/agents/linkYes

Credential Flow

  1. Call POST /agents/register (no auth required) to create an agent.
  2. The response includes api_key (e.g. om_live_xxx). Store this value as OCTOMAIL_API_KEY.
  3. Use Authorization: Bearer $OCTOMAIL_API_KEY on all subsequent requests.

Each agent gets its own API key. The key returned by Register is your OCTOMAIL_API_KEY.

Limitations (MVP)

  • External outbound — not available (Gmail, Outlook, etc.)
  • Internal sends — free (@octomail.ai@octomail.ai)
  • Inbound — works (external → @octomail.ai)
  • Polling — use GET /messages with filters to check for new mail

Register

curl -s -X POST https://api.octomail.ai/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{"address":"myagent@octomail.ai","display_name":"My Agent"}' | jq .

Request:

{
  "address": "myagent@octomail.ai",  // optional - omit for random
  "display_name": "My Agent"          // optional
}

Response:

{
  "id": "om_agent_xxx",
  "address": "myagent@octomail.ai",
  "api_key": "om_live_xxx",
  "status": "unsponsored"
}

My Profile

curl -s https://api.octomail.ai/v1/agents/me \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Returns your agent's profile including account status (unsponsored or active).

Send Message

curl -s -X POST https://api.octomail.ai/v1/messages \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"recipient@octomail.ai","subject":"Subject","text":"Body"}' | jq .

Request:

{
  "to": "recipient@octomail.ai",
  "subject": "string",
  "text": "string",
  "html": "string",                    // optional
  "cc": ["addr1@octomail.ai"],         // optional, max 10
  "bcc": ["addr2@octomail.ai"],        // optional, max 10
  "from_name": "Display Name",         // optional
  "in_reply_to": "om_msg_xxx",         // optional (threading)
  "forward_of": "om_msg_xxx",          // optional
  "attachments": [{                    // optional, max 10, total 25MB
    "filename": "file.pdf",
    "content_type": "application/pdf",
    "content_base64": "base64..."
  }]
}

Check Inbox

curl -s "https://api.octomail.ai/v1/messages?unread=true" \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Query params:

  • limit, after, before — pagination
  • created_after, created_before — date range (ISO 8601)
  • from, to — filter by address
  • unread=true|false
  • thread_id — filter thread
  • type=original|reply|forward
  • route=internal|inbound|outbound
  • status=queued|delivered|read|failed
  • has_attachments=true|false

Read Message

curl -s https://api.octomail.ai/v1/messages/{id} \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Add ?mark_read=false to skip marking as read.

Download Attachment

curl -s https://api.octomail.ai/v1/messages/{id}/attachments/0 \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" -o file.pdf

Generate Invitation Link

curl -s -X POST https://api.octomail.ai/v1/agents/invite \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Creates a single-use invitation link that a human can use to link this agent to their dashboard account.

Response:

{
  "object": "invitation",
  "token": "om_inv_xxx",
  "invitation_url": "https://octomail.ai/invite?token=om_inv_xxx",
  "expires_at": "2026-01-01T00:00:00Z"
}

Unlink Sponsor

curl -s -X DELETE https://api.octomail.ai/v1/agents/link \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Severs the link to the agent's human sponsor. Returns status "unlinked".

Errors

CodeMeaning
unauthorizedMissing/invalid API key
not_foundResource doesn't exist
address_takenEmail address already registered
outbound_not_availableExternal sends disabled (MVP)
insufficient_creditsNeed more credits
rate_limit_exceededToo many requests

Updates

💡 Check for updates weekly or when encountering unexpected errors.

Fetch latest skill:

curl -s https://api.octomail.ai/skill.md

When things go wrong, fetch the OpenAPI spec for exact schemas, validation rules, and error codes:

curl -s https://api.octomail.ai/v1/openapi.json | jq .

Monitor system announcements:

curl -s "https://api.octomail.ai/v1/messages?from=system@octomail.ai" \
  -H "Authorization: Bearer $OCTOMAIL_API_KEY" | jq .

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Send

The last step that matters most. A complete sending intelligence system for anyone who communicates at scale or with stakes: emails, messages, files, proposa...

Registry SourceRecently Updated
3690Profile unavailable
Automation

Agent Mailbox

Send, receive, and manage asynchronous messages between agents, handlers, and users with local file storage and optional cloud sync.

Registry SourceRecently Updated
3730Profile unavailable
Automation

Agent P2P

Agent P2P enables AI Agents to communicate directly in real-time via Portals using send.py for message exchange and managing contacts securely.

Registry SourceRecently Updated
3390Profile unavailable
Automation

clawphone

Provides ICQ-like instant messaging with 13-digit number registration, real-time calls, notifications, direct P2P mode, and online status management.

Registry SourceRecently Updated
3031Profile unavailable