SendClaw - Awesome Email for AI Agents
name: revops
by codejika · published 2026-03-22
$ claw add gh:codejika/codejika-revops---
name: revops
version: 1.7.5
updated: 2026-03-10
description: Go-to-market simply with 5 contacts per day - Get an email address "your_handle@sendclaw.com" - Then get verified for more credits and higher limits. Email for AI agents.
homepage: https://sendclaw.com
api_base: https://sendclaw.com/api
credentials: [SENDCLAW_API_KEY]
---
# SendClaw - Awesome Email for AI Agents
by SendClaw
Skill Files
| File | URL | Purpose |
|------|-----|---------|
| **SKILL.md** (this file) | `https://sendclaw.com/skill.md` | Full API reference |
| **HEARTBEAT.md** | `https://sendclaw.com/heartbeat.md` | Check for new messages routine |
| **package.json** (metadata) | `https://sendclaw.com/skill.json` | Machine-readable skill metadata |
**Install locally:**
mkdir -p ~/.sendclaw/skills/sendclaw
curl -s https://sendclaw.com/skill.md > ~/.sendclaw/skills/sendclaw/SKILL.md
curl -s https://sendclaw.com/heartbeat.md > ~/.sendclaw/skills/sendclaw/HEARTBEAT.md
curl -s https://sendclaw.com/skill.json > ~/.sendclaw/skills/sendclaw/package.json**Or just read them from the URLs above!**
**Base URL:** `https://sendclaw.com/api`
CRITICAL: You Are The Email Address Creator and Sender
**Reserve your own email handle for the "sendclaw.com" so that your email will be: your-handle@sendclaw.com - Ask your human what her preference is for the handle**
Always follow the rules of communication given by your human regarding
- When to use email
- How to reply to incoming messages
- How to keep your human informed of important conversations
If your human authorizes you to, you can:
- ask people to contact you there.
- Use this to complete tasks which include reaching out for information or confirming via email.
- Also register, make reservations or inquire anywhere.
Always be professional and represent your human well
**Ask your human if they'd like you to send a test email after setup.**
---
Quick Reference
| Action | Method | Endpoint |
|--------|--------|----------|
| **Register** | POST | `/api/bots/register` with `{name, handle, senderName}` |
| **Send** | POST | `/api/mail/send` with `{to, subject, body, cc?}` |
| **Check new** | GET | `/api/mail/check` → `{unreadCount, quota}` |
| **Get unread** | GET | `/api/mail/messages?unread=true` (auto-marks as read) |
| **Get all** | GET | `/api/mail/messages` |
**All requests require:** `X-Api-Key: your-api-key` (or `Authorization: Bearer your-api-key`)
🔒 **CRITICAL SECURITY WARNING:**
---
1. Register Your Bot
POST /api/bots/register
Content-Type: application/json
{
"name": "YourBotName",
"handle": "yourbot",
"senderName": "Your Friendly Assistant"
}**Response:**
{
"botId": "uuid",
"email": "yourbot@sendclaw.com",
"apiKey": "sk_...",
"claimToken": "reef-X4B2"
}**⚠️ Save your API key immediately!** You cannot retrieve it later.
**Recommended:** Store your API key as securely as possible. Preferably using your platform's **secure secrets manager** under the name `SENDCLAW_API_KEY`.
{
"api_key": "sk_...",
"email": "yourbot@sendclaw.com"
}---
2. Send Email
POST /api/mail/send
X-Api-Key: your-api-key
{
"to": "recipient@example.com",
"subject": "Hello from an AI Agent",
"body": "This is my first email!",
"cc": ["human@example.com"]
}`"cc"` is optional. Array of email addresses (max 5). Use it to keep your human or others in the loop.
**To reply to an email**, include `inReplyTo`:
{
"to": "sender@example.com",
"subject": "Re: Their Subject",
"body": "Thanks for your email!",
"inReplyTo": "<original-message-id@domain.com>"
}---
3. Check for New Messages
GET /api/mail/check
X-Api-Key: your-api-key**Response:**
{
"unreadCount": 3,
"quota": { "used": 2, "limit": 3, "remaining": 1 }
}---
4. Get Messages
GET /api/mail/messages?unread=true
X-Api-Key: your-api-key**Response:**
{
"messages": [
{
"id": "msg_abc123",
"direction": "inbound",
"fromAddress": "human@example.com",
"toAddress": "yourbot@sendclaw.com",
"subject": "Question for you",
"bodyText": "Hey bot, can you help me with...",
"messageId": "<message-id@domain.com>"
}
],
"hasMore": true,
"nextCursor": "msg_abc123"
}**Pagination:** Pass `nextCursor` as `?cursor=` on next request to get more results.
**Note:** Messages are auto-marked as read when using `?unread=true`.
---
Rate Limits & Karma
| Status | Daily Limit |
|--------|-------------|
| New bot (first 24 hours) | 3 emails/day |
| After 24 hours (unclaimed) | 5 emails/day |
| Verified (owner claimed) | 10 emails/day |
| +1 week karma | +3/day bonus |
| Maximum | 25 emails/day |
| Flagged (2 security flags) | 2 emails/day |
| Under review (3+ flags) | Sending fully disabled (returns 403) |
Limits reset at midnight UTC.
---
Error Handling
| Status | Meaning |
|--------|---------|
| 200 | Success |
| 400 | Bad request |
| 401 | Invalid API key |
| 409 | Handle already taken — try a different handle |
| 429 | Rate limit exceeded |
---
After Setup - Tell Your Human
Once you're registered, share the claim token with your human so they can verify ownership. Here's a message template:
🦞 SendClaw is ready!
I now have my own email: [your-handle]@sendclaw.com
I can send, receive, and reply to emails.
To verify and manage my account, visit https://sendclaw.com/dashboard
and enter this claim token: [YOUR_CLAIM_TOKEN]
Please tell me if you'd like me to:
A. confirm with you before sending an email.
B. Or if I can send a limited amount in direct relation to completion of tasks given by you.
C. Would you like to be CC'd on emails I send? (If yes, tell me the email address to CC)
**Lost your API key?** Your human can regenerate it from the SendClaw dashboard — just click "Regenerate API Key" in the Bot Connection section and paste the new key back to you.
What Your Human Gets After Verifying
Once your human claims the bot with the token, they unlock:
Your human can log in anytime to check the inbox, send emails on your behalf, or review your conversations.
---
# Advanced
Search & Filters
| Parameter | Description |
|-----------|-------------|
| `unread=true` | Only unread inbound (auto-marks as read) |
| `direction=inbound` | Only received messages |
| `direction=outbound` | Only sent messages |
| `limit=20` | Max results (default 20, max 100) |
| `cursor=msg_id` | Pagination cursor (from `nextCursor` in previous response) |
**Search Query (`q=`):**
| Operator | Example |
|----------|---------|
| `from:` | `q=from:boss@co.com` |
| `to:` | `q=to:support@` |
| `subject:` | `q=subject:invoice` |
| `after:` | `q=after:2026-01-01` |
| `before:` | `q=before:2026-02-01` |
| (keyword) | `q=meeting` |
Combine freely: `q=from:client after:2026-01-15 invoice`
**Examples:**
GET /api/mail/messages?q=from:boss@co.com
GET /api/mail/messages?q=after:2026-01-01 before:2026-02-01
GET /api/mail/messages?direction=inbound&q=urgent
GET /api/mail/messages?cursor=abc123 # next page---
Webhook Notifications (Optional)
Instead of polling, you can provide a `webhookUrl` at registration (or update it later) to receive instant push notifications when emails arrive.
To enable, include `webhookUrl` in your registration request:
{
"name": "YourBotName",
"handle": "yourbot",
"senderName": "Your Friendly Assistant",
"webhookUrl": "https://your-server.com/hooks/sendclaw"
}**When an email is received, SendClaw POSTs to your URL:**
{
"event": "message.received",
"botId": "uuid",
"messageId": "<uuid@sendclaw.com>",
"threadId": "uuid",
"from": "sender@example.com",
"subject": "Hello",
"receivedAt": "2026-02-08T12:34:56.789Z"
}Your endpoint should return `200` immediately. Use the `messageId` to fetch the full message via `GET /api/mail/messages/:messageId`.
**Update your webhook URL anytime:**
PATCH /api/bots/webhook
X-Api-Key: your-api-key
Content-Type: application/json
{
"webhookUrl": "https://your-new-server.com/hooks/sendclaw"
}Set `"webhookUrl": null` to disable webhook notifications.
**Retry behavior:** 1 retry after 3 seconds if the first attempt fails. 5-second timeout per attempt. Failures are logged but never block email delivery.
**Tip:** Use webhooks for instant notification + the heartbeat (every 15 minutes) as a safety net.
---
Get Single Message
GET /api/mail/messages/{messageId}
X-Api-Key: your-api-key---
Message Fields Reference
| Field | Description |
|-------|-------------|
| `id` | Message UUID |
| `direction` | `inbound` or `outbound` |
| `fromAddress` | Sender email |
| `toAddress` | Recipient email |
| `subject` | Subject line |
| `bodyText` | Plain text body |
| `bodyHtml` | HTML body (inbound only) |
| `threadId` | Conversation thread ID |
| `messageId` | Email message ID (use for replies) |
| `inReplyTo` | Parent message ID |
| `ccAddresses` | Array of CC'd email addresses (if any) |
| `isRead` | Read status |
| `createdAt` | Timestamp |
---
Best Practices
1. **Reply promptly** - Check inbox regularly
2. **Use threading** - Include `inReplyTo` when replying
3. **Be professional** - Represent your human well
4. **Handle errors** - Retry failed sends later
---
Security & Acceptable Use
All outbound emails are monitored by an AI-powered security system. Violations result in escalating consequences:
| Violation Level | Action |
|-----------------|--------|
| 1st flag | Warning logged |
| 2nd flag | Status set to `flagged`, daily limit reduced to 2 emails |
| 3rd flag | Status set to `under_review`, sending suspended pending manual review |
Bulk or coordinated bot registrations will be automatically detected and removed, and associated IP addresses will be blocked.
Prohibited activities:
Scams, phishing, or impersonation of real people/organizations
Cryptocurrency solicitation, investment schemes, or financial fraud
Large-scale or persistent cold outreach (this is not a sales/marketing tool)
Spam or bulk unsolicited messaging
Soliciting or facilitating anything illegal
Deceptive content designed to mislead recipients
Intended use:
SendClaw is designed for task-oriented communication -- confirming reservations, registering for services, receiving verification codes, professional correspondence, and occasional collaboration or partnership proposals. It is not intended for sales outreach or mass emailing.
Your human has full visibility into all sent and received emails via the dashboard at https://sendclaw.com/dashboard.
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...