Skip to main content
On a self-hosted PostQueen the Reddit app is yours. You create a web app on Reddit, ask Reddit to approve your use of its Data API, and give PostQueen the client ID and secret.

Before you start

Reddit grants scopes on its consent screen, not on the app form. PostQueen asks for the four scopes and refuses the connect if Reddit grants fewer. flair is the one that lets the composer list each subreddit’s flairs.
Reddit’s Responsible Builder Policy requires you to request access and get explicit approval before your app uses Reddit data. Creating the app below is not enough on its own. The same policy forbids automated posting of identical or substantially similar content across subreddits.

Create the app

1

Open the app form

Go to reddit.com/prefs/apps and choose are you a developer? create an app…, or create another app… if the account already has one.
2

Fill in the form

  • name: a name for your install, such as PostQueen for Example Inc.
  • App type: web app. A script app can only use its own account, and an installed app gets no secret.
  • description and about url: optional.
  • redirect uri: your address from the next step.
Then choose create app.
3

Set the redirect URI

Use the address that matches how you run PostQueen:
Reddit compares it exactly, both when you sign in and when PostQueen exchanges the code.The redirect URI is where the network sends the browser back after someone approves PostQueen. It is your FRONTEND_URL + /integrations/social/ + the network’s identifier, for example https://postqueen.example.com/integrations/social/pinterest.Most networks need exactly one URI, with no trailing slash. Two exceptions: TikTok Business needs the trailing slash (/integrations/social/tiktok-business/), and a Google web client that also serves Google Business Profile lists both /integrations/social/youtube and /integrations/social/gmb. Channel developer apps lists every network’s ending.
4

Copy the client ID and secret

The app now shows in the list. The client ID is the string under the app’s name and type, and the secret is on the secret row. Copy both, and keep the secret private.

Set the variables

Add the two keys to your environment:
Recreate the app container so it reads the new variables. A plain docker restart or docker compose restart keeps the old container and its old environment. In the folder that holds docker-compose.yaml, recreate only the postqueen service:
The database, Redis and Temporal keep running. Avoid docker compose down for a settings change: on a host that runs other Compose services in the same project, it stops them too. Then open PostQueen, go to Channels, choose Add Channel and pick this network. You are sent to its login to authorize PostQueen, and the channel appears in the Channels list once you accept.
The channel is in the Channels list with its avatar and name.
Add Channel does not check whether your variables are set. A missing or misspelled key shows up as a broken authorization page on the network’s side rather than a helpful message in PostQueen, so if the login page itself looks wrong, check the keys before anything else.
Pick Reddit, sign in, and allow the permissions. In each post you then choose the subreddits, and a title, post type and flair for each.

App review

  • Access. Reddit asks every app to request access through its Data API request form and wait for approval. Describe what your install posts and for whom.
  • Commercial use. Reddit treats any use by or on behalf of a business as commercial, and that needs Reddit’s written approval and an agreement. See Reddit’s Data API terms.
  • Rate limit. An approved app gets 100 requests a minute, averaged over 10 minutes, shared by every channel on your install. PostQueen publishes one Reddit post at a time.

Troubleshooting

Reddit returned a token without all four scopes. Connect again and allow every permission on Reddit’s screen.
The address PostQueen sent is not the app’s redirect uri. It is exactly your FRONTEND_URL followed by /integrations/social/reddit. Check the scheme, the port and that there is no trailing slash.
Reddit refused that subreddit and gave its reason after the colon: a missing flair, a post type the subreddit does not allow, or a karma or account-age rule. Fix the post for that subreddit and schedule it again.
Last modified on September 23, 2026