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.
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
Example 2: Post to subreddits.
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:
- 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 behttp://localhost:8080
.
The redirect URI will be used to get your refresh token. - Copy your client_id and client_secrets
Once you click on “create app”, you will get a box showing you your
client_id
andclient_secrets
. Copy those values in yourclient_secrets.json
file. - Get the Refresh Token
Get your Refresh token. Python code available in the following article: Reddit API refresh token using PRAW
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
- Analysing Subreddit’s Keyword Concentration with Python and PRAW
- Classifying 4M Reddit posts in 4k subreddits: an end-to-end machine learning pipeline
- Full Reddit Account Deleter
- Reddit Accounts Generator
- Reddit API with Javascript (wrapper in Node JS)
- Projects and Resources to Learn Python SEO
Reddit API FAQs
The official documentation is confusing for non-developers. Read this instead to understand the Reddit API JSON.
To get top posts from subreddit, use the JSON URL: https://www.reddit.com/r/{subreddit}/top.json
The Reddit API (Application Programming Interface) allows you to extract data, or post to Reddit using a web application or your preferred programming language.
Yes, the Reddit is free. However, it has been announced that it will become a paid feature.
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.
SEO Strategist at Tripadvisor, ex- Seek (Melbourne, Australia). Specialized in technical SEO. Writer in Python, Information Retrieval, SEO and machine learning. Guest author at SearchEngineJournal, SearchEngineLand and OnCrawl.