Platforms
Reddit publishing, DMs and comments are paused while Reddit blocks third-party API access. What still works, what to expect, and the reference for when it returns.
Reddit has closed its API to third-party apps. Until Reddit restores access, publishing, DMs and comments through Pozy are paused:
- The Reddit part of a post fails with a "Reddit is temporarily unavailable" error. Other platforms in the same post still publish.
- New Reddit messages, comments and analytics stop syncing. What was already synced stays readable.
- Reddit-only endpoints (subreddits, flairs, votes, search) return
503with codePLATFORM_DISABLED. - New Reddit connections are not possible. Accounts that are already connected stay connected, so you will not need to reconnect.
Reddit Ads uses a separate connection and keeps working.
When access comes back, Reddit turns on again without any action from you. Retry the posts that failed. The rest of this page is the reference for how Reddit behaves when it is available, so you can keep your integration ready. The platform id is reddit.
#What you can do
| Feature | When available | Status now |
|---|---|---|
| Text, link, image, gallery and native video posts | Yes | Paused |
| Flair, NSFW and spoiler tags | Yes | Paused |
| Edit a published text post | Body only | Paused |
| DMs (Reddit private messages) | Text only | Paused, existing threads readable |
| Comments | List, reply, edit, delete, vote | Paused, existing comments readable |
| Search posts and browse subreddit feeds | Yes | Paused |
| Analytics | Score and comment count | Last synced values only |
| Reddit Ads | Separate connection | Working. See Reddit Ads |
#Connect
Reddit connects with OAuth through Get OAuth connect URL with platform reddit. New connections are refused while Reddit is paused.
A connected account has a default subreddit. List Reddit subreddits returns the subreddits it can post to, and Set default subreddit changes the default without reconnecting.
#Post types
Every post targets one subreddit, and each subreddit has its own rules. Check them with Get subreddit rules and Check subreddit existence before you submit. Many subreddits require a flair, block automated posting, or set karma and account-age minimums. New accounts are blocked from most.
By default the first line of content is the title and the rest is the body, in Reddit Markdown.
{
"platform": "reddit",
"accountId": "66b2e19d8c3f5a7e9d0b1c2d",
"platformSpecificData": {
"subreddit": "learnprogramming",
"title": "What helped me learn a second language faster",
"flairId": "a1b2c3d4-0000-1111-2222-333344445555"
}
}| Post type | How to make it |
|---|---|
| Text (self) post | Only content. The title is the first line unless you set title |
| Link post | Set url. content becomes the title. If the subreddit is text-only, the post is retried as a text post with the URL in the body |
| Image post | One image in mediaItems |
| Gallery | 2 to 20 images. Images past the 20th are dropped without an error |
| Native video | One MP4 in mediaItems. Uploaded to Reddit's player and transcoded to at most 1080p and 30 fps |
| Video as a link | nativeVideo: false posts the video URL as a link instead |
Reddit titles cannot be edited after posting. Only the body of a text post can change.
#Platform fields
| Field | Type | Notes |
|---|---|---|
subreddit |
string | Without the r/ prefix. Defaults to the account's default subreddit |
title |
string, up to 300 characters | Defaults to the first line of content |
url |
URL | Makes a link post |
forceSelf |
boolean | Text-only self post, skips media uploads |
nativeVideo |
boolean, default true |
false posts the video as an external link |
videogif |
boolean | Silent looping clip, still uploaded natively |
videoPosterUrl |
URL | Poster image for a native video. Defaults to the first frame |
flairId |
string | From List subreddit flairs. If a subreddit needs a flair and you send none, the first available flair is used |
flairText |
string | Free-text flair where the subreddit allows it. Ignored when flairId is set |
nsfw |
boolean, default false |
Marks the post as over 18 |
spoiler |
boolean, default false |
Only works if the subreddit has spoiler tags on |
sendreplies |
boolean, default true |
false keeps comment replies out of the account's Reddit inbox |
For a native video with explanatory text, keep forceSelf unset. With body text present, an upload failure or a subreddit that blocks video fails the post instead of falling back to a link.
#Media requirements
| Images | Requirement |
|---|---|
| Per post | 1, or 2 to 20 as a gallery |
| Formats | JPEG, PNG, GIF |
| Max size | 20 MB |
| Recommended | 1200 x 628 px. 16:9, 4:3, 1:1 and 9:16 all work |
| Videos | Requirement |
|---|---|
| Per post | 1 |
| Format | MP4 |
| Max size | 1 GB. Larger files reach Reddit unchanged and Reddit refuses them |
| Resolution | Transcoded to at most 1080p and 30 fps, so upload at 1080p or lower |
#Limits
| Limit | Value |
|---|---|
| Title | 300 characters, required, cannot be edited |
| Body | 40,000 characters |
| Gallery | 20 images |
| New accounts | Around 10 posts a day |
| Rate limits | Reddit limits per app, so a 429 can arrive even at low volume on your side. Wait the seconds in the message, then retry |
Not available through Reddit's API: polls, crossposts, collections, live chat threads, awards, and separate upvote and downvote counts.
#Analytics
Get post analytics with platform=reddit returns the score (as likes) and the comment count. Reddit does not report impressions, reach, shares, clicks or views. While Reddit is paused, these keep their last synced values.
#Inbox
When available:
| Feature | Supported |
|---|---|
| List and read DMs | Yes |
| Send DMs | Text only |
| List comments on your posts | Yes |
| Reply to, edit and delete your comments | Yes. Replies need the subreddit parameter |
| Vote on posts and comments | Yes, with Vote on a Reddit post or comment |
Reddit's terms require every vote to be one person's own action. Automated or agent-decided voting counts as vote manipulation and can cost the account its API access.
Search posts and Get subreddit feed let you monitor communities for mentions. See Mentions.
#Errors you may see
| Error | Cause | Fix |
|---|---|---|
| "Reddit is temporarily unavailable" | Reddit is paused | Retry after Reddit returns |
503 PLATFORM_DISABLED |
A Reddit-only endpoint while Reddit is paused | Retry after Reddit returns |
| "SUBREDDIT_NOTALLOWED" | Only trusted members can post there | Build karma or choose another subreddit |
| "NO_SELFS" | The subreddit takes links or images only | Set url or attach an image |
| "SUBMIT_VALIDATION_FLAIR_REQUIRED" | The subreddit needs a flair | Pass a flairId from the flairs list |
| "SUBREDDIT_NOEXIST" | Typo, or the subreddit is private | Check the spelling, drop the r/ prefix |
| "Reddit requires a subreddit" | No subreddit and no account default |
Set platformSpecificData.subreddit |
| "Reddit removed the post" | Moderators or AutoModerator removed it | Read the rules and adjust the content |
Errors covers the error format.
#Endpoints
| Endpoint | What it does |
|---|---|
GET /v1/reddit/search |
Search posts |
GET /v1/reddit/feed |
Get subreddit feed |
GET /v1/reddit/comments/{postId} |
Get the comments of a Reddit post |
| Endpoint | What it does |
|---|---|
GET /v1/accounts/{accountId}/reddit-subreddits |
List Reddit subreddits |
PUT /v1/accounts/{accountId}/reddit-subreddits |
Set default subreddit |
GET /v1/accounts/{accountId}/reddit-subreddits/{subreddit}/rules |
Get subreddit rules |
GET /v1/accounts/{accountId}/reddit-flairs |
List subreddit flairs |
POST /v1/accounts/{accountId}/reddit-flairs |
Set Reddit post flair |
POST /v1/accounts/{accountId}/reddit-vote |
Vote on a Reddit post or comment |
GET /v1/tools/validate/subreddit |
Check subreddit existence |
#Webhook events
| Event | When it fires |
|---|---|
post.failed |
Post failed. |
post.platform.failed |
Post platform failed. |