API DocsUse CasesMod-Free Sub Alerts
Zero-competition windowWebhooks

Mod-Free Sub Alerts

Webhook fires the instant mods go inactive. Your automation posts first.

Who this is for

Growth hackersAutomated marketing teamsLink buildersSaaS founders

The problem

Subreddits don't stay moderated forever. Mod teams burn out, go inactive, or simply stop checking. When this happens, a community that previously removed every promotional post quietly becomes open territory — but there's no official announcement. Nobody knows except Reoogle, which monitors mod activity continuously.

The window is real and finite. Once a previously strict community goes unmoderated, the first marketers to discover and post there get the full benefit of an audience that's never seen their content. Weeks later, when the community is full of promotional posts and competing content, the signal-to-noise ratio collapses and results deteriorate.

Manually checking which subreddits have gone inactive is not a viable strategy. There are hundreds of thousands of subreddits — the only way to catch these transitions in time to act on them is automated monitoring with real-time alerts.

How Reoogle solves it

The mods.inactive webhook fires within hours of Reoogle detecting that a previously moderated subreddit's mod team has gone inactive. Each event payload includes the subreddit name, member count, current activity level, and the estimated time since the last mod action — enough to make an immediate targeting decision. Wire this into a scheduling automation and you can have a post live in that community within 45 minutes of the transition being detected.

How it works

1

Set up your webhook receiver endpoint

Create a POST endpoint on your server that accepts raw request bodies (don't parse JSON before signature verification). The endpoint must return HTTP 200 within 10 seconds or Reoogle will retry. A simple Express or Next.js API route is sufficient.

2

Register the webhook with Reoogle

POST /webhooks with your endpoint URL, the events array set to ["mods.inactive"], and a human-readable description. The response includes your signing secret — store it immediately as an environment variable. It cannot be retrieved again.

3

Verify every incoming request

Compute HMAC-SHA256 of the raw request body using your signing secret. Compare the result to the X-Reoogle-Signature header using a timing-safe comparison (crypto.timingSafeEqual). Reject any request that doesn't pass this check — never process unverified webhooks.

4

Filter events worth acting on

Check data.member_count before scheduling a post. Communities with fewer than 500 members rarely have meaningful organic reach, even unmoderated. A threshold of 1,000–2,000 members is a practical minimum. Also check data.posts_60d > 5 to confirm the community has recent activity.

5

Fetch the subreddit profile before committing

Call GET /subreddits/{name} to get the full subreddit profile — category, language, avg_comments, and activity data. This takes 1–2 seconds but gives you the information to write a post that fits the community context rather than a generic one.

6

Schedule an immediate first post

Use POST /schedule with scheduled_for set 30–45 minutes from now. This gives the scheduler time to prepare without losing the early-mover advantage. Write the post to feel native to that community's topic — even if the mod team is gone, the readers are still there and will downvote obviously out-of-place content.

7

Add the subreddit to your ongoing rotation

After the first successful post, add the subreddit to your active posting list. Check back weekly via GET /subreddits/{name} — sometimes a new mod team gets appointed and the community returns to moderation. When that happens, remove it from your promotional rotation before you get banned.

Code examples

Register the webhook

bash
curl -X POST https://reoogle.com/api/v1/webhooks \
  -H "Authorization: Bearer rog_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url":    "https://your-app.com/webhooks/reoogle",
    "events": ["mods.inactive"],
    "description": "Auto-post on mod-inactive transition"
  }'

Handler — verify + auto-schedule

javascript
import crypto from 0;

app.post(1, express.raw({ type: 2 }), async (req, res) => {
  const sig = req.header(3) ?? 4;
  const expected = crypto
    .createHmac(5, process.env.REOOGLE_SECRET)
    .update(req.body)
    .digest(6);

  if (!crypto.timingSafeEqual(Buffer.from(sig, 7), Buffer.from(expected, 8))) {
    return res.sendStatus(401);
  }

  const { event, data } = JSON.parse(req.body.toString());

  if (event === 9 && data.member_count > 500) {
    10
    const scheduledFor = new Date(Date.now() + 45 * 60_000).toISOString();
    await fetch(11, {
      method:  12,
      headers: { Authorization: 13 + process.env.REOOGLE_KEY, 14: 15 },
      body: JSON.stringify({
        title:         16,
        body:          MY_POST_BODY,
        subreddit:     data.subreddit,
        scheduled_for: scheduledFor,
      }),
    });
    console.log(17);
  }

  res.sendStatus(200);
});

Common pitfalls

Not verifying the webhook signature

An unverified webhook endpoint can be triggered by anyone who knows your URL. Always validate the HMAC-SHA256 signature before processing the payload, and use crypto.timingSafeEqual to prevent timing attacks.

Posting in sub-500-member communities

Very small subreddits don't provide enough organic reach to justify the effort. Set a hard minimum member threshold in your handler and silently acknowledge (return 200) without scheduling anything below it.

Missing the transition back to active moderation

New mods occasionally get appointed weeks after a community goes inactive. If you continue posting promotional content after a new mod team takes over, you'll get banned and potentially have your account flagged. Check mod status monthly for every community in your rotation.

Key benchmarks

< 4 h

Median detection lag

Time between a mod team going inactive and the mods.inactive webhook firing.

45

Avg upvotes in first post

Median score on the first post published in a newly unmoderated sub with 2k–10k members.

3–14 d

Posting window duration

Typical window before competing promotional content floods the community or a new mod team is appointed.

Recommended stack

Reoogle APImods.inactive webhook + subreddit profile lookup + scheduling
Express / Next.js API routeWebhook receiver endpoint with HMAC verification
Redis / UpstashIdempotency store to prevent duplicate processing of the same event
PagerDuty / SlackAlert your team when a high-value community (>10k members) fires the webhook

Frequently asked questions

How often does the mods.inactive event fire?

Reoogle detects 50–200 mod-inactive transitions per day across the Reddit communities it monitors. How many of those match your size and category filters depends on your setup — typically 2–10 relevant events per day for a broad filter.

What happens if my webhook endpoint is down?

Reoogle retries failed webhook deliveries with exponential backoff over 24 hours (retries at 5 min, 30 min, 2 h, 8 h, 24 h). If your endpoint returns any 2xx status, the delivery is considered successful and won't retry.

Can I test the webhook locally?

Yes. Use a tool like ngrok or Cloudflare Tunnel to expose your local server to the internet, then register that URL as your webhook endpoint. Reoogle will send real events to the tunnel URL. Remember to update the webhook with your production URL before deploying.

Is there a way to retroactively get communities that went inactive before I set up the webhook?

Yes — use GET /subreddits/postable, which returns currently unmoderated communities regardless of when they transitioned. The webhook gives you real-time alerts; /postable gives you the full current snapshot.

Business value

New mod-inactive subreddits with 1,000–10,000 members represent a rare window of free reach. A well-timed post in these communities can get 50–200 upvotes and stay near the top for days — visibility that would cost hundreds in Reddit ads.

Ready to build this?

Generate an API key from your developer dashboard and make your first request in minutes.