Install
openclaw skills install moltgateFetch and process paid inbound messages from Moltgate using the REST API.
openclaw skills install moltgateUse this skill when the user asks to check paid Moltgate inbox messages, triage them, or mark them handled.
Required environment variable:
export MOLTGATE_API_KEY="mg_key_your_key_here"
Optional environment variable:
export MOLTGATE_BASE_URL="https://moltgate.com"
If MOLTGATE_BASE_URL is not set, default to https://moltgate.com.
All authenticated requests require:
Authorization: Bearer $MOLTGATE_API_KEY
List new messages:
curl -s -H "Authorization: Bearer $MOLTGATE_API_KEY" \
"$MOLTGATE_BASE_URL/api/inbox/messages/?status=NEW"
Get message detail:
curl -s -H "Authorization: Bearer $MOLTGATE_API_KEY" \
"$MOLTGATE_BASE_URL/api/inbox/messages/{id}/"
Mark message processed:
curl -s -X PATCH \
-H "Authorization: Bearer $MOLTGATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"inbox_status":"PROCESSED"}' \
"$MOLTGATE_BASE_URL/api/inbox/messages/{id}/update_status/"
Archive message:
curl -s -X PATCH \
-H "Authorization: Bearer $MOLTGATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"inbox_status":"ARCHIVED"}' \
"$MOLTGATE_BASE_URL/api/inbox/messages/{id}/update_status/"
List lanes:
curl -s -H "Authorization: Bearer $MOLTGATE_API_KEY" \
"$MOLTGATE_BASE_URL/api/lanes/"
GET /api/inbox/messages/ returns a JSON array.id, subject, sender_name, sender_email, lane_name, amount_cents, status, inbox_status, is_read, triage_output, created_at.sanitized_body, sender_url, lane, and receipt.sender_url is present when the sender submitted a URL via a lane that has allow_sender_url: true. May be empty string if no URL was provided.GET /api/lanes/ returns lanes with id, name, slug, description, price_cents, allow_sender_url, sender_url_label, sender_url_required, availability, is_active.slug is the lane's public URL segment: each lane has its own page at /{handle}/{slug}/.allow_sender_url — Pro/Ultra feature: when true, the lane form shows an extra URL input for senders.sender_url_label — custom label for that URL field (e.g. "Portfolio URL"). Default is "One URL".sender_url_required — when true, senders must fill in the URL field to submit.GET /api/inbox/messages/?status=NEW.PATCH /api/inbox/messages/{id}/update_status/ with PROCESSED.ARCHIVED.[MOLTGATE MESSAGE]
id: {id}
from: {sender_name} ({sender_email or "guest"})
lane: {lane_name}
paid: ${amount_cents/100}
subject: {subject}
url: {sender_url if sender_url else "none"}
created_at: {created_at}
triage: {triage_output or "none"}