Filter Cookbook

Complete reference for the 12 filter types, per-index filterable fields, AI label taxonomy, and ready-to-use filter recipes.

For an overview of the Search endpoints and how filters fit into the Studio API pipeline, see the Search guide.

Base URL: https://api.mbd.xyz/v3/studio Auth: Authorization: Bearer <your-console-api-key> — get your key from the Embed Console

All YOUR_API_KEY placeholders in this guide refer to your console API key (starts with mbd-).


How Filters Work

Every search request (/search/filter_and_sort and /search/boost) accepts three filter arrays:

ArrayLogicEffect
includeAND — all must matchA document must satisfy every include filter
excludeNOT — any match removesA document matching any exclude filter is removed
boostSHOULD — soft relevanceMatching documents get a score multiplier (boost endpoint only)

Combined logic: (include[0] AND include[1] AND ...) AND NOT (exclude[0] OR exclude[1] OR ...)

Each filter object always has filter (the type) and field. Other properties depend on the type.


Quick Reference: All 12 Filter Types

TypeDescriptionKey Properties
termExact match on a single keyword valuefield, value (string/boolean)
termsMatch any of multiple values (OR)field, value (string array)
numericRange comparison on a number fieldfield, operator, value (number)
matchFull-text keyword searchfield, value (string array)
dateDate range filteringfield, value ({ date_from?, date_to? })
geoGeographic distance filteringfield, value (["geo:lat,lon"])
is_nullField is null or missingfield
not_nullField exists and has a valuefield
customRaw Elasticsearch query clausefield, value (ES query object)
group_boostHierarchical boosting from lookup indexlookup_index, field, value, group
terms_lookupMatch against terms from another ES documentlookup_index, field, value, path
console_accountMatch against console account datafield, value, path

Filter Type Reference

term

Exact match on a keyword field. The field value must exactly equal the specified value.

Required: field, value (string or boolean)

{ "filter": "term", "field": "active", "value": true }
{ "filter": "term", "field": "lang", "value": "en" }
{ "filter": "term", "field": "featured", "value": true }

Use with: include (only active markets), exclude (remove closed markets), boost (boost featured items)


terms

Multiple values where at least one must match (OR logic within the filter). Useful for filtering by several categories, channels, or labels at once.

Required: field, value (array of strings)

{ "filter": "terms", "field": "ai_labels_med", "value": ["mbd2:t_science_technology", "mbd2:t_sports"] }
{ "filter": "terms", "field": "channels", "value": ["dev", "crypto", "ai"] }
{ "filter": "terms", "field": "lang", "value": ["en", "es", "fr"] }

Use with: include (match any of these labels), exclude (remove posts in any of these channels)


numeric

Range comparison on numeric fields. Supports >, >=, <, <= operators.

Required: field, operator, value (number)

{ "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 10000 }
{ "filter": "numeric", "field": "volume_24hr", "operator": ">=", "value": 50000 }
{ "filter": "numeric", "field": "user_score_spam", "operator": "<", "value": 0.5 }

Field name gotchas (Polymarket):

  • Use liquidity_num not liquidityliquidity can be null and will silently miss results.
  • Use ai_labels_med not ai_labels — the field ai_labels does not exist.
  • Use slug not market_slugmarket_slug does not exist.

Tip: Combine two numeric filters on the same field to create a range:

[
  { "filter": "numeric", "field": "liquidity_num", "operator": ">=", "value": 5000 },
  { "filter": "numeric", "field": "liquidity_num", "operator": "<=", "value": 500000 }
]

match

Full-text search on text fields. Matches documents containing any of the specified keywords (analyzed, not exact).

Required: field, value (array of keywords)

{ "filter": "match", "field": "question", "value": ["election", "president"] }
{ "filter": "match", "field": "text", "value": ["bitcoin", "ethereum"] }
{ "filter": "match", "field": "zora_description", "value": ["art", "generative"] }

Difference from term/terms: match uses Elasticsearch's full-text analyzer (tokenization, stemming). Use term/terms for exact keyword-field matches; use match for natural-language text search.


date

Range filtering on date fields. Provide an object with date_from and/or date_to in ISO 8601 format.

Required: field, value (object with date_from and/or date_to)

{
  "filter": "date",
  "field": "end_date",
  "value": {
    "date_from": "2026-03-01T00:00:00Z",
    "date_to": "2026-06-30T23:59:59Z"
  }
}
{
  "filter": "date",
  "field": "item_creation_timestamp",
  "value": {
    "date_from": "2026-02-01T00:00:00Z"
  }
}
{
  "filter": "date",
  "field": "zora_created_at",
  "value": {
    "date_from": "2026-02-05T00:00:00Z",
    "date_to": "2026-02-12T23:59:59Z"
  }
}

Date fields by index:

  • polymarket-items: created_at, updated_at, end_date, start_date, game_start_time
  • polymarket-wallets: updated_at
  • farcaster-items: item_creation_timestamp
  • zora-coins: zora_created_at, zora_updated_at

geo

Geographic distance filtering on geo-point fields. Values use the geo:lat,lon string format.

Required: field, value (array of "geo:lat,lon" strings)

{ "filter": "geo", "field": "location", "value": ["geo:40.7128,-74.0060"] }

Applicable index: farcaster-items (field: location)


is_null

Finds documents where the specified field is null or missing. No value needed.

Required: field

{ "filter": "is_null", "field": "zora_creator_farcaster_id" }
{ "filter": "is_null", "field": "zora_media_content_type" }

Use with: include (find items without a field), exclude (remove items missing a field — equivalent to not_null in include)


not_null

Finds documents where the specified field exists and has a value. No value needed.

Required: field

{ "filter": "not_null", "field": "user_id" }
{ "filter": "not_null", "field": "zora_creator_farcaster_id" }

custom

Pass a raw Elasticsearch query clause for advanced use cases not covered by other filter types. The field property is ignored; the value is the ES query object.

Required: field (ignored), value (Elasticsearch query object)

{
  "filter": "custom",
  "field": "_",
  "value": {
    "wildcard": {
      "question": {
        "value": "*bitcoin*"
      }
    }
  }
}

Use sparingly. Prefer the structured filter types when possible — they're validated and optimized.


group_boost

Hierarchical boosting from a lookup index. Items found in lower-numbered groups get higher boost values. Only used in boost arrays.

The filter looks for paths {group}_01, {group}_02, ..., {group}_n in the lookup document, applying boost values that decrease linearly from max_boost (first group) to min_boost (last group).

Required: lookup_index, field, value, group Optional: min_boost (default 1), max_boost (default 5), n (default 10)

{
  "filter": "group_boost",
  "lookup_index": "polymarket-wallets",
  "field": "ai_labels_med",
  "value": "0xf68a281980f8c13828e84e147e3822381d6e5b1b",
  "group": "primary_labels",
  "min_boost": 1,
  "max_boost": 5,
  "n": 10
}

This boosts markets matching the user's top label groups — items matching primary_labels_01 get boost 5, items matching primary_labels_10 get boost 1.


terms_lookup

Filter using terms from another Elasticsearch document. Retrieves a list of values from a specified path in a lookup document and uses them to match the current index.

Required: lookup_index, field, value, path

{
  "filter": "terms_lookup",
  "lookup_index": "polymarket-wallets",
  "field": "ai_labels_med",
  "value": "0xf68a281980f8c13828e84e147e3822381d6e5b1b",
  "path": "primary_labels"
}

This filters items to match the user's primary label preferences from their wallet profile.

{
  "filter": "terms_lookup",
  "lookup_index": "following-graph",
  "field": "user_id",
  "value": "12345",
  "path": "following"
}

This filters farcaster-items to only show posts from users that FID 12345 follows.

Common lookup indices: polymarket-wallets, user-prefs, following-graph


console_account

Filter using data from a console account document in the console-accounts index. Commonly used for organization-level blacklists and whitelists.

Required: field, value (console account ID), path

{
  "filter": "console_account",
  "field": "user_id",
  "value": "account_123",
  "path": "blacklist"
}

Common paths: include_user_ids, include_item_ids, exclude_user_ids, exclude_item_ids, blacklist


Filterable Fields by Index

polymarket-items

FieldTypeCompatible FiltersDescription
questiontextmatchMarket question text
descriptiontextmatchMarket description
activekeywordtermMarket is active (boolean)
archivedkeywordtermMarket is archived
closedkeywordtermMarket is closed
approvedkeywordtermMarket is approved
featuredkeywordtermMarket is featured
fundedkeywordtermMarket is funded
restrictedkeywordtermMarket is restricted
neg_riskkeywordtermNegative risk market
newkeywordtermRecently created market
best_asknumericnumericBest ask price
last_trade_pricenumericnumericLast trade price
liquiditynumericnumericMarket liquidity (USD) — can be null, use liquidity_num for filtering
liquidity_numnumericnumericLiquidity (always populated — recommended for filters)
spreadnumericnumericBid-ask spread
volumenumericnumericTotal volume (USD)
volume_24hrnumericnumeric24-hour volume
volume_1wknumericnumeric1-week volume
volume_1monumericnumeric1-month volume
volume_1yrnumericnumeric1-year volume
volume_numnumericnumericVolume (numeric)
one_hour_price_changenumericnumeric1-hour price change
one_day_price_changenumericnumeric24-hour price change
one_week_price_changenumericnumeric7-day price change
one_month_price_changenumericnumeric30-day price change
item_idkeywordterm, termsMarket item ID
market_maker_addresskeywordterm, termsMarket maker address
sports_market_typekeywordterm, termsSports market category
created_atdatedateMarket creation date
updated_atdatedateLast update date
end_datedatedateMarket end/resolution date
start_datedatedateMarket start date
game_start_timedatedateEvent/game start time

polymarket-wallets

FieldTypeCompatible FiltersDescription
user_idkeywordterm, termsWallet address
namekeywordterm, termsWallet display name
pseudonymkeywordterm, termsWallet pseudonym
pfpstringis_null, not_nullProfile picture URL
primary_labelskeyword arraytermsPrimary interest labels
secondary_labelskeyword arraytermsSecondary interest labels
primary_similar_walletskeyword arrayis_null, not_nullSimilar wallets (primary)
secondary_similar_walletskeyword arrayis_null, not_nullSimilar wallets (secondary)
text_vectorvectoris_null, not_nullEmbedding vector
ai_labels_medkeyword arraytermsMedium-confidence AI labels
ai_labels_highkeyword arraytermsHigh-confidence AI labels
ai_labels_lowkeyword arraytermsLow-confidence AI labels
updated_atdatedateLast update date
volumenumeric (decimal)numericTotal trading volume (USD)
pnlnumeric (decimal)numericProfit and loss (USD)
events_per_daynumeric (integer)numericAverage events per day

Sort fields: updated_at, pnl, volume

farcaster-items

FieldTypeCompatible FiltersDescription
texttextmatchPost text content
text_enrichedtextmatchEnriched post text
score_popularnumericnumericPopularity score (0-1)
score_trendingnumericnumericTrending score (0-1)
score_likenumericnumericPredicted like score
score_commentnumericnumericPredicted comment score
score_sharenumericnumericPredicted share score
score_reactionnumericnumericPredicted reaction score
score_spamnumericnumericSpam probability (0-1)
score_not_oknumericnumericContent moderation flag (0-1)
user_score_spamnumericnumericUser spam score (0-1)
num_likenumericnumericNumber of likes
num_commentnumericnumericNumber of comments
num_sharenumericnumericNumber of shares
num_followernumericnumericAuthor follower count
num_followingnumericnumericAuthor following count
text_lengthnumericnumericText character length
user_events_numnumericnumericUser total events
user_events_per_daynumericnumericUser events per day
langkeywordterm, termsLanguage code (e.g., en)
publication_typekeywordterm, termsPost type
appkeywordterm, termsSource application
channelskeywordterm, termsChannel names
miniapp_categorieskeywordterm, termsMini-app categories
user_idkeywordterm, termsAuthor user ID
user_namekeywordterm, termsAuthor username
domainskeywordterm, termsLinked domains
video_orientationskeywordterm, termswide, classic, square, vertical, tall, portrait
video_languageskeywordterm, termsVideo spoken language
ai_labels_highkeywordterm, termsHigh-confidence AI labels
ai_labels_medkeywordterm, termsMedium-confidence AI labels
ai_labels_lowkeywordterm, termsLow-confidence AI labels
coin_labelskeywordterm, termsCoin-related labels
locationgeogeoGeographic location
item_creation_timestampdatedatePost creation time

zora-coins

FieldTypeCompatible FiltersDescription
zora_descriptiontextmatchCoin description
text_enrichedtextmatchEnriched text
text_fulltextmatchFull text content
zora_symbolkeywordterm, termsCoin symbol
domainkeywordterm, termsDomain name
zora_creator_farcaster_idkeywordterm, termsCreator's Farcaster ID
zora_addresskeywordterm, termsContract address
zora_media_content_typekeywordterm, termsMedia type
ai_labels_highkeywordterm, termsHigh-confidence AI labels
ai_labels_medkeywordterm, termsMedium-confidence AI labels
ai_labels_lowkeywordterm, termsLow-confidence AI labels
zora_price_in_usdcnumericnumericPrice in USDC
zora_market_capnumericnumericMarket capitalization
zora_market_cap_delta_24hnumericnumeric24h market cap change
zora_total_supplynumericnumericTotal token supply
zora_unique_holdersnumericnumericUnique holder count
zora_total_volumenumericnumericAll-time volume
zora_volume_24hnumericnumeric24-hour volume
num_buynumericnumericBuy transaction count
num_sellnumericnumericSell transaction count
num_followernumericnumericCreator follower count
num_followingnumericnumericCreator following count
score_popularnumericnumericPopularity score
score_trendingnumericnumericTrending score
score_spamnumericnumericSpam probability
score_not_oknumericnumericModeration flag
user_events_numnumericnumericUser events count
user_events_per_daynumericnumericUser events per day
user_score_spamnumericnumericUser spam score
video_durationnumericnumericVideo duration
zora_created_atdatedateCoin creation date
zora_updated_atdatedateLast update date

AI Label Taxonomy

AI labels use the format model:prefix_label (e.g., mbd2:t_science_technology, tba2:f_positive).

Labels are applied at three confidence levels, each available as a filterable field on farcaster-items, polymarket-wallets, and zora-coins:

  • ai_labels_high — High confidence
  • ai_labels_med — Medium confidence (recommended default)
  • ai_labels_low — Low confidence

Topics (19 labels, prefix t_)

LabelFull Value
Arts & Culturembd2:t_arts_culture
Business & Entrepreneursmbd2:t_business_entrepreneurs
Celebrity & Pop Culturembd2:t_celebrity_pop_culture
Diaries & Daily Lifembd2:t_diaries_daily_life
Familymbd2:t_family
Fashion & Stylembd2:t_fashion_style
Film, TV & Videombd2:t_film_tv_video
Fitness & Healthmbd2:t_fitness_health
Food & Diningmbd2:t_food_dining
Gamingmbd2:t_gaming
Learning & Educationalmbd2:t_learning_educational
Musicmbd2:t_music
News & Social Concernmbd2:t_news_social_concern
Other Hobbiesmbd2:t_other_hobbies
Relationshipsmbd2:t_relationships
Science & Technologymbd2:t_science_technology
Sportsmbd2:t_sports
Travel & Adventurembd2:t_travel_adventure
Youth & Student Lifembd2:t_youth_student_life

Sentiment (3 labels, prefix f_)

LabelFull Value
Positivembd2:f_positive
Neutralmbd2:f_neutral
Negativembd2:f_negative

Emotion (11 labels, prefix e_)

LabelFull Value
Angermbd2:e_anger
Anticipationmbd2:e_anticipation
Disgustmbd2:e_disgust
Fearmbd2:e_fear
Joymbd2:e_joy
Lovembd2:e_love
Optimismmbd2:e_optimism
Pessimismmbd2:e_pessimism
Sadnessmbd2:e_sadness
Surprisembd2:e_surprise
Trustmbd2:e_trust

Moderation (11 labels)

LabelFull Value
LLM Generatedmbd2:llm_generated
Spammbd2:spam
Sexualmbd2:sexual
Hatembd2:hate
Violencembd2:violence
Harassmentmbd2:harassment
Self Harmmbd2:self_harm
Sexual (Minors)mbd2:sexual_minors
Hate (Threatening)mbd2:hate_threatening
Violence (Graphic)mbd2:violence_graphic

Web3 (5 labels, prefix c_)

LabelFull Value
NFTtba2:c_web3_nft
DeFitba2:c_web3_defi
Infrastructuretba2:c_web3_infra
Industrytba2:c_web3_industry
Consumertba2:c_web3_consumer

Market Sentiment (2 labels)

LabelFull Value
Bearishmbd2:f_market_sentiment_bearish
Bullishmbd2:f_market_sentiment_bullish

Content Quality (6 labels)

LabelFull Value
Informativetba2:f_is_informative
Educativetba2:f_is_educative
Creativetba2:f_is_creative
Inspiringtba2:f_is_inspiring
Funnytba2:f_is_funny
Predictiontba2:f_is_prediction

Recipes

Recipe 1: Trending Polymarket Markets

Active markets with high 24h volume, sorted by volume descending.

{
  "index": "polymarket-items",
  "size": 25,
  "sort_by": { "field": "volume_24hr", "order": "desc" },
  "include": [
    { "filter": "term", "field": "active", "value": true },
    { "filter": "numeric", "field": "volume_24hr", "operator": ">", "value": 50000 },
    { "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 10000 }
  ],
  "exclude": []
}

Recipe 2: Markets by Topic (AI Labels)

Polymarket markets about science/technology and crypto, excluding sports.

{
  "index": "polymarket-items",
  "size": 25,
  "sort_by": { "field": "volume_24hr", "order": "desc" },
  "include": [
    { "filter": "term", "field": "active", "value": true },
    { "filter": "terms", "field": "ai_labels_med", "value": ["mbd2:t_science_technology", "tba2:c_web3_defi"] }
  ],
  "exclude": [
    { "filter": "terms", "field": "ai_labels_med", "value": ["mbd2:t_sports"] }
  ]
}

Recipe 3: Exclude Closed Markets

Active-only markets with minimum liquidity, closed and restricted removed.

{
  "index": "polymarket-items",
  "size": 50,
  "sort_by": { "field": "liquidity_num", "order": "desc" },
  "include": [
    { "filter": "term", "field": "active", "value": true },
    { "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 5000 }
  ],
  "exclude": [
    { "filter": "term", "field": "closed", "value": true },
    { "filter": "term", "field": "restricted", "value": true }
  ]
}

Recipe 4: Markets Resolving Soon (Date Filter)

Markets ending within the next 30 days — useful for finding time-sensitive trading opportunities.

{
  "index": "polymarket-items",
  "size": 25,
  "sort_by": { "field": "end_date", "order": "asc" },
  "include": [
    { "filter": "term", "field": "active", "value": true },
    {
      "filter": "date",
      "field": "end_date",
      "value": {
        "date_from": "2026-02-12T00:00:00Z",
        "date_to": "2026-03-14T23:59:59Z"
      }
    },
    { "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 5000 }
  ],
  "exclude": []
}

Recipe 5: Semantic Search + Filters

Find markets semantically related to "artificial intelligence regulation" that also meet activity thresholds. Uses /search/semantic (not filter_and_sort).

{
  "index": "polymarket-items",
  "text": "artificial intelligence regulation and policy",
  "size": 20,
  "select_fields": ["item_id", "question", "liquidity_num", "volume_24hr", "best_ask"]
}

Note: The semantic endpoint does not support include/exclude filters or sort_by. If you need to combine semantic search with filtering, run semantic search first, collect the item IDs, then run a filter_and_sort query with { "filter": "terms", "field": "item_id", "value": [...ids] } in the include array.


Recipe 6: Boosting High-Liquidity Markets

Use the /search/boost endpoint to soft-boost high-liquidity and featured markets without hard-filtering them out.

{
  "index": "polymarket-items",
  "size": 30,
  "include": [
    { "filter": "term", "field": "active", "value": true },
    { "filter": "numeric", "field": "volume_24hr", "operator": ">", "value": 1000 }
  ],
  "boost": [
    { "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 50000, "boost": 3.0 },
    { "filter": "term", "field": "featured", "value": true, "boost": 1.5 },
    { "filter": "terms", "field": "ai_labels_med", "value": ["mbd2:f_market_sentiment_bullish"], "boost": 1.2 }
  ],
  "exclude": []
}

The boost endpoint does not support sort_by — results are ordered by relevance score, which incorporates both the base Elasticsearch score and boost multipliers.


Recipe 7: Discovering Available Values (frequent_values)

Before building filters, discover what values actually exist in a field. GET /search/frequent_values/{index}/{field}.

Discover AI labels on Polymarket:

curl -X GET "https://api.mbd.xyz/v3/studio/search/frequent_values/polymarket-items/ai_labels_med?size=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

[
  { "id": "mbd2:f_neutral", "count": 8765 },
  { "id": "mbd2:f_positive", "count": 5432 },
  { "id": "tba2:f_is_informative", "count": 4123 },
  { "id": "mbd2:t_science_technology", "count": 3876 },
  { "id": "mbd2:t_sports", "count": 2154 }
]

Discover popular Farcaster channels:

curl -X GET "https://api.mbd.xyz/v3/studio/search/frequent_values/farcaster-items/channels?size=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Useful fields to explore:

  • polymarket-items: sports_market_type, ai_labels_med
  • polymarket-wallets: primary_labels, secondary_labels, ai_labels_med
  • farcaster-items: lang, app, channels, ai_labels_med, publication_type
  • zora-coins: zora_symbol, ai_labels_med, zora_media_content_type

Recipe 8: Personalized Boost with GroupBoost

Use the /search/boost endpoint with group_boost to boost markets matching a user's top label preferences. Items matching higher-ranked label groups get stronger boosts.

{
  "index": "polymarket-items",
  "size": 30,
  "include": [
    { "filter": "term", "field": "active", "value": true },
    { "filter": "numeric", "field": "liquidity_num", "operator": ">", "value": 5000 }
  ],
  "boost": [
    {
      "filter": "group_boost",
      "lookup_index": "polymarket-wallets",
      "field": "ai_labels_med",
      "value": "0xf68a281980f8c13828e84e147e3822381d6e5b1b",
      "group": "primary_labels",
      "min_boost": 1,
      "max_boost": 5,
      "n": 10
    },
    {
      "filter": "group_boost",
      "lookup_index": "polymarket-wallets",
      "field": "ai_labels_med",
      "value": "0xf68a281980f8c13828e84e147e3822381d6e5b1b",
      "group": "secondary_labels",
      "min_boost": 1,
      "max_boost": 3,
      "n": 10
    }
  ],
  "exclude": [
    { "filter": "term", "field": "closed", "value": true }
  ]
}

This gives markets matching the user's top primary labels up to 5x boost, and secondary labels up to 3x boost, creating a personalized relevance ranking directly at the search stage.


Recipe 9: Find High-Volume Wallets

Search polymarket-wallets for the most active traders by total volume.

{
  "index": "polymarket-wallets",
  "size": 25,
  "sort_by": { "field": "volume", "order": "desc" },
  "include": [
    { "filter": "numeric", "field": "volume", "operator": ">", "value": 100000 },
    { "filter": "not_null", "field": "pfp" }
  ],
  "exclude": []
}

Recipe 10: Find Wallets with Specific AI Label Preferences

Search polymarket-wallets for wallets whose AI-inferred interests include science/technology or crypto topics.

{
  "index": "polymarket-wallets",
  "size": 30,
  "sort_by": { "field": "pnl", "order": "desc" },
  "include": [
    { "filter": "terms", "field": "ai_labels_med", "value": ["mbd2:t_science_technology", "tba2:c_web3_defi"] },
    { "filter": "numeric", "field": "events_per_day", "operator": ">=", "value": 1 }
  ],
  "exclude": []
}

Recipe 11: High-Volume Farcaster Posts

Popular English posts with strong engagement, excluding spam.

{
  "index": "farcaster-items",
  "size": 20,
  "sort_by": { "field": "score_popular", "order": "desc" },
  "include": [
    { "filter": "term", "field": "lang", "value": "en" },
    { "filter": "numeric", "field": "score_popular", "operator": ">=", "value": 0.5 },
    { "filter": "numeric", "field": "num_like", "operator": ">=", "value": 10 }
  ],
  "exclude": [
    { "filter": "numeric", "field": "user_score_spam", "operator": ">", "value": 0.5 }
  ]
}

Recipe 12: New Zora Coins

Recently created Zora coins with meaningful market activity.

{
  "index": "zora-coins",
  "size": 30,
  "sort_by": { "field": "zora_created_at", "order": "desc" },
  "include": [
    {
      "filter": "date",
      "field": "zora_created_at",
      "value": { "date_from": "2026-02-05T00:00:00Z" }
    },
    { "filter": "numeric", "field": "zora_unique_holders", "operator": ">=", "value": 10 },
    { "filter": "numeric", "field": "zora_volume_24h", "operator": ">", "value": 100 }
  ],
  "exclude": [
    { "filter": "numeric", "field": "score_spam", "operator": ">", "value": 0.5 }
  ]
}