How to See Old Tweets: Four Methods, Ranked by How Far Back They Reach
How to See Old Tweets: Four Methods, Ranked by How Far Back They Reach
Everyone starts by scrolling, and scrolling has a ceiling.
On an active account you will hit it within a few thousand posts — the timeline stops loading, or loads so slowly that it amounts to the same thing. ★And the ceiling is not a fixed number: it depends on the account, the session, and the day.★
Four methods reach different distances. Here they are in order, with what each one actually gets you.
The four methods
| Method | Reaches | Effort |
|---|---|---|
| Scrolling | ★A few thousand posts, unreliably★ | Low |
| Date-range search | ★Shallower than you expect★ | Low |
| Your own archive | ★Everything you ever posted★ | One request, then wait |
| Cursored paging | ★As deep as the timeline allows★ | Code |
⚠️ ★The counter-intuitive one is date-range search.★ People assume since: and until: reach into the deep past — they narrow within what search can already see, ★and search skews strongly recent★. How date search really behaves.
Cursored paging is the method that scales — one call per page, following the cursor.
Finding the first post without scrolling to it
This is the question underneath a lot of "how do I see old tweets" searches, and scrolling is genuinely the wrong tool for it.
★Page to the end and keep only the last page.★ You are not reading the timeline — you are walking it to find its far edge.
import requests
BASE = "https://api.socialapi.tech"
KEY = "your_api_key"
HDRS = {"X-API-Key": KEY}
def oldest_posts(username, max_pages=200):
"""Walk to the end of a timeline. Returns the last page reached."""
cursor, last, pages = None, [], 0
while pages < max_pages:
params = {"username": username, "limit": 100}
if cursor:
params["cursor"] = cursor
r = requests.get(f"{BASE}/v1/user/last_tweets",
params=params, headers=HDRS, timeout=60)
r.raise_for_status()
body = r.json()
batch = body["data"]
if not batch:
break # ★end reached★
last, pages = batch, pages + 1
cursor = body.get("meta", {}).get("next_cursor")
if not cursor:
break # ★no cursor = genuinely the end★
return last, pages
posts, pages = oldest_posts("someaccount")
print(f"walked {pages} pages; oldest here: {posts[-1]['created_at']}")
★Note the two separate stop conditions.★ An empty batch and a missing cursor are different signals, and ★code that only checks one will either stop early or loop★ — the most common bug in paging code.
The cost is page count, not difficulty. ★A 2,000-post account is 20 pages; a 200,000-post account is 2,000★ — which is why "find the first post" is cheap for most accounts and expensive for a handful.
The cursor comes back with every page — storing it is what makes a walk resumable.
What each method misses
Being specific, because the gaps are what waste people's time:
Scrolling misses everything past the ceiling — and ★gives no signal that a ceiling was hit★. It just stops.
Search misses the deep past. ★A date range in 2019 will return far less than existed★, and the shortfall is silent.
Your archive misses other people's posts. ★It is complete for you and useless for anyone else★ — and it must be requested before you delete anything.
Paging misses whatever the platform no longer serves. ★There is a real floor★, and no method goes below it — what archive depth means.
⚠️ ★No method reaches deleted posts.★ A post removed before you captured it is gone from every one of these — what survives deletion.
Questions people ask
How do I see old tweets? ★Page the timeline with a cursor★, or scroll if it is a small account. Search will not reach far back.
How can I see old tweets? Same answer. ★Scrolling has a ceiling that varies by account and gives no warning when you hit it.★
How do I look at old tweets? Page to them. ★The cost is the number of pages, not the difficulty.★
How do you find old tweets on Twitter? Cursored paging for depth, search for a known phrase. ★Use search when you remember the wording.★
How do I see old tweets on Twitter without scrolling? ★Page programmatically★ — that is precisely what removes the scrolling limit.
How do I find my own old tweets? Request your official archive — ★it is the only complete copy of your history★.
How do I find someone else's old tweets? Page their timeline. ★No archive exists for accounts you do not own.★
How do I find an account's first tweet? Walk to the end of the timeline and keep the last page. ★No shortcut exists.★
Is there a first-tweet finder? Tools with that name do this same walk. ★There is no index of first posts.★
Why does scrolling stop working? The timeline stops serving more. ★The ceiling is not a published number★ and varies.
How far back can I actually go? Deeper by paging than by scrolling or searching, ★with a real floor★ — the depth reality.
Why does date search return so little? ★Search skews recent, and dates narrow within that★ — why.
Can I search old tweets by keyword? Yes, if they are still in the index. ★Quoted exact phrases work best.★
How do I search past tweets from one person?
from:username plus your terms — ★that searches; paging enumerates★.
How do I see tweets from a specific year?
since: and until: bracketing that year — ★expect an incomplete result★.
Can I get all of an account's tweets? As many as the timeline serves. ★"All" is not guaranteed by anyone.★
How many pages is a large account? Roughly post count divided by page size — ★a 200,000-post account is thousands of pages★.
Should I store what I page? ★Yes.★ Walking a large timeline twice is pure waste — store on the first pass.
How do I resume an interrupted walk? Save the cursor. ★Restarting from the top re-fetches everything.★
What ends a paging loop? ★An empty batch or a missing cursor — check both★, since they are different signals.
Do deleted tweets appear when paging? No — what happens to deleted posts.
Can I see old tweets from a suspended account? No. ★Suspension removes the account and its posts from public view.★
Can I see old tweets without an account? Some, with heavy limits — logged-out access.
Do old tweets still gain engagement? Yes, indefinitely — ★which is why old posts keep accruing likes★.
How do I export old tweets once I find them? Write each page as you go — export patterns.
Are replies included when paging?
Depends on the view. ★Filtering the timeline with exclude drops them★ — the distinction.
Why do two tools show different "oldest" posts? Different depths reached. ★Neither is authoritative★ — depth is a function of effort.
Can I find old tweets by media? Use the media views — ★they are separate indexes★ — why that matters.
Is there a limit on how far back the API goes? ★A real floor exists★, and it is the platform's, not the provider's.
What is the fastest way to a specific old tweet? ★Search its exact wording in quotes.★ Paging is for enumeration; search is for recall.
Can I automate finding first tweets for many accounts? Yes — one walk each. ★Budget by total posts, not by account count.★
The short version
★Scrolling has a ceiling that varies and gives no warning. Date search reaches shallower than people expect. Paging with a cursor is the method that scales.★
★To find an account's first post, walk to the end and keep the last page★ — the cost is page count, and for most accounts that is small.
Our API pages timelines with cursors, returning full text and engagement on every post, so a walk is a loop with two stop conditions. Read-only, flat price per call.
★What no method reaches: posts deleted before anyone captured them, and whatever sits below the platform's own floor.★ Both are real limits, and any provider claiming otherwise is describing an archive they built rather than something X serves.
Related reading: what archive depth really means · why date-range search underdelivers · what survives deletion · exporting what you collect.