← Blog

X search operators: from, since, until, min_faves

twitter.fetcher.sh search passes X operators through. from: and since: are the product, not a slogan about APIs.

A monitor filled with source code in a dark room
Photo by Kevin Ku on Unsplash.

X search is a language. from:, to:, since:, until:, min_faves:, filter: — those tokens are how you say “this account, this window, skip replies.” twitter.fetcher.sh search sends them through to X’s own search.

This is not the consumer search UI, and it is not a second “without official API” essay. That access story is Twitter/X public data. Google’s site: and filetype: are a different family on google.fetcher.sh. Do not mix them.

A query is still just query=. Put the operators in that string; do not invent extra HTTP parameters for from or since. If search returns nothing, the operator is usually wrong, not the host.

Operators the endpoint accepts

The host’s own examples are the right ones: everything from an account (from:OpenAI), a date window (x402 since:2026-01-01 until:2026-02-01), popular posts only (ai agents min_faves:500 -filter:replies). Sort Latest or Top as the endpoint allows.

curl -H 'Authorization: Bearer bby_live_…' 'https://twitter.fetcher.sh/api/search?query=from:OpenAI%20since:2026-01-01&sort=Latest'

-filter:replies is how you drop replies. Quotes are how you pin a phrase. from: is an account, not a free-text author name. Dates on since: and until: follow X’s own search grammar — if you invent a timestamp format, you get silence.

Brand monitoring and crypto/policy watch reuse these operators. Learn the language here, then point it at a job.

Google operators are a different language

site: and filetype: belong on google.fetcher.sh. from: belongs here. Mixing them in one query is how you get empty results and blame the host.

site:x.com OpenAI on Google is a SERP about pages. from:OpenAI on this host is tweets from an account. Both can be useful. They are not interchangeable. OSINT workflows that need both should issue two GETs, not one confused string.

A case: a week of one account, no replies

A policy analyst wants everything @OpenAI posted in January, not the quote-tweet pile, sorted latest-first.

The query is from:OpenAI since:2026-01-01 until:2026-02-01 -filter:replies. That is one string. They page through results. They do not scrape the profile UI. They do not ask Google site:x.com and hope.

They still resolve the handle if they later want a timeline path that wants an id. Search operators do not replace handle resolution. They replace a week of scrolling.

A case: “popular only” without a dashboard

A newsroom wants posts about ai agents that already moved, not the entire firehose of mentions.

ai agents min_faves:500 -filter:replies, sort Top. That is a blunt instrument and it is honest about it. It is not an engagement dashboard. It is a filter. They pair it with a News pass when they need headlines, because faves are not a journal.

If the keyword is also a ticker slang, they quote the phrase and they still skim. Operators reduce the pile. They do not understand your beat for you.

to: is useful when the public conversation is happening at an account. It is not a DM. Combined with since: it is “what did people publicly ask this lab last week.” Combine too many operators and you get silence; add them one at a time. min_faves: is a popularity floor, not quality. A ratioed post can still clear 500 faves.

Date windows that span years will feel like a firehose even with from:. Page, store ids, stop when you have the story. We do not sell a full historical archive as a dump file.

A policy desk that uses this weekly should keep a small library of query strings, not a blank search box. from:thelab since:last-monday -filter:replies is a ritual. min_faves: is for “what already moved.” Quoted phrases are for terms of art. If a query returns nothing, remove operators from the right until it returns something, then add back. That is debugging the language, not the host.

Google still does not speak from:. Two GETs if you need both worlds.

Keep Google’s tokens off this host

site: and filetype: belong on google.fetcher.sh. from: belongs here. Docs on twitter.fetcher.sh. Same payment as every other search on the catalog. If a query returns nothing, paste it into X’s own search UI before you file a bug — the language is X’s, passed through. Keep a gist of known-good queries next to the cron. Operators are easier to copy than to reinvent under deadline. until: is exclusive in the way X documents it — if a day is missing, check the grammar before you assume the host dropped tweets. Keep Google’s site: in the other tab.