Skip to content

How to View Tweets Without an X Account in 2026 (and What Replaced Nitter)

Open the post link in a private window; x.com shows a single post and a profile's latest few posts logged out. Nitter's repository is archived and XCancel is suspended, so here is what still works for readers and developers.

11 min read · 25 Sept 2026

Open the link. A logged-out browser on x.com shows a single post in full, with its reply, repost and like counts, and a profile page shows the bio, follower count and the latest handful of posts before a sign-in prompt covers the rest. What you cannot do without an account is scroll a timeline, read the replies or search. Nitter no longer fills that gap: its GitHub repository was archived on 11 September 2026 after a cease-and-desist from X, and XCancel, the best-known public instance, suspended service on 15 September.

So the honest 2026 answer has two halves. For reading one post or glancing at one account, x.com itself is now the simplest viewer. For anything more (a full timeline, replies, search, or a program that reads posts repeatedly) the options are the official X API, which is pay-per-use, or the small set of public embed surfaces X keeps running for publishers.

Every current-state claim below was checked on 2026-09-25, with sources at the end.

Can you view tweets without an account in 2026?

Yes, for a narrow slice. Here is what a logged-out visitor to x.com gets, in an ordinary browser, as of the check date:

  • A single post (x.com/<handle>/status/<id>): the full text, media, timestamp, and the reply, repost and like counts. The page title and link-preview tags carry the post text too, which is why pasted X links still unfurl in chat apps.
  • A profile (x.com/<handle>): name, bio, location and link, join date, following and follower counts, post count, and the most recent few posts. On the NASA profile that was five posts.
  • Everything else: a sign-in prompt. The Replies, Media and Likes tabs, scrolling past the first few posts, the conversation under a post, and search all require an account.

Two practical notes. First, a sign-in prompt can appear over content that has already loaded, and closing it may leave the post readable underneath. Second, what you see logged out can vary with the network you are on. A home or mobile connection gets the most generous treatment. Corporate VPNs and cloud-hosted browsers are more likely to hit a sign-in wall or a rate limit sooner.

If all you want is to read a post someone sent you, that is the whole answer. Open it in a private window.

What happened to Nitter?

Nitter was an open-source, privacy-focused front end for Twitter. It rendered timelines, replies and search as plain HTML without JavaScript, tracking or an account, and hundreds of volunteer-run instances made it the default answer to "how do I read Twitter without logging in".

It went through two deaths. The first came in early 2024, when X stopped issuing the guest tokens Nitter used to read anonymously. The project came back in 2025 by switching to real account sessions. Its own wiki is explicit that "Nitter requires real accounts to authenticate API requests," and an instance operator supplies the session cookies of logged-in X accounts. That made public instances expensive to run and easy for X to suspend, which is why the survivors hid behind bot challenges and switched off RSS.

The second came in 2026. X sent a cease-and-desist letter in August alleging "unlawful use and circumvention" of its API. Instances briefly returned in early September, the zedeus/nitter repository was archived on 11 September, and on 15 September XCancel replaced its site with a notice that reads, in full: "Unfortunately, due to a new development in the ongoing legal proceedings, we are required to suspend this service again until further notice. We can't share more details."

An archived repository is read-only. The code still exists and existing forks still run, but no upstream fixes will arrive, and X changes its internal APIs often enough that an unmaintained front end degrades quickly.

Are any Nitter instances still working?

A few are listed as up, and in practice they are hard to use. The community status page at status.d420.de listed seven instances as healthy on the check date, above a warning that reads "Please do NOT use these instances for scraping, host nitter yourself."

A "healthy" flag means the host answered a monitor. It does not mean a person, or a program, gets tweets back. This is what the well-known and currently listed hosts returned for a plain request to /NASA on 2026-09-25:

Instance What came back Posts returned
xcancel.com 451, "XCancel service is suspended." 0
nitter.net connection refused 0
nitter.poast.org domain no longer resolves 0
nitter.tiekoetter.com 200, "Making sure you're not a bot!" challenge 0
nitter.privacyredirect.com 200, bot challenge 0
nitter.meowing.monster (listed healthy) 200, bot challenge 0
nitter.miningtcup.me (listed healthy) 400, 105-byte body 0
nitter.jaydenha.uk (listed healthy) timed out after 20s 0
nitter.netbub.com (listed healthy) timed out after 20s 0

A bot challenge is not an outage. A person in a real browser may well get through one of these and read the timeline. But the list of hosts that work for people changes weekly, each one runs on someone's personal X accounts, and each is operating under the same legal cloud that closed XCancel. Treat any surviving instance as a convenience that may disappear without notice, and never as something to build on.

The gap between "marked healthy" and "returned content" is a general problem with monitoring that checks status codes, covered in more depth in why an HTTP 200 can still mean the request failed.

What replaced Nitter?

Nothing replaced it like-for-like. The alternatives each cover part of what it did.

x.com itself, logged out. Covered above: one post, or a profile's latest few posts. It has become more generous than it was in 2023 and 2024, when almost everything sat behind a login wall.

Link-fixer services (FxTwitter, VxTwitter). Replace x.com with fxtwitter.com in a post link and chat apps get a richer preview. Both run public JSON APIs too (api.fxtwitter.com/<handle>/status/<id> answered on the check date). They show individual posts, not timelines or search. They are caches: the counts can be hours or days old, and nothing in the response makes that obvious.

Embedded posts on other websites. News articles and blogs embed posts through X's official widget, which renders without an account. If you are looking for a post that was widely covered, a search for its text often turns up an article embedding it.

The Wayback Machine. web.archive.org holds snapshots of many public profiles and posts. On the check date the most recent capture of the NASA profile was 15 days old. Useful for "what did this account say last month", not for anything current.

Search engines. Google's cached-page feature was retired in 2024, so there is no cache link to click. Search results still index many public posts, and a quoted search for a phrase plus site:x.com can find a post, but you land back on x.com to read it.

Third-party "Twitter viewer" sites. Search for "twitter viewer" and you will find many sites promising anonymous browsing, story viewing or downloads. Be careful with them. None has an arrangement with X, most are ad-heavy, some ask you to log in with your X account (which defeats the purpose and hands over a session), and many are thin wrappers that break or change hands without notice. Never enter X credentials into a site that is not x.com.

RSS. Nitter's RSS feeds were the usual route to following an account in a feed reader. Many instances had disabled RSS long before the shutdown, because a feed reader polling every few minutes is a load an account-backed instance cannot afford. There is no dependable free RSS source for X accounts today.

How developers read public posts without logging in

If you are writing code, the question changes from "can I see it" to "can I fetch it reliably and within the rules". X keeps a few public, unauthenticated surfaces running because publishers depend on them for embeds. None of them is a documented data API, and each can change without notice.

oEmbed, for rendering one post

GET https://publish.twitter.com/oembed?url=https://x.com/jack/status/20

This is X's documented oEmbed endpoint. It needs no key and returns the author's name and profile URL plus an HTML <blockquote> holding the post text, a permalink and a date. There are no counts, no structured timestamp and no media URLs. If your requirement is "display the post a user pasted", this is the right tool, and it is the one X intends you to use.

The syndication endpoint, for one post as JSON

GET https://cdn.syndication.twimg.com/tweet-result?id=<id>&token=<token>

This serves the data behind embedded posts: text, created_at, favorite_count, conversation_count, entities, photos, and a small user object with the name, handle, avatar and verification flag. It carries no follower counts and no repost count.

One behaviour catches almost everyone. Without a token parameter, the endpoint answers 200 with a two-byte body, {}. It is not an error, and a parser that reads {} as "a post with no text" will ship that conclusion quietly. X's own embed script derives the token from the post id:

const token = (id) => ((Number(id) / 1e15) * Math.PI).toString(36).replace(/(0+|\.)/g, '');

On the check date any non-empty token returned the full post, but send the real value anyway. If X starts validating it, a lazy token fails silently with that same {}.

The embedded timeline, for an account's posts

GET https://syndication.twitter.com/srv/timeline-profile/screen-name/<handle>

This is the server-rendered page behind X's embeddable profile timeline, with its data in a __NEXT_DATA__ script tag. On the check date it returned 20 posts for NASA, each with text, like, repost, quote and reply counts, plus a full author object including the follower count. The catches: there is no cursor, so 20 is the ceiling. The 20 are not always the 20 most recent. And it throttles fast: it starts refusing after roughly 30 requests and has taken more than 12 minutes to recover. It is a widget, not an API, and X has restricted it before.

Checked on 2026-09-25

Surface Result What you get
x.com/<handle>/status/<id>, logged out 200 Full post and counts in the page
x.com/<handle>, logged out 200 Profile counts and the latest five posts
publish.twitter.com/oembed 200 Author and blockquote HTML, no counts
tweet-result, with token 200 Post JSON with like count
tweet-result, without token 200, body {} Nothing, silently
srv/timeline-profile 200 20 posts with counts, author with followers
api.fxtwitter.com 200 Cached post JSON

Scraping a logged-out page and using an account are different postures, legally as well as technically. Most of the case law turns on whether you agreed to terms by logging in, which is the ground Nitter's account sessions put it on. Logged-out scraping and terms of service covers the distinction, and is web scraping legal? covers the broader picture.

The official X API: what it costs in 2026

X's developer docs now say: "The X API uses pay-per-usage pricing. No subscriptions—pay only for what you use." The documentation lists no subscription tiers and no free tier. You buy credits in advance and each call draws them down.

The per-unit prices, from X's pricing documentation and the public pricing endpoint its console uses:

Unit Price (USD)
Post read $0.005 per post returned
User read $0.01 per user returned
Post create $0.015
Post create with a link $0.20
Trends $0.01

Two things make the arithmetic bigger than it looks. Billing is per resource returned, not per request, so a timeline call that returns 100 posts is 100 post reads, or $0.50. And pay-per-use accounts are capped at 3 million post reads per monthly billing cycle. Above that, the only route is an Enterprise contract.

Rate limits sit on top of billing, in 15-minute windows. For app-level access, single-post lookup (GET /2/tweets/:id) allows 450 requests, recent search 450, and a user's timeline (GET /2/users/:id/tweets) 10,000. Recent search returns at most 100 posts per request.

That is a real price rather than a scandal. For a business that needs replies, search, history and a contract with the platform, it is the only fully sanctioned route. It is just very different from free, and worth pricing out before you design around it.

Three levels of difficulty, not one

"Read X without an account" is really three questions:

  1. One post by id or link. Solved several ways: the logged-out page, oEmbed, the syndication endpoint, a link-fixer. Pick one and keep a fallback.
  2. An account's recent posts. Partly solved. The logged-out profile shows a few posts and the embedded timeline shows up to 20. Both are rendering surfaces that throttle and change.
  3. Search, replies, full history. Not available logged out in any durable form. With Nitter gone, this is the official API or nothing.

Where a data API fits

If you need the first two levels in code and do not want to maintain the fallbacks yourself, that is what a scraping API such as TrueScrape does. It reads the same public, logged-out surfaces described above, returns them in one consistent JSON shape, and handles the token, the empty-body trap and the throttling. It does not reach the third level. Replies and search need an account, and TrueScrape does not use one, by design. Requests that fail or come back empty are not charged. The endpoints and their exact output are in the API docs.

If your need is replies, search or guaranteed coverage of every post an account makes, the official X API is the right answer and this is not.

The short version

  • Logged out, x.com shows a single post in full and a profile's latest few posts. Timelines, replies and search need an account.
  • Nitter's repository was archived on 11 September 2026 after a cease-and-desist from X, and XCancel suspended service on 15 September. Surviving instances run on personal X accounts, sit behind bot challenges, and should not be relied on.
  • For a single post in code, use oEmbed or the syndication endpoint, and send the token, or you get a silent {}.
  • The official X API is pay-per-use: $0.005 per post read and $0.01 per user read, capped at 3 million post reads a month before Enterprise.
  • Avoid third-party viewers that ask for your X login.

Sources

All checked 2026-09-25.

Everything described here runs on the same API. You are never charged for a failed request, an empty result, or a cache hit.