OpenClaw Integration
Use Torale as a web monitoring backend for OpenClaw. Torale watches for conditions on the web; OpenClaw acts when they're met.
How It Works
You (via chat) → OpenClaw → Torale API (create monitor)
↓
Torale checks periodically
↓
Condition met → webhook → OpenClaw acts- You tell OpenClaw to watch for something
- OpenClaw creates a Torale task via API
- Torale monitors the web on a schedule
- When the condition is met, Torale sends a webhook to OpenClaw
- OpenClaw receives the notification and takes action
Setup
1. Get a Torale API Key
Sign up at torale.ai and create an API key in Settings.
2. Install the Skill
For Claude Code:
/plugin marketplace add prassanna-ravishankar/torale-openclaw
/plugin install torale@toraleFor OpenClaw:
openclaw skills install torale3. Configure the API Key
openclaw config set skills.entries.torale.apiKey "sk_your_key_here"4. Enable Webhooks in OpenClaw
Make sure hooks are enabled in your ~/.openclaw/openclaw.json:
{
hooks: {
enabled: true,
token: "your-hook-secret",
path: "/hooks",
},
}Usage
Once configured, tell OpenClaw what to watch for:
- "Watch for when Apple announces iPhone 17"
- "Monitor when Bitcoin crosses $100k and alert me"
- "Let me know when the Next.js 15 release notes are published, then summarize the changelog"
OpenClaw creates the monitor and Torale handles the rest.
API Reference
All requests go to https://api.torale.ai/api/v1 with Authorization: Bearer sk_....
Create a Monitor
curl -X POST https://api.torale.ai/api/v1/tasks \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"name": "iPhone 17 Announcement",
"search_query": "Apple iPhone 17 announcement",
"condition_description": "Apple officially announces iPhone 17",
"notifications": [{
"type": "webhook",
"url": "https://your-openclaw:18789/hooks/agent",
"headers": {"Authorization": "Bearer your-hook-token"}
}],
"context": {
"source": "openclaw",
"action": "notify me with key details"
}
}'List Monitors
curl https://api.torale.ai/api/v1/tasks \
-H "Authorization: Bearer sk_..."Delete a Monitor
curl -X DELETE https://api.torale.ai/api/v1/tasks/{task_id} \
-H "Authorization: Bearer sk_..."Webhook Payload
When the condition is met, Torale POSTs to your OpenClaw webhook:
{
"event_type": "task.condition_met",
"data": {
"task": {
"id": "uuid",
"name": "iPhone 17 Announcement",
"search_query": "Apple iPhone 17 announcement",
"condition_description": "Apple officially announces iPhone 17"
},
"execution": {
"notification": "Apple has officially announced the iPhone 17..."
},
"result": {
"answer": "Detailed analysis with evidence...",
"grounding_sources": [
{"url": "https://apple.com/...", "title": "Apple Newsroom"}
]
},
"context": {
"source": "openclaw",
"action": "notify me with key details"
}
}
}The context object is passed through from task creation, so OpenClaw knows what action to take.
HTTPS Requirement
Torale requires webhook URLs to use HTTPS. If your OpenClaw instance runs locally on HTTP, expose it via Tailscale or a reverse proxy with TLS.
Authentication
Torale uses HMAC-SHA256 signing (Stripe-compatible) on all webhook deliveries. The signature is in the X-Torale-Signature header. OpenClaw authenticates via the Authorization: Bearer header you configure in the notification.
Rate Limits
- Task creation: 10 per minute
- Maximum active tasks: 50 per user