Install
openclaw skills install @tarasshyn/redreplierMonitor Reddit, Hacker News, X, and Bluesky for keyword mentions of a product or website using the RedReplier API. Use when the user wants to track mentions of their brand across Reddit, Hacker News, X (Twitter), or Bluesky, 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 @tarasshyn/redreplierMonitor Reddit, Hacker News, X, and Bluesky 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
Rate limit: 600 requests per minute per token. Every response carries RateLimit-Remaining and RateLimit-Reset; a 429 adds Retry-After in seconds. Wait it out instead of retrying straight away.
GET /openapi.json is public and needs no token, so automation platforms can import the spec.
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. source is one of REDDIT_POST, REDDIT_COMMENT, TWITTER (X), BLUESKY, HACKERNEWS; subreddit is populated only for Reddit sources (null for X, Bluesky, and Hacker News).
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/TWITTER/BLUESKY/HACKERNEWS), 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 all channels | 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 source (and subreddit for Reddit), 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.