Install
openclaw skills install redreplierMonitor Reddit for keyword mentions of a product or website using the RedReplier API. Use when the user wants to track Reddit mentions of their brand, find leads from social discussions, manage monitored websites and keywords, triage AI-scored mention relevance, approve/reject leads, or configure mention email alerts. RedReplier is a SaaS tool — no self-hosting required.
openclaw skills install redreplierMonitor Reddit for keyword mentions of your product, AI-scored 0-100 for relevance so you act on real leads instead of noise. SaaS — no self-hosting needed.
export REDREPLIER_API_KEY="redreplier_your-token-here"
Base URL: https://ai.redreplier.com/ai-app/api/v1
Auth header: Authorization: Bearer $REDREPLIER_API_KEY
The account is determined by the token — you never pass an account or group ID.
Most RedReplier operations are safe and reversible (listing mentions, approving/rejecting). Two classes of action are not and need explicit confirmation:
POST /keywords/activate-pending. Activating pending keywords promotes everything that fits the plan for free, then charges a real plan upgrade to cover the rest. Always call GET /keywords/activate-pending/preview first, show the user the immediateCharge / targetPlanName, and get an explicit "yes" before activating. Never activate in a loop.DELETE /websites/{id}. This stops all monitoring for the website. Confirm with the user first; name the website (domain), not just the ID.Other guidance:
PATCH /keywords/{id} counts against a monthly edit allowance (GET /keywords/change-usage). Adding and disabling are unlimited — prefer those. Don't spend edits on cosmetic changes.SUSPENDED keyword was auto-judged too noisy. Fix the wording with an edit; don't try to force it back to ACTIVE.relevanceScore/relevanceReason and the actual content — don't invent leads.curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
https://ai.redreplier.com/ai-app/api/v1/websites
Returns { "websites": [{ "id", "domain", "url", "name", "description", "keywords": [{ "id", "value", "status" }] }] }. Keyword status is one of PENDING, ACTIVE, DISABLED, SUSPENDED. Save website IDs and keyword IDs — you need them everywhere else.
Omit description to let RedReplier scrape the site and AI-generate one (used as context for relevance scoring). Initial keywords are added as PENDING.
curl -X POST https://ai.redreplier.com/ai-app/api/v1/websites \
-H "Authorization: Bearer $REDREPLIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"name": "Example",
"keywords": ["example tool", "competitor name"]
}'
To preview an AI description without creating anything:
curl -X POST https://ai.redreplier.com/ai-app/api/v1/websites/analyze-description \
-H "Authorization: Bearer $REDREPLIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com" }'
Adding keywords auto-activates as many as fit the plan for free; the rest stay PENDING.
curl -X POST https://ai.redreplier.com/ai-app/api/v1/websites/WEBSITE_ID/keywords \
-H "Authorization: Bearer $REDREPLIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "keywords": ["my product", "use case phrase"] }'
Preview what activating the remaining pending keywords would cost, then activate (paid upgrade possible — confirm first):
curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
https://ai.redreplier.com/ai-app/api/v1/keywords/activate-pending/preview
curl -X POST https://ai.redreplier.com/ai-app/api/v1/keywords/activate-pending \
-H "Authorization: Bearer $REDREPLIER_API_KEY"
Other keyword actions: PATCH /keywords/{id} { "value": "new" } (edit, metered), POST /keywords/{id}/disable, POST /keywords/{id}/enable, DELETE /keywords/{id} (PENDING only).
curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
"https://ai.redreplier.com/ai-app/api/v1/mentions?sort=RELEVANCE&limit=20"
Returns { "mentions": [...], "total", "limit", "offset" }. Each mention has relevanceScore (0-100), relevanceReason, tags, keyword, title, contentText, url, author, subreddit, source, status.
Defaults: REJECTED mentions are excluded and anything scoring below 30 is hidden. Add &includeLowRelevance=true to see everything.
Useful filters (combine freely): websiteId, statuses (NEW/APPROVED/REJECTED), scoreBuckets (VERY_LOW/LOW/MEDIUM/HIGH/VERY_HIGH), keywords, sources (REDDIT_POST/REDDIT_COMMENT), sort (RELEVANCE/RECENT), from/to (ISO 8601 ingestion window), limit (1-500), offset. Repeat a key for arrays: ?statuses=NEW&statuses=APPROVED. See references/mention-filtering.md.
# This week's high-relevance, unreviewed leads for one site
curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
"https://ai.redreplier.com/ai-app/api/v1/mentions?websiteId=WEBSITE_ID&statuses=NEW&scoreBuckets=HIGH&scoreBuckets=VERY_HIGH&sort=RECENT"
Count only:
curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
"https://ai.redreplier.com/ai-app/api/v1/mentions/count?statuses=NEW"
curl -X POST https://ai.redreplier.com/ai-app/api/v1/mentions/MENTION_ID/explain \
-H "Authorization: Bearer $REDREPLIER_API_KEY"
Returns the mention with relevanceReason and tags (lazily generated if missing).
curl -X PATCH https://ai.redreplier.com/ai-app/api/v1/mentions/MENTION_ID/status \
-H "Authorization: Bearer $REDREPLIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "APPROVED" }'
APPROVED = real lead, REJECTED = noise (hidden from default lists), NEW = back to inbox. Reversible.
# Read current settings (includes plan's fastest allowed cadence)
curl -s -H "Authorization: Bearer $REDREPLIER_API_KEY" \
https://ai.redreplier.com/ai-app/api/v1/alert-settings
# Enable a 4-hour digest
curl -X PUT https://ai.redreplier.com/ai-app/api/v1/alert-settings \
-H "Authorization: Bearer $REDREPLIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": true, "cadenceMinutes": 240 }'
cadenceMinutes must be one of 60, 240, 720, 1440, and is clamped up to the plan's minIntervalMinutes. Returns the resolved settings (so you can confirm the cadence actually applied).
| Status | Meaning | What you can do |
|---|---|---|
PENDING | Proposed, not yet live/paid | Activate (may upgrade), delete |
ACTIVE | Live, monitoring Reddit | Disable, edit |
DISABLED | Stopped | Enable (may need upgrade), edit |
SUSPENDED | Auto-rejected as too noisy | Edit to fix (free re-grade) |
| Bucket | Score | Typical meaning |
|---|---|---|
VERY_HIGH | 75-100 | Strong buying intent / direct fit — review first |
HIGH | 50-74 | Relevant discussion worth engaging |
MEDIUM | 30-49 | Loosely related |
LOW | 10-29 | Tangential (hidden by default) |
VERY_LOW | 0-9 | Noise (hidden by default) |
/websites first to get website + keyword IDs; nothing else takes an account parameter.scoreBuckets=HIGH&scoreBuckets=VERY_HIGH&statuses=NEW, summarize each with its subreddit, relevanceScore, and a one-line relevanceReason, then ask the user which to approve.PENDING keywords can be deleted anyway.RECENT sort for "what's new since yesterday", default RELEVANCE for "best leads".includeLowRelevance — leave it off unless the user explicitly wants the long tail; it floods results with noise.