Reddit API with Python (Complete Guide)

Reddit API is amazing! In this post, we are going to learn how to use the Reddit API with Python.

We will cover everything.

  • How to get your credentials and to use the API.
  • Making a simple request to the API,
  • Using the two most popular wrappers: PRAW and Pushshift.
  • Extracting data
  • Posting to a Subreddit.

At the end of this tutorial, you’ll know everything that you need to know about the Reddit API, how to do the examples below, and even publish to Reddit using the API just like all these users have managed to do it before you.


Subscribe to my Newsletter


Example of users who published to reddit with the API
Example of users who published to reddit with the API

Reddit API Examples

Here are two things that you will be able to do after reading this guide.

Example 1: Get Subreddits with most activity related to your keyword

Subreddits with the most activity for the term seo
Screenshot of an example API  result

Example 2: Post to subreddits.

Screenshot of an example posted on Reddit API 

If you know nothing about Python, make sure that you start by reading the complete guide on Python for SEO.

Let’s get started!

How to Get Reddit API Access

To get Reddit API Access:

  1. Create a Reddit API Application

    Go to Reddit Apps
    Select “script” as the type of app.
    Name your app and give it a description.
    Set-up the redirect uri to be http://localhost:8080.
    The redirect URI will be used to get your refresh token.

  2. Copy your client_id and client_secrets

    Once you click on “create app”, you will get a box showing you your client_id and client_secrets. Copy those values in your client_secrets.json file.

  3. Get the Refresh Token

    Get your Refresh token. Python code available in the following article: Reddit API refresh token using PRAW
    refresh token reddit api

Chapter 1: Reddit API Basics


What is an Application Programming Interface (API)

A quick introduction to the world of APIs.


Get Top Posts From Subreddit With Reddit API and Python

With the Reddit API, you can extract subreddit posts and data without any credentials!

In this beginner tutorial, we will learn to make requests to a subreddit to retrieve data. I will show you how to scrape Reddit with Python, without using an API key or a wrapper. Making Requests and Scraping Reddit


Reddit API JSON’s Documentation

Translating the Reddit API JSON documentation for humans with code example simple data structure. This post will help you understand and work with the Reddit API’s JSON. Reddit JSON’s structure


Chapter 2: Pushshift.io


How to use Reddit API With Python (Pushshift)

In this Reddit API tutorial, I will show you how to make an API call using Reddit API and Python with the Pushshift.io API wrapper. We will extract data from Reddit API to find out which subreddit has the most activity for your search term. Show which subreddits have the most activity


Chapter 3: PRAW API Wrapper


Get Reddit API Credentials with PRAW (OAuth 2)

In this tutorial, we will look at the Reddit API authentication.

We are going to generate the OAuth credentials necessary to run the Reddit API using Python and the PRAW wrapper.

We’ll cover the steps to get the client id, client secrets and access token (refresh token) needed to post on Reddit using the API. Getting Reddit API Access – Credentials and Authenticating with OAuth 2


Post on Reddit API With Python (PRAW)

In this post, we will see how to post to a subreddit using the PRAW wrapper for the Reddit REST API. Learn how to post on Reddit using the API


Fun Side Project With Reddit API

Show Random Reddit Post in Terminal With Python

I thought my Terminal was boring. I decided to show a random post from “r/todayilearned ” whenever I open the Terminal. Here is how you can do the same. Show Random Post from Reddit In Terminal


Reddit API Limits

The Reddit API’s rate limit is up to 60 requests per minute. It allows a request to up to 100 items at once.

If you have less than 100 items to request, you can do it all at once. For more than 100 items, you need to make multiple requests, making sure that you don’t go over the 60 requests per minute as per the rules.


Other Interesting Guides and Projects


Reddit API FAQs

Where is the JSON API documentation

The official documentation is confusing for non-developers. Read this instead to understand the Reddit API JSON.

How to get top posts from a subreddit?

To get top posts from subreddit, use the JSON URL: https://www.reddit.com/r/{subreddit}/top.json

What is the Reddit API?

The Reddit API (Application Programming Interface) allows you to extract data, or post to Reddit using a web application or your preferred programming language.

Is the Reddit API Free?

Yes, the Reddit is free. However, it has been announced that it will become a paid feature.

How do I get my Reddit API Key?

Go to Reddit Apps to create your app and then get the refresh token using PRAW in Python. Check detailed steps to get reddit API credentials. Check this stackoverflow if not using Python.


If you want more Social Media Automation tutorials, be sure to read the complete guides on the Facebook API and Linkedin API with Python.

This is the end of the guide on Reddit API. Remember to share and link to this post if you enjoyed it.

5/5 - (3 votes)