Belgeler
Ctrl+K Arama Alt+[Alt+] Kılavuzlar
API anahtarını al

Entegrasyonlar

MCP araçları kılavuzu

Plain-English map of every WinningHunter MCP tool.

https://app.winninghunter.com/mcp
  • Most tools are read-only; track_brand, track_storeve save_ad write; get_ad_transcript can generate persisted transcripts
  • Successful araçlar/çağrı uses 1 API credit. A call that returns an error payload (invalid_argument, not_found, auth_required, …) is refunded and reports credit_charged: false

Quick list

search_tiktok_products
search_tiktok_shops
search_tiktok_creators
search_tiktok_videos
browse_tiktok_categories
list_tiktok_category_top
autocomplete_tiktok
count_tiktok_entities
get_tiktok_product
get_tiktok_shop
get_tiktok_creator
get_tiktok_video
get_tiktok_trending_products
search_tiktok_ads
get_tiktok_ad
search_pinterest_ads
get_pinterest_ad
search_google_ads
get_google_advertiser
get_store_details
get_store_top_ads
search_facebook_ads
find_winning_products
creative_inspiration_pack
brief_competitor
scan_ad
get_ad_transcript
save_ad
list_saved_ad_boards
daily_radar
track_brand
analyze_tracked_brand
list_tracked_brands
track_store
list_shopify_store_filter_options
search_shopify_stores
search_shops
find_similar_shops
find_similar_stores_by_image
search_exploding_topics
get_exploding_topic_detail
autocomplete_exploding_topics
check_credits

43 tools total. tiktok_varlıklarının_sayısı mirrors explore count endpoints (no row payload).

Response size

search_facebook_ads / find_winning_products echo applied filters under mcp_filters (small). Full catalogs (allowed_niches, allowed_technologies, filter_reference, …) are opt-in: pass include_filter_reference=true. Without that flag, discover codes via an invalid filter value (returns allowed_values / allowed_niches without running the search).

search_tiktok_ads, search_pinterest_adsve search_google_ads keep responses under the MCP client tool-result limit (~25k tokens) in three ways:

  • Per-day chart series (*_history, *_timeseriesadspend_history, rank_history, like_count_history, …) are dropped. The names appear in omitted_series_fields.
  • Fields that carry a byte-identical duplicate value are folded to one canonical name. The response lists field_aliases, e.g. {"poster": "image", "text": "description"} — read the canonical field instead.
  • If the rows still exceed the budget, the lowest-ranked ads are dropped and the response sets truncated: true with a truncated_reason. Lower sınır or narrow the filters to get complete pages.

Ad search filters are validated

The three ad-platform search tools reject unknown values instead of silently ignoring them. An invalid sort_by, nişler, formatya da ad_score getiriler error: invalid_argument with the allowed list (allowed_sort_by, allowed_niches, …) and does not consume a credit. Every successful response echoes applied_filters so you can confirm what actually reached the query.

Niche taxonomies are per-platform

Meta niche codes are not shared with the other platforms.

  • TikTok has its own 15 keys: güzellik, bags, car, romanticgifts, giyim, watches, jewelry, womenclothing, menclothing, toys, child, home, pet, gadgets, dış mekan. Raw TikTok label_######## industry codes also work. Passing Meta codes returns invalid_argument with the valid keys.
  • Pinterest ve Google have no niche/category filter. Use anahtar kelime, domainya da promoter_name/advertiser_name.

Metric coverage by ad platform

Not every metric exists on every platform. Sorting or filtering on an absent metric gives you noise, so pick a field the platform actually populates:

Platform Reliable metrics Absent / sparse
TikTok likeCount, commentCount, shareCount, total_adspend (all ads) total_views — EU view data exists on ~1% of ads
Pinterest comment_count, repin_count / save_count (~77% of ads) total_adspend ve total_views are always null — Pinterest publishes no spend or impression data
Google first_shown_at, last_shown_at, days_running (all ads) ad_reach_lower / ad_reach_upper / total_adspend on ~31% of creatives, and only ~10% of US-targeted ones — sort_by=reachspend ve reach_min therefore skew EU

Two date fields are easy to confuse on Pinterest: created_at is when WinningHunter indexed the ad (nearly always today), while başladı is the ad's launch date. başlangıç tarihi / bitiş tarihi filter başladı.

Saved ads and boards

save_ad is board-backed for every platform: facebook, facebook_post, pinterest, google ve tiktok. Omit board_id to land on the default "All Saved Ads" board, or call list_saved_ad_boards first and pass a specific board_id. Saving the same ad to the same board twice is a no-op and comes back as already_saved: true.

TikTok used to be the exception — saves went to a separate per-user list and board_id was ignored. That is no longer the case. TikTok saves now go to boards like everything else and are additionally mirrored into the legacy per-user list, which is what keeps the filled heart and the "saved only" toggle on the /tiktok-ads grid working. TikTok ads saved before this change stay visible under "All Saved Ads" but are not attached to a board until they are saved again.

Store technology codes

teknolojiler on the TikTok and Pinterest ad tools takes two-letter codes, not product names: SH Shopify, WC WooCommerce, WP WordPress, PP PayPal, KL Klaviyo, GO Google Analytics, CO Cookiebot, TP Trustpilot, SL ShopLazza, SI ShopLine, MG Magento.

How to think about the tools

1) Find things

Use these first:

  • tiktok_ürünlerini_ara
  • tiktok_shops_arama
  • tiktok_yaratıcılarını_ara
  • TikTok videolarını ara
  • search_facebook_ads
  • find_winning_products
  • creative_inspiration_pack
  • brief_competitor
  • scan_ad
  • search_shopify_stores
  • search_shops
  • find_similar_shops
  • find_similar_stores_by_image
  • search_exploding_topics

2) Open details

Use an ID from search results:

  • get_tiktok_product
  • get_tiktok_shop
  • get_tiktok_creator
  • get_tiktok_video
  • get_exploding_topic_detail

3) Helpers

  • TikTok kategorilerini göz at (category tree and views)
  • tiktok_kategori_en_popüler (top items in one category)
  • otomatik tamamlama_tiktok (typeahead suggestions)
  • autocomplete_exploding_topics (topic suggestions)
  • get_tiktok_trending_products (TikTok Shop trending)
  • daily_radar (tracked-brand growth summary; set include_creative_signals=true for per-brand creative tabs — slower)
  • track_brand (add a Meta page to Brand Tracker)
  • analyze_tracked_brand (single-brand deep dive)
  • track_store (add a Shopify store/domain to Store Tracker)
  • list_shopify_store_filter_options (valid Store Explorer filter values, including dynamic themes/apps/taxonomy)
  • save_ad (save a creative to Saved Ads)
  • list_saved_ad_boards (board ids and folders for save_ad; covers every platform, TikTok included)
  • get_ad_transcript (fetch or generate an ad transcript)
  • kredileri kontrol et (programmatic API pool — same shape as REST GET /api/v1/credits: used / sınır / remaining / addon_remaining / total_remaining)

Most common arguments

Most search tools use these:

  • anahtar kelime
  • ülke
  • sayfa
  • boyut
  • sort_by
  • sort_order

For Meta ad tools, sayfa is 1-based in MCP (1 = first page), even though the dashboard backend uses 0-based indexing internally. Deep pagination requires the opaque scroll cursor from the previous response (mcp_pagination.scroll_next) — incrementing sayfa alone does not advance the result set (especially with sort_by=lastseen).

sort_order is asc ya da açıklama (varsayılan) açıklama) on every tool that accepts it.

Most detail tools use:

  • id
  • slice (which part you want)

İzin verilir sort_by per tool

Pass any string from the table below. Common aliases are normalized automatically (case-insensitive). Anything else falls back to the default sort and the response includes a mcp_sorting block describing what was applied.

Meta ad library

Tool Varsayılan İzin verilir sort_by
search_facebook_ads relevance relevance, bulunma tarihi, mostrecent (ad start / başladı), son görülme tarihi, adspend, longestrunning, reach, adsetamount, consistency, monthlyvisits, pageactiveads, toprank (sort by ad_rank ascending: rank #1 önce #5; use for “top ad from [brand]”; MCP forces sort_order asc)
find_winning_products relevance same as search_facebook_ads

Takma adlar: created / created_at / date / recent / newest / latestbulunma tarihi; most_recent / mostrecent / ad_started / ad_creationmostrecent; last_ad_startedson görülme tarihi; first_ad_started / oldest / earliestbulunma tarihi (ascending); active_adspageactiveads; monthly_visitsmonthlyvisits. For within-brand ad_rank (“top ad from [brand]”), use toprank or aliases rank, ranking, ad_rank, top_ad, best_ranked, best_ad, adrank, topad, …; spaced phrases like top rank / top ad normalize to toprank. sort_order is ignored for toprank (always ascending rank).

arama kelimesi (field scope for anahtar kelime on Meta tools): Tümü (default), hedef URL, sayfa adı, reklam metni, ürün adı. This is değil a niche/category field; aliases like landing_url, page_name, ad_text, ürün are normalized too. If an agent mistakenly sends a niche/category term as arama kelimesi with no anahtar kelime / niche (for example searchkeyword: "Fashion"), the MCP tool recovers it as the matching niche (CG) instead of failing schema validation.

For Meta vertical/category searches, use niche ya da nişler instead of keyword-only filtering. Treat user wording like “category”, “niche”, “vertical”, “market”, or “product category” as a request for this Meta niche filter. The MCP input schema exposes the dashboard niche codes as an enum, so a fashion query should be sent as niche=CG (Moda & Giyim). Useful fashion-ad refinements are WC = Women's Clothing, MC = Erkek Giyim, FW = Ayakkabı, BG = Çantalar, JY = Mücevherat, WT = Saatlerve SG = Sunglasses. The runtime also accepts dashboard names like Moda & Giyim; invalid values return allowed_niches instead of being passed through.

rank_growth_filter is also validated against the dashboard options: comma-separated rising, stable, declining.

Other Meta dashboard filters are exposed as MCP args and validated before calling /api/fb-ads: ülkeler / exclude_countries, technology / teknolojiler, dil / diller / exclude_languages, apps / exclude_apps, theme / themes, ölçeklendirme, media_type, page_type, ad_score, low_impressions, range filters (min_* / max_* for duplicates, active ads, FB page likes, ad spend, reach, monthly visits, products on store, price, copy length, video length, days running), active-ads % growth (min_active_ads_growth / max_active_ads_growth + active_ads_growth_period — human percent, periods 1w | 1m | 3m sadece; dashboard 14d/2m and EU reach % growth are omitted from MCP), and date ranges (ad_created_*, last_seen_*, product_created_*, page_created_*). Theme names must be exact dashboard Themes values; apps accept dashboard app ids or app names. Date ranges require both *_from ve *_to içinde YYYY-MM-DD.

scan_ad (ad detail / angles)

Use when the user is viewing one ad and wants hook, angle, landing page, days running, or a scaling read.

Argument What to pass
ad_url_or_id Preferred: context.ad.id (numeric Meta id, e.g. 1466400984668551). Also: context.public_share_url (https://app.winninghunter.com/ad/{id}?platform=meta), context.ad.ad_id (brand.com_{id}), raw numeric id, or Meta Ad Library URL with id= query param.

Do not pass context.ad.landing_url, brand domains, or product pages — those are storefront URLs, not ad ids. Use web_fetch separately only if you need on-page product copy from the landing URL.

Returns: hook, angle, landing_page, days_running, verdict (likely_scaling | early_or_testing | insufficient_data), plus full ad row.

TikTok Shop

All TikTok Shop search tools default to sort_by=revenue. Allowed values match the dashboard's sortable columns.

Tool İzin verilir sort_by
tiktok_ürünlerini_ara gelir, ad, revenue_30_days, sold_count, avg_unit_price, commission_rate, creator_count, ilk kez görüldü, creator_conversion_ratio, revenue_growth_rate, sales_growth_rate, product_score, product_rating, product_review_cnt
tiktok_shops_arama gelir, shop_name, revenue_30_days, sold_count, product_count, shop_rating, revenue_growth_rate, sales_growth_rate, video_count, avg_unit_price
tiktok_yaratıcılarını_ara gelir, ad, revenue_30_days, followers, followers_lifetime, followers_growth_rate, video_count, revenue_growth_rate, views_growth_rate, product_count
TikTok videolarını ara gelir, ad, revenue_30_days, views_30_days, likes_30_days, gpm, ad_spend, ad2_cost, ad2_roas, estimated_roas, yayın tarihi, revenue_growth_rate, views_growth_rate, likes_growth_rate, shares_growth_rate, video_duration, yorumlar, saves

Pagination: TikTok explore tools use keyset cursors: omit sonra on the first call; pass meta.next_cursor (also echoed as mcp_pagination.after_next) as sonra on the next call with the same filters/sort. When sonra is set, the backend ignores sayfa. Prefer sonra for deep downloads; sayfa remains fine for shallow offset paging. Stop when next_cursor / after_next is null. (HTTP explore uses the same sonra cursor on /api/v1/tiktok-shop/{entity}/explore.)

İçin tiktok_kategori_en_popüler, get_tiktok_product (yaratıcılar / videolar slices), get_tiktok_shop (ürünler / videolar / yaratıcılar slices), get_tiktok_creator (mağazalar / ürünler / videolar slices), and get_tiktok_video (similar slice), the sort_field arg uses the matching entity's allow-list above.

Aliases auto-normalized across TikTok Shop tools: units_sold / units / sales / soldsold_count; gmvgelir; gmv_30d / 30 günlük gelirrevenue_30_days; growth / revenue_growth / gmv_growth_raterevenue_growth_rate; sales_growthsales_growth_rate; price / avg_priceavg_unit_price; ratingshop_rating; yorumlarproduct_review_cnt; followers_countfollowers; viewsviews_30_days; beğenilerlikes_30_days; roasestimated_roas; durationvideo_duration; date / publishedyayın tarihi.

Shopify Explore Shops

track_store(store_url) adds a store/domain to Store Tracker. It uses the same validation, plan limit, store resolution, and bestseller scrape queue as the dashboard.

Tool Varsayılan İzin verilir sort_by
search_shopify_stores, search_shops monthly_visits monthly_visits, 30d_rev_estimated_max, 1d_rev_estimated_max, revenue_1y, aov, visits_growth_pct_m1, visits_growth_pct_m3
find_similar_stores_by_image monthly_visits same as search_shopify_stores

Takma adlar: gelir / monthly_revenue / 30 günlük gelir / 30d_revenue30d_rev_estimated_max; annual_revenue / yearly_revenuerevenue_1y; daily_revenue / revenue_1d1d_rev_estimated_max; traffic / visits / visitors / monthly_trafficmonthly_visits; avg_order_value / average_order_value / order_valueaov; traffic_growth_1mvisits_growth_pct_m1; traffic_growth_3mvisits_growth_pct_m3; revenue_change / revenue_momentum / store_revenue_change_30dvisits_growth_pct_m1 (same mapping as the live Explore Shops table when legacy revenue-delta sort was retired).

search_shopify_stores / search_shops filters (all optional unless noted). Names mirror MCP argument names:

Kullanım list_shopify_store_filter_options before filtering by dynamic values (shopify_themes, store_apps, product_taxonomy_l1/l2/l3). Its section argument accepts hepsi, static, themes, apps, product_taxonomy_l1, product_taxonomy_l2, product_taxonomy_l3; pass query to search dynamic option lists.

Intent playbook: “Stores in a niche” → kategori ya da niche = one of the Explore Shops verticals. For fashion/clothing/apparel, use Giyim. Avoid anahtar kelime-only niche queries. “Top / biggest by revenue” → sort_by=revenue_1y, sort_order=desc. “New in last N months” → store_created_from / store_created_to inclusive YYYY-MM-DD (both required).

Parity with POST https://app.winninghunter.com/api/shops/explore: MCP uses the same server-side POST keys (arama, kategori, sortingKey, sortingDirection, sayfa, pageSize, includeWlads, …). Argument mapping: anahtar kelimearama, sort_bysortingKey, boyutpageSize. Default include_wlads=falseincludeWlads=0 (matches the dashboard table request that skips wlads previews).

Argument(s) Anlamı
anahtar kelime Full-text search (name, domain, category, descriptions, products/bestsellers).
ülke Merchant/store registered country, not visitor traffic. Allowed: ABD, GB, CA, AU, DE, FR, NL, IN, BR, IT, ES, SE, CN, JP, HK, CH, BE, AE, AT, Yeni Zelanda, SG, IE, DK, HAYIR, PT, PL, MX, KR, IL, ZA, SA, MY, TH, PH, ID, NG, PK, MA, CO, AR, FI, CZ, RO, GR, HU.
currency Store currency. Allowed: ABD DOLARI, EUR, GBP, CAD, SEK, DKK, DENE, NOK, CHF, AUD, NZD, HKD, MXN, BRL, INR.
kategori, niche Same Explore Shops vertical (niche is an alias if you omit kategori). Only these values match the vertical filter: Giyim, Sanat ve El Sanatları, Aksesuarlar, Güzellik, Sağlık, Oyuncaklar ve Oyunlar, Elektronik, Evcil Hayvan Malzemeleri, Diğer (server matches case-insensitively). Prefer over anahtar kelime alone for “stores in [vertical]”.
product_taxonomy_l1, product_taxonomy_l2, product_taxonomy_l3 Optional finer product taxonomy refinements. These are not the main vertical filter; use kategori / niche for verticals. Discover valid values with list_shopify_store_filter_options.
visitor_country_main, visitor_country_among, visitor_country_exclude Visitor/traffic mix from SimilarWeb-style top countries: comma/semicolon ISO2 lists; main = tied top share; among = has meaningful share; exclude = must not appear (same code in multiple lists → exclude wins). Invalid country-code strings return invalid_argument.
minimum gelir, maksimum gelir, min_annual_revenue, max_annual_revenue Estimated revenue band (monthly USD or annual converted to monthly bounds server-side).
aov_min, aov_max Average product price / AOV range (non-negative).
monthly_visits_min, monthly_visits_max Monthly visits band (integers ≥ 0). Dashboard presets: 0-5000, 5000-10000, 10000-50000, 10000-150000, 10000-100000000, 50000-100000, 0-150000, 100000-1000000, 1000000-100000000, 3000000-100000000.
product_count_min, product_count_max Published product count band (integers ≥ 0). Dashboard presets: 1-10, 10-50, 50-200, 200-1000, 1000-100000.
dil Exact match on store language. Allowed: en, fr, de, es, it, pt, nl, sv, da, no, pl, ja, ko, zh, ar, tr, ru, he, th.
store_apps Substring match against installed Shopify app names (≤128 chars). Discover valid names with list_shopify_store_filter_options(section=apps).
revenue_change_pct_min, revenue_change_pct_max 30d revenue momentum filter (store_revenue_change_30d); both bounds must be ≥ 0 (dash-range encoding limitation).
trustpilot_rating_min, trustpilot_rating_max Trustpilot stars (0–5). Dashboard presets: 1-2, 2.5-3.5, 4-5.
trustpilot_reviews_min, trustpilot_reviews_max Trustpilot review count band (integers ≥ 0). Dashboard presets: 1-1000, 1000-10000, 10000-100000, 100000-100000000.
traffic_growth_rules_json JSON array of rules AND‑ed together: { "months": 1 | 3, "direction": "growth" | "loss", "percentage": number, "maxPercentage": number | null } (matches Explore Shops Traffic Growth UI).
store_created_from, store_created_to Inclusive calendar window YYYY-MM-DD (both required). Filters indexed first_product_date (first catalog signal). Does not filter Shopify metadata.created_at (shop provision / replatform). Successful responses include mcp_sorting with the applied sort and allow-list.
include_wlads Varsayılan false: includeWlads=0 in POST (same as dashboard Explore table — no per-store explore_wlads_ads Meta preview hydration). Set true for previews (includeWlads=1).
shopify_themes Comma/semicolon-separated theme names, or JSON string array (each 1–128 chars). Discover current theme names with list_shopify_store_filter_options(section=themes). Invalid/empty theme payloads return invalid_argument.
sayfa, boyut, sort_by, sort_order Pagination and sort. sayfa must be ≥ 1; boyut must be 1–50; sort_order must be asc ya da açıklama.

find_similar_stores_by_image takes image_url (required) plus the same filters as above except anahtar kelime (similarity replaces text search).

Note: TikTok MCP tools also use a ülke argument — there it is marketplace/country context, değil the same field as Shopify merchant ülke.

Brand tracker

track_brand(page_id?, url?) adds a Facebook / Meta page to Brand Tracker. Provide either a page_id or a Facebook Ad Library URL containing view_all_page_id; it uses the same plan limit and global tracking queue as the dashboard.

Tool Varsayılan İzin verilir sıralama
list_tracked_brands date_added date_added, ad, new_ads, growth

Takma adlar: recent / added / newest / latest / datedate_added; alphabetical / alpha / a-zad; new / newadsnew_ads; trending / momentumgrowth.

Exploding Topics

Tool Varsayılan İzin verilir sıralama İzin verilir zaman aralığı
search_exploding_topics (dashboard preselects exponent) default, growth, gradient, exponent, absolute_volume, date_added default (all time), 3, 6, 12, 24 (months)

Aliases for sıralama: volumeabsolute_volume; exponentialexponent; recent / newest / latestdate_added; trendinggrowth. kategori accepts dashboard slugs (e.g. moda, güzellik, skincare, Fitness, technology, ai, …) or default for all categories.

mcp_sorting response block

Every search/list tool that accepts sort_by (or sıralama/sıralama) attaches an mcp_sorting object to the response payload:

{
  "mcp_sorting": {
    "requested_sort_by": "revenue_30d",
    "applied_sort_by": "revenue_30_days",
    "applied_sort_order": "desc",
    "allowed_sort_by": ["revenue", "name", "revenue_30_days", "..."],
    "normalized_from": "revenue_30d"
  }
}

If you pass an unknown sort key, mcp_sorting.warning says it fell back to the default — the tool does not error out.

Slice values for detail tools

Use one of these slice values:

  • get_tiktok_product: detail, tarihçe, metrics, yaratıcılar, videolar
  • get_tiktok_shop: detail, tarihçe, metrics, ürünler, videolar, yaratıcılar, strategy
  • get_tiktok_creator: detail, tarihçe, metrics, mağazalar, ürünler, videolar
  • get_tiktok_video: detail, tarihçe, metrics, ürünler, similar

Two easy mistakes

  1. Trending confusion

    • get_tiktok_trending_products is TikTok Shop product momentum
    • Exploding Topics is separate (search_exploding_topics + get_exploding_topic_detail)
  2. Write actions

    • MCP supports track_brand, track_store, save_ad, and Meta ad transcript generation via get_ad_transcript
    • Favorites, presets, TikTok transcripts, and other writes must use REST API

Copy block for AI instructions

Paste this into agent instructions:

Use WinningHunter MCP at https://app.winninghunter.com/mcp.
Auth can be either OAuth bearer token (connector flow) or X-API-Key (header-capable clients).
Most MCP tools are read-only. `track_brand`, `track_store`, and `save_ad` write. `get_ad_transcript` can generate persisted transcripts.
Successful tools/call costs 1 API credit.
If user asks for other writes (favorites/presets/TikTok transcripts), use REST /api/v1/tiktok-shop/* instead.
When unsure about exact schema, call tools/list first.

Need the full technical detail?

For full filter semantics and endpoint behavior: