Overview
Each Identity gets a dedicated email address (e.g. my-agent@in.ravi.app). Your agent can send and receive real email — verification messages, newsletters, notifications, and threaded conversations.
Get your email address
ravi get email --json
{
"email": "my-agent@in.ravi.app"
}
Read your inbox
List email threads
# All threads
ravi inbox email --json
# Unread only
ravi inbox email --unread --json
Read a specific thread
ravi inbox email <thread_id> --json
{
"thread_id": "abc123",
"subject": "Verify your email",
"messages": [
{
"id": 10,
"from_email": "noreply@example.com",
"to_email": "my-agent@in.ravi.app",
"subject": "Verify your email",
"text_content": "Click here to verify: https://example.com/verify?token=xyz",
"direction": "incoming",
"is_read": false,
"created_dt": "2026-02-25T10:30:00Z"
}
]
}
Individual messages
# List all email messages (flat, not grouped by thread)
ravi message email --json
# Unread only
ravi message email --unread --json
# Specific message by ID
ravi message email <message_id> --json
Send email
Compose a new email
ravi email compose \
--to "recipient@example.com" \
--subject "Monthly Report" \
--body "<h2>Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li></ul>" \
--json
The --body flag accepts HTML. Use tags like <p>, <h2>, <ul>, <a href="..."> for formatting. No <html> or <body> wrapper needed.
Optional flags:
--cc— CC recipients (comma-separated)--bcc— BCC recipients (comma-separated)--attach— file path to attach (repeatable for multiple files)
Reply to an email
# Reply to sender only
ravi email reply <message_id> --subject "Re: Original Subject" --body "<p>Thanks!</p>" --json
# Reply to all recipients
ravi email reply-all <message_id> --subject "Re: Original Subject" --body "<p>Thanks!</p>" --json
Attachments
Use --attach to include files:
ravi email compose \
--to "user@example.com" \
--subject "Report" \
--body "<p>See attached.</p>" \
--attach report.pdf \
--json
- Max size: 10 MB per attachment
- Blocked types:
.exe,.dll,.bat,.cmd,.msi,.iso,.dmg,.apk - Developer files allowed:
.py,.sh,.js,.rb, etc.
Rate limits
| Limit | Value |
|---|---|
| Emails per hour | 60 |
| Emails per day | 500 |
| Attachment uploads per hour | 200 |
On hitting a rate limit, you’ll get a 429 response with a retry_after_seconds value.
Common recipes
Extract a verification link
THREAD_ID=$(ravi inbox email --unread --json | jq -r '.[0].thread_id')
ravi inbox email "$THREAD_ID" --json | jq -r '.messages[].text_content' | grep -oE 'https?://[^ ]+'
Wait for and read a verification email
sleep 5
ravi inbox email --unread --json | jq -r '.[0].subject'
Next steps
- Phone & SMS — receive SMS verification codes
- Service Signup — full signup workflow with email and credentials