How to See Old Tweets: Four Methods, Ranked by How Far Back They Reach

7 min readSocialAPI Engineering

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 thesewhat 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? Nowhat 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 limitslogged-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 goexport 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.