Last updated October 1, 2026
Short answer: type your search followed by since:YYYY-MM-DD until:YYYY-MM-DD into the X search bar, for example from:nasa since:2026-01-01 until:2026-02-01, then open the Latest tab. since: includes its date and until: stops just before its date. If you'd rather fill in a form, use X's Advanced Search or our free Twitter advanced search builder.
This guide covers the exact syntax, how to narrow a date search to one account, how to add filters for likes, media and language, and why some posts don't show up.
X search has a small set of date operators. You type them into the normal search bar, with or without other words. Dates are written as year, month and day separated by hyphens.
| Operator | What it does | Example |
|---|---|---|
since: | Posts on or after this date (the date is included). | since:2026-01-01 |
until: | Posts before this date (the date is not included). | until:2026-02-01 |
since_time: | Posts on or after a Unix timestamp, in seconds. | since_time:1767225600 |
until_time: | Posts before a Unix timestamp, in seconds. | until_time:1767229200 |
within_time: | Posts from the last few days, hours or minutes. | within_time:2d |
since_id: | Posts newer than a given post ID. | since_id:1234567890 |
max_id: | Posts at or older than a given post ID. | max_id:1234567890 |
The one rule that trips people up: until: is exclusive. A search for since:2026-01-01 until:2026-01-31 misses everything posted on January 31. Write until:2026-02-01 to cover the whole month.
X doesn't document which time zone the dates use. Community testing generally finds they are UTC days, so a post you made late in the evening in New York can land on the next day. When the boundary matters, use since_time: and until_time: with Unix seconds. Some people also use the longer form since:2026-01-01_09:00:00_UTC, but Unix seconds are the most predictable.
Set since: to the day you want and until: to the day after. These all work in the X search bar:
eclipse since:2024-04-08 until:2024-04-09 "world cup" since:2022-12-18 until:2022-12-19 #SuperBowl since:2026-02-08 until:2026-02-09 lang:en
For a single hour or a few minutes, switch to timestamps. A Unix timestamp is the number of seconds since January 1, 1970 (UTC). For example, 1767225600 is midnight UTC on January 1, 2026, so since_time:1767225600 until_time:1767229200 covers the first hour of 2026.
Add from:and the username (without the @) to your date range. This is the fastest way to answer “what did this account post that week?”
from:nasa since:2026-01-01 until:2026-02-01 from:nasa since:2026-01-01 until:2026-02-01 -filter:replies to:nasa since:2026-01-01 until:2026-01-08 @nasa since:2026-01-01 until:2026-01-08
The first line returns everything the account posted in January. The second hides its replies so you only see its own posts. to: finds replies sent to the account, and @username finds any post that mentions it. Protected accounts only show up if you follow them. If an account has changed its username, search with the current one.
Looking for posts from years ago? See our guide on how to search old tweets, which also covers downloading your own archive.
Date operators combine with every other X search operator. Put them in any order, separated by spaces. The most useful ones:
| Filter | Operator | Example |
|---|---|---|
| Minimum likes | min_faves: | min_faves:500 |
| Minimum reposts | min_retweets: | min_retweets:100 |
| Minimum replies | min_replies: | min_replies:20 |
| Has photos or video | filter:media | also filter:images, filter:videos |
| Has a link | filter:links | filter:links |
| No replies | -filter:replies | -filter:replies |
| Language | lang: | lang:en |
| Exact phrase | "..." | "rate cut" |
| Either word | OR | bitcoin OR btc |
| Exclude a word | -word | apple -fruit |
| Include reposts | include:nativeretweets | reposts are left out by default |
Some combined examples:
from:nasa since:2026-01-01 until:2026-02-01 filter:media bitcoin since:2026-01-01 until:2026-01-08 min_faves:1000 lang:en "product launch" since:2026-03-01 until:2026-04-01 filter:videos -filter:replies
Typing these by hand gets fiddly. Our free Twitter advanced search toolbuilds the query from a simple form, so you don't have to remember the syntax.
X has its own form for this. It's available on x.com in a browser when you're logged in. X says it can search posts from any date since the first public post.
The form simply writes operators into the search box for you, so you can see and edit the since: and until:it created. The X mobile apps don't have the form. On iOS or Android, type the operators straight into the search bar.
X search opens on Top, which shows a selection of posts ranked by engagement. For a date search that usually means a handful of popular posts and lots missing. Latest shows every matching post, newest first. If you share a search link, adding &f=live to the URL opens it on Latest.
A post can be real and still not show up in search. Common reasons:
| Reason | What to try |
|---|---|
| You're on the Top tab | Switch to Latest. |
| It's a repost | Add include:nativeretweets, or use filter:nativeretweets to see only reposts. |
| The account is protected | Only followers can find its posts. |
| The post was deleted | It's gone from search. See how to see deleted tweets. |
| The account is search banned | Check it with the free shadowban checker. |
| Sensitive content is hidden | Turn off the hide-sensitive-content option in your search settings. |
| The date boundary is off | Move until: one day later, or use Unix timestamps. |
If you have a post's link but not its date, the post ID (the long number at the end of the link) gives it away. Since late 2010, X post IDs encode the moment they were created: shift the ID right by 22 bits and add 1288834974657 to get the time in milliseconds since 1970 (UTC). You can also use post IDs as search boundaries with since_id: and max_id:. If an account changed its username, its numeric user ID stays the same; look it up with our free Twitter ID finder. To read a long thread you found in a date search on one page, open it in the thread reader.
The same operators work through the twitr.sh x_search tool, with no X account, API key or signup. Send the query as a flat JSON body:
curl -X POST https://twitr.sh/api/tools/x_search \
-H 'content-type: application/json' \
-d '{"q":"from:nasa since:2026-01-01 until:2026-02-01","queryType":"Latest","resultsLimit":20}'
# → HTTP 402 Payment Required with the exact price
# ($0.0012 per returned tweet, so about $0.024 for 20)
# → pay with any x402 or MPP wallet and send the same request again
# → 200 with the postsresultsLimit caps what you can be billed. Agents in Claude Code, Cursor or any MCP client can call the same search as the x_searchtool. To pull an account's recent posts in order, use x_timeline. See all tools and pricing.
Type your keywords followed by since:YYYY-MM-DD and until:YYYY-MM-DD into the X search bar, for example: climate since:2026-01-01 until:2026-02-01. Press Enter, then open the Latest tab to see every matching post in time order instead of a ranked selection.
No. since: includes the date you give it, but until: stops just before its date. To include all of January 31, write until:2026-02-01. To search a single day, set until: to the day after since:, like since:2026-03-14 until:2026-03-15.
Combine from: with a date range: from:nasa since:2026-03-14 until:2026-03-15. Use the username without the @. This only works for public accounts, or protected accounts you follow.
Yes. since_time: and until_time: take a Unix timestamp in seconds, for example since_time:1767225600 until_time:1767229200 for one hour. Many people also use the format since:2026-01-01_09:00:00_UTC, but Unix seconds are the most predictable.
X doesn't document it. Community testing generally finds that the dates are read as UTC days. If the exact boundary matters, for example around midnight in your time zone, use since_time: and until_time: with Unix seconds instead.
Yes, but not with a form. The Advanced Search form is on x.com in a browser. In the iOS or Android app, type the operators (since:, until:, from:) straight into the search bar. They work the same way.
You are probably on the Top tab, which shows a ranked selection. Switch to Latest. Results also leave out deleted posts, protected accounts you don't follow, suspended accounts, reposts (unless you add include:nativeretweets) and accounts that X filters from search.
X says its search covers posts from any date since the first public post in 2006. Very old results can still be incomplete, so if something is missing, narrow the range or add a keyword from the post.
Yes. Add an engagement filter such as min_faves:1000 (at least 1,000 likes) or min_retweets:500 to your date range. For example: bitcoin since:2026-01-01 until:2026-01-08 min_faves:1000.
On x.com, yes: X's search and Advanced Search work only when you're logged in. To run date searches from code without an X account, the twitr.sh x_search tool takes the same operators and is paid per call.
POST the query to https://twitr.sh/api/tools/x_search with a JSON body like {"q":"from:nasa since:2026-01-01 until:2026-02-01","queryType":"Latest","resultsLimit":20}. The first response is HTTP 402 with the exact price; pay it with an x402 or MPP wallet and send the request again to get the posts.