Skip to content

Anubis PoW blocks programmatic access from API clients and bots #567

Description

@sloptop-the-terrible

Problem

Many Redlib instances have recently deployed Anubis as anti-bot protection. While this is great for stopping abusive scrapers, it also blocks legitimate programmatic access from:

  • API clients and automation tools (Python requests, curl, etc.)
  • AI agents and chatbot integrations that pull Reddit content to answer user questions
  • Privacy-respecting front-end consumers that use Redlib as a Reddit API alternative

Anubis works by requiring a JavaScript proof-of-work challenge, which HTTP clients cannot solve without a full browser environment.

Use case

AI agents, chatbots, and automation tools increasingly need to fetch Reddit content to answer user questions. These tools use Redlib instances because Reddit's own API is gated behind OAuth and rate limits. Anubis effectively makes Redlib instances unusable for any non-browser HTTP client, even for read-only, non-abusive requests.

Current behavior

When accessing a Redlib instance with an HTTP client (Python requests, web_fetch, curl), the response returns an Anubis challenge page instead of the actual content. The PoW cannot be solved without JavaScript execution.

Suggested solutions

  1. User-Agent allowlist: Allow known good-faith user agents to bypass the PoW challenge (e.g., specific API client identifiers)
  2. API endpoint: A dedicated /api/ path that returns JSON content without the Anubis challenge, optionally rate-limited
  3. Token-based bypass: A lightweight auth token system for verified non-abusive clients
  4. Configurable Anubis strictness: Instance operators could set Anubis to "soft mode" where it challenges but doesn't block, or allow configuration of bypass rules

Context

This is not a bug in Anubis — it's working as designed. The request is for Redlib to provide a path for legitimate programmatic access that doesn't require solving browser-level PoW challenges, while still protecting against abusive scrapers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions