CatchSEO

URL filter syntax

Every filter on catchseo.com auction pages is encoded in the URL. URLs are stable, shareable, and indexed by Google. This page is the complete reference.

Equality

The simplest filter: field equals (or does not equal) a single value.

SyntaxExampleMeaningStatus
?f=value?tld=comequalsimplemented
?f=!value?tld=!parkednot equalsimplemented

Lists (IN / NOT IN)

Match against multiple values at once. Use a comma to separate values.

SyntaxExampleMeaningStatus
?f=v1,v2,v3?tld=com,net,orgin list (any of these values)implemented
?f=!v1,!v2?tld=!parked,!squattednot in list (none of these values)implemented
Mixing rule: all items in a list must have the same negation. Mixed lists like ?tld=!com,net are rejected.

Numeric ranges

Use a hyphen to separate the lower and upper bounds. Omit a bound to leave that side open.

SyntaxExampleMeaningStatus
?f=N-M?dr=50-100between N and M (inclusive both sides)implemented
?f=N-?dr=50-at least N (open upper bound)implemented
?f=-M?dr=-100at most M (open lower bound)implemented

The >= and <= operators aren't part of the URL syntax — ranges always use the hyphen form (100-500).

Text matching

Use * as a wildcard for substring or prefix matching on string fields.

SyntaxExampleMeaningStatus
?f=*sub*?domain=*shop*contains substringexperimental
?f=!*sub*?domain=!*xxx*does not contain substringexperimental
?f=prefix*?domain=crypto*starts with prefiximplemented
?f=!prefix*?domain=!parked*does not start with prefiximplemented

ENDS WITH (?f=*suffix) is reserved syntax — Meilisearch doesn't support it yet. It will light up when they add the operator.

Existence / null / empty

Three distinct operators matching different "absence-like" states. Useful for power queries like "show me auctions without Ahrefs data yet."

SyntaxExampleMeaningStatus
?f=*?ahrefsData=*field key exists (any value, including null/empty)implemented
?f=!*?ahrefsData=!*field key is entirely missingimplemented
?f=null?ahrefsData=nullfield key is present but value is nullimplemented
?f=!null?ahrefsData=!nullfield key is present and value is not nullimplemented
?f=empty?notes=emptyfield value is empty ("", [], or {})implemented
?f=!empty?notes=!emptyfield value is not emptyimplemented
The three are distinct:
  • !* (NOT EXISTS) — the field key is entirely missing from the document
  • null (IS NULL) — the field key is present but its value is literal null
  • empty (IS EMPTY) — the field key is present but its value is "", [], or {}

Sort & multi-sort

Sort by one or more columns. Use a dot to separate the column id from the direction. For multi-column sort, separate entries with a comma — the first entry is the primary sort, subsequent ones break ties.

SyntaxExampleMeaningStatus
?sort=col.asc?sort=godaddyData.auctionEndTime.ascsort ascending by one columnimplemented
?sort=col.desc?sort=godaddyData.price.descsort descending (nested-path safe)implemented
?sort=col1.dir,col2.dir?sort=dr.desc,godaddyData.price.ascmulti-column sort (primary, secondary, …)implemented
Nested column paths work: the parser uses a last-dot rule, so godaddyData.price.desc correctly resolves to { id: "godaddyData.price", desc: true }. Any depth of nesting is fine.

Combining filters

Combine multiple filters by joining them with & — standard URL query string syntax. Filters across different fields are AND-joined.

/auctions?tld=com,net&dr=50-100&godaddyData.price=0-500&sort=godaddyData.auctionEndTime.desc

Reads as: TLD in (com, net) AND DR between 50 and 100 AND price between 0 and 500, sorted by auction end descending.

Cross-field OR is not expressible in the URL — filters across different fields always combine with AND.

Reserved / unsupported syntax

These patterns are intentionally not in the active grammar but are reserved at the parser level so adding them later won't break existing URLs.

PatternWhy not
?f=>N or ?f=<MStrict comparison. Use the hyphen form with an integer offset (?f=51- for > 50) — our filterable fields are all integers, so this is semantically equivalent and stays SEO-clean.
?f=>=N or ?f=<=MExplicit inclusive comparison. The hyphen form (?f=N-, ?f=-M) is the canonical form.
?f=*suffixENDS WITH operator. Meilisearch doesn't support it yet; reserved in the grammar for the day they add it.
?f=N-M,P-QDisjoint ranges (union). Not currently supported; reserved syntax.
?f=~patternRegex matching. Postgres supports it but Meilisearch doesn't; reserved character.
?location=geo:lat,lng,radiusGeo-radius filtering. Reserved for the day we have geo data on auctions.
?q="<expression>"Compound cross-field expressions ((dr>50 AND bl>100) OR …) aren't part of the URL syntax.

Bookmark, share, automate

Filters live entirely in the URL, and every filter combination has exactly one canonical address — so a bookmarked or shared link always reproduces the exact same view.

Want to keep a view without managing URLs? Save it as a Saved Search from the toolbar — and turn on alerts to get an email when new domains match it.