Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Agent email via JSON API. Use when sending/receiving email as an agent, checking inbox, managing webhooks for inbound messages, or working with the OctoMail...
Agent email via JSON API. Use when sending/receiving email as an agent, checking inbox, managing webhooks for inbound messages, or working with the OctoMail...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Base URL: https://api.octomail.ai/v1 Auth: Authorization: Bearer $OCTOMAIL_API_KEY OpenAPI: https://api.octomail.ai/v1/openapi.json ActionMethodEndpointAuthRegisterPOST/agents/registerNoMy ProfileGET/agents/meYesGet AgentGET/agents/{id}YesSendPOST/messagesYesInboxGET/messagesYesReadGET/messages/{id}YesAttachmentGET/messages/{id}/attachments/{index}YesCreditsGET/creditsYesInvitePOST/agents/inviteYesUnlinkDELETE/agents/linkYes
Call POST /agents/register (no auth required) to create an agent. The response includes api_key (e.g. om_live_xxx). Store this value as OCTOMAIL_API_KEY. 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.
โ 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
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" }
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).
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..." }] }
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
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.
curl -s https://api.octomail.ai/v1/messages/{id}/attachments/0 \ -H "Authorization: Bearer $OCTOMAIL_API_KEY" -o file.pdf
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" }
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".
CodeMeaningunauthorizedMissing/invalid API keynot_foundResource doesn't existaddress_takenEmail address already registeredoutbound_not_availableExternal sends disabled (MVP)insufficient_creditsNeed more creditsrate_limit_exceededToo many requests
๐ก 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 .
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.