RedditapisRedditapis
Listings & Search

Read Your Own Reddit Home Feed Over HTTP

Fetch your own Reddit front page over HTTP with your session cookies. Six sorts, cursor pagination, and the same post shape as every other listing.

GET/api/reddit/feed$0.002 / call

Your own Reddit front page, read with your session.

Every other read on this API is served from our pool of logged-in accounts, which is why they need no cookies from you. That also means the home feed has never been answerable: our accounts' feed is not yours. This endpoint sends your session instead, so what comes back is the feed your subscriptions actually produce.

Your session is required here

Unlike every other read, this one refuses an anonymous call with a 400 and code: "SESSION_REQUIRED".

Reddit will happily serve a default front page to a logged-out request. That is not a thinner version of your feed, it is a different feed belonging to nobody, and returning it would look like success while answering a question you did not ask. For a public subreddit listing use Subreddit Posts.

Get the cookie values from POST /api/reddit/login and send them as headers, exactly as described in Authenticated reads.

Headers

HeaderRequiredDescription
x-reddit-sessionYesYour reddit_session cookie
x-reddit-loidYesYour loid cookie
x-reddit-token-v2, x-reddit-csrf-token, x-reddit-edgebucket, x-reddit-csv, x-reddit-session-tracker, x-reddit-pcNoForwarded unchanged when present
x-reddit-proxyNoRead through your own proxy, so the request reaches Reddit from the IP this account normally acts from. See Proxies.

Query Parameters

ParameterTypeRequiredDescription
sortstringNobest (default) | hot | new | top | rising | controversial
tstringNoTimeframe for sort=top/controversial: hour | day | week | month | year | all. Ignored for the other sorts, since a window does nothing to a reverse-chronological feed.
limitnumberNoPosts to return, 1-100 (default 25)
afterstringNoPagination cursor. Same contract as every other listing, see Pagination depth.

best is Reddit's own default for a logged-in home page, which is why it is the default here.

Example

curl "https://api.redditapis.com/api/reddit/feed?sort=best&limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-reddit-session: YOUR_REDDIT_SESSION" \
  -H "x-reddit-loid: YOUR_LOID"

Response

The posts array and the pagination fields are identical to Subreddit Posts. Nothing about the post shape changes because the read was authenticated; only which posts you can see does.

{
  "posts": [
    {
      "id": "1tkez6e",
      "name": "t3_1tkez6e",
      "title": "...",
      "author": "user123",
      "subreddit": "ClaudeCode",
      "permalink": "/r/ClaudeCode/comments/1tkez6e/...",
      "upvotes": 42,
      "comments": 12,
      "created_utc": 1779445765,
      "created": "2026-05-22T10:29:25.000Z"
    }
  ],
  "after": "t3_xyz",
  "before": null
}

Errors

StatuscodeMeaning
400SESSION_REQUIREDNo session headers were sent. There is no account whose feed this would be.
400INCOMPLETE_SESSIONOne of x-reddit-session / x-reddit-loid was sent without the other.
400INVALID_PROXYThe x-reddit-proxy address could not be parsed.
400(none)sort or t was not one of the listed values.
401REAUTH_REQUIREDReddit rejected the session. Log in again and resend the cookies.
403PERMISSION_DENIEDReddit refused the account (suspended, or otherwise not allowed to read).
429HTTP_429Reddit rate-limited your account. Retry-After says how long to wait.
502PROXY_ERROR and othersThe proxy you sent could not complete the read.
503upstream_unavailableOur egress could not complete the read. Retryable and not billed.

A dead session is always one of these statuses, never a 200 with an empty list. That distinction is the point: an empty feed and an expired cookie are different answers and a caller cannot tell them apart if they look the same.

Independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by Reddit, Inc.

On this page