Home/Use cases/PRAW bots

Bots and scripts on PRAW

Reddit has told developers to rebuild on Devvit, a TypeScript platform. A reading bot written in Python or Node.js does not need to. Change the base URL and keep the code.

What Reddit asked bot authors to do

Reddit's developer platform, Devvit, runs apps inside Reddit in TypeScript, with its own runtime, its own scheduler and an app review before an app can be installed. For a bot that posts, moderates or adds a UI to a community, that is the path forward. For the much larger set of scripts that read Reddit and do something elsewhere, it is a rewrite in another language for no new capability.

The dates make the choice urgent. Unregistered apps lose the Data API on 12 Jan 2027 and public access closes in March 2027. A reading bot that moves its base URL before then never sees the cutoff.

Python with PRAW

PRAW has two settings for where it talks to: reddit_url and oauth_url. Set both to https://api.redlisten.com, pass your key as client_id, and leave the rest of the code as it is. Subreddit listings, submissions with full comment forests, redditor history, search and lookups by id all work through the same objects and attribute names. The PRAW switch page has a full sample and a list of what is served and what is not.

Async PRAW takes the same two settings. The SubredditStream helpers keep working because they poll the new listings, which are served.

Node.js and other languages

Snoowrap takes an endpointDomain. Most other clients take a base URL. And a bot with no client library at all, one that calls fetch or requests.get against a .json path, needs the hostname changed and an Authorization header added. The response is the same Listing with the same data.children, so the parsing code does not change.

# Node.js, no client library, same Listing JSON as Reddit
const KEY = process.env.REDLISTEN_KEY;
const r = await fetch("https://api.redlisten.com/r/python+learnpython/new.json?limit=100", {
  headers: { Authorization: `Bearer ${KEY}` },
});
const page = await r.json();
for (const child of page.data.children) {
  const p = child.data;
  if (/help|stuck|error/i.test(p.title)) console.log(p.id, p.subreddit, p.title);
}
console.log("next page:", page.data.after, "remaining:", r.headers.get("x-ratelimit-remaining"));

Postman users can import the OpenAPI spec from api.redlisten.com/openapi.json and walk every path with a saved key before touching the bot.

What a reading bot can do here

What it cannot do

Redlisten is read access. A bot that replies, posts, votes, flairs, removes or sends modmail needs those actions to stay on Reddit, through a registered app or through Devvit. Many bots split cleanly: the reading half, which makes most of the requests, moves here; the acting half stays small and registered. There is no logged in view, so private communities and a user's own inbox are not served.

Rate limits, written for bots

The per minute limit is set by plan: 30 requests a minute on Free, 120 on Pro, 300 on Team and 600 on Business, as listed on 6 Nov 2026. The x-ratelimit-used, x-ratelimit-remaining and x-ratelimit-reset headers match Reddit's, so PRAW's built in pacing works unchanged. Monthly quotas are metered per calendar month with no daily cap. A bot polling one community every 30 seconds makes about 86,000 requests a month, which fits a Team key with room, or a Pro key at a 60 second interval.

The Reddit style paths keep Reddit's ceiling of 100 items a page, with 50 on a free key. The native /v1 feeds page up to 250 on Pro and 1,000 on Team and Business, which is the route for a bot that needs volume.

Moving a bot in an afternoon

Sign up and copy the key. Change the two settings, or the hostname and header. Run the bot against a quiet community and compare the output to yesterday's. Switch the production config. Most bot authors finish before the coffee is cold, and the free key's 250 requests cover the test. The docs show the raw token call if your library needs a patch, and the Reddit API replacement page maps every endpoint.

Common questions.

Do I have to learn Devvit?

Not for a bot that reads. Devvit is Reddit's TypeScript platform for apps that run inside Reddit. A Python or Node.js bot that reads Reddit and acts elsewhere keeps its language and changes its base URL.

Which clients are supported?

PRAW and async PRAW through reddit_url and oauth_url, snoowrap through endpointDomain, and any client or raw HTTP call that can take a base URL and a bearer header.

Can my bot still reply or vote?

No. Redlisten is read access. Keep the acting part of a bot on a registered Reddit app or Devvit, and move the reading part here.

What does the free key cover?

250 requests a month, 50 results a request, search over the last 7 days and one keyword stream with email digests. Enough to test a bot end to end before choosing a plan.

Switch before 13 Nov

Get a key, change one URL, and your feeds, bots and alerts keep running. Then try the search Reddit never had.