Shopee Search Suggestions Scraper (11 Markets)
Pricing
from $2.20 / 1,000 results
Shopee Search Suggestions Scraper (11 Markets)
Get Shopee search suggestions for any keyword in 11 Shopee markets: suggested queries with linked product and shop IDs, product images and ranking scores, plus keyword hints, search filters and the category tree.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
Shopee Scraper: Search Suggestions, Product Signals, Discover Feed & Shop Profiles Across Shopee Markets
Get Shopee's open-face data for keywords, product seeds, the homepage discover feed, and shop profiles across 11 Shopee markets — suggested queries with linked product/shop IDs and images, related product listings (price, sold, rating, stock), the market's daily-discover feed, and shop detail/categories. No browser, no proxy setup, results in seconds.
What does this Shopee scraper do?
The Actor hits Shopee's public open API faces through a hosted worker and writes one Dataset row per suggested query, product card, or shop profile. Useful for:
- keyword and demand research per market (
fetchMode=suggestions) - finding the products and shops Shopee promotes for a query (
suggestions+products) - related/recommended product listings for a seed item (
products) - the market's homepage discover feed (
discover) - shop profiles with in-shop categories (
shop) - category and filter discovery (
includeFilterConfig/includeCatTree) - seeding product-ID lists for other tools
It does not hit Shopee's signature-locked faces (search_items, pdp/get, item/get_ratings, recommend, chat/*, affiliate/*). Those return the Shopee signature gate (error 90309999) and are out of scope per the research baseline — see "Notes and limitations".
Supported Shopee countries and regions
| Market code | Country / region | Shopee domain |
|---|---|---|
PH | Philippines | shopee.ph |
SG | Singapore | shopee.sg |
MY | Malaysia | shopee.com.my |
TH | Thailand | shopee.co.th |
TW | Taiwan | shopee.tw |
VN | Vietnam | shopee.vn |
ID | Indonesia | shopee.co.id |
BR | Brazil | shopee.com.br |
MX | Mexico | shopee.com.mx |
CO | Colombia | shopee.com.co |
CL | Chile | shopee.cl |
You never configure a proxy: the hosted worker chooses the network route itself.
Features
- Search suggestions per keyword and market (suggested query, linked item IDs, shop IDs, product images, ranking scores, tracking,
search_info, full upstream passthrough) - Keyword hints with ranking fields in the
SEARCH_SIGNALSrecord - Product listings related to a seed (
hot_picks+triggered_rcmdsrealtime cards) — full price/voucher/discount/rating/stock/tier_variations fields plus the complete upstreamitem_card_display_*,shop_data,item_ratingobjects - Discover feed — the market's
daily_discoverhomepage stream (product cards only,feed_total/stocksurfaced) - Shop profiles —
get_shop_detail+get_categories+resolve_shop_redirect+rating_tagfilters+ optional Mall categories; includes fullaccountandshop_dataobjects - Search filters (
includeFilterConfig) and the full category tree (includeCatTree→CATEGORY_TREErecord) - When Shopee has no data for an input the run still succeeds with 0 rows and
emptyReason: NO_MATCH - Pay-per-event pricing: low run start fee + per-result billing
Input
| Field | Type | Required | Description |
|---|---|---|---|
fetchMode | string | no | One of suggestions (default) | products | discover | shop. Auto-detects from itemUrl/itemId+shopId/shopId/shopUsername when unset. |
keyword | string | no | One keyword, e.g. phone case. Used by suggestions, products (keyword-resolved seed) and discover; not required for shop. |
keywords | string[] | no | Optional keyword list. Each keyword receives its own limit allowance. |
itemUrl | string | no | products mode: Shopee product URL …-i.<shopId>.<itemId> — takes precedence over itemId/shopId. |
itemId | string | no | products mode: explicit Shopee item id (paired with shopId). |
shopId | string | no | products mode (with itemId) or shop mode. |
shopUsername | string | no | shop mode: @username alternative to shopId. |
market | string | no | Shopee country/region code. Default SG. |
limit | integer | no | Max Dataset rows per input. Default 70, max 200. Console prefill is 3. |
includeFilterConfig | boolean | no | suggestions mode: include the search filter tree in SEARCH_SIGNALS. |
includeCatTree | boolean | no | Save the market's full category tree to CATEGORY_TREE. |
includeSearchFacet | boolean | no | products: attach the keyword's search_facet + per-item category breadcrumb (first 3 items). shop: attach the market's Shopee Mall category list. |
Example inputs
Suggestions (default):
{"keywords": ["phone case", "wireless earbuds"],"market": "SG","limit": 3}
Products related to a seed item:
{"fetchMode": "products","itemUrl": "https://shopee.sg/...-i.1234567.57717808852","market": "SG","limit": 10,"includeSearchFacet": true}
Homepage discover feed:
{"fetchMode": "discover","market": "MY","limit": 20}
Shop profile (by shopId or shopUsername):
{"fetchMode": "shop","shopId": "78934592","market": "SG","includeSearchFacet": true}
Output
Every row has rowType identifying its shape: suggestion, product_listing, or shop_profile. limit is the maximum number of rows delivered and billed per input (keyword / product seed / shop). The run's combined cap is limit × input count, further bounded by the free-plan and maximum-charge budgets.
rowType="suggestion" — one row per suggested query
| Field | Description |
|---|---|
id | Normalized (NFKC + casefold) suggested keyword — the row's stable key |
title / query | The suggested search query |
record_type | search_suggestion |
item_id, shop_id, product_url | The first product Shopee links to the suggestion |
suggestion_item_ids, suggestion_shop_ids, suggestion_images | All linked products, shops, images (≤50 each) |
suggestion_item_count, suggestion_shop_count, suggestion_image_count | Raw upstream list lengths (untruncated) |
suggestion_tracking, tracking | Full upstream tracking object (session identifiers stripped) |
search_info, search_info_keys | Full upstream search_info object plus sorted key names |
count | Upstream count value (nullable) |
market, market_name, market_host, country, keyword, rank, page, absolute_rank | Context |
bff_info, card_type, complete_buy_info, complete_buy_queries, extra_query_condition, hint, icon_code, pic, promotion_query, query_labels, rewrite_keyword | Additional upstream GOLDEN_QUERY_KEYS fields passed through when present |
price, sold_text, rating_text | Empty strings: suggestions carry no prices |
source, provider, captured_at | Provenance |
rowType="product_listing" — one row per related/feed product
| Field | Description |
|---|---|
id | <country>:<itemId> — stable row key |
title | Product name |
price | Real sell price (first non-zero of strikethrough_price → original_price → price → price_min, /1e5) — not the voucher price |
voucher_discounted_price | item_card_display_price.price /1e5 — can be 0 for a new-buyer coupon |
discount | Upstream discount field |
recommended_platform_voucher_info, voucher_info | Upstream voucher objects |
item_card_display_price, item_card_display_sold_count | Full upstream objects (all keys) |
currency_code | SGD/MYR/… mapped from market |
sold, historical_sold, monthly_sold, stock | Sales/inventory counters (stock is daily_discover-only) |
rating_star, rating_count, rating_count_distribution, rcount_with_context, rcount_with_image, item_rating | Ratings; rating_count is the total, rating_count_distribution is the upstream per-star array, item_rating is the complete upstream object |
is_sold_out, is_official_shop, is_preferred_plus_seller | Badges |
liked_count, catid, category_breadcrumb, tier_variations | Counters and categorization |
image, images | Product images (hash → cf.shopee.<mk> CDN URL) |
shop_id, shop_name, shop_location, shop_icon, shop_data | Shop context; shop_data is the complete upstream object |
model_id, global_cat, global_brand, ctime | Misc upstream fields |
product_url, source_url, image, images, market, market_name, market_host, country, keyword, rank, page, absolute_rank, seed_item_id, source, provider, captured_at | Context / provenance |
rowType="shop_profile" — one row per shop
| Field | Description |
|---|---|
id | <country>:<shopId> — stable row key |
title, name | Shop name (both keys for compatibility) |
username, description, account | Identity; account is the complete upstream account object |
item_count, follower_count | Shop counters |
rating_star, rating_good, rating_normal, rating_bad | Aggregated ratings |
response_rate, response_time, preparation_time, cancellation_rate | Service metrics |
is_official_shop, is_preferred_plus_seller, has_flash_sale | Badges |
ctime, mtime, country_field, shop_location, cover, portrait | Misc; country_field is the upstream data.country (renamed to avoid clash with the row's country = market code) |
shop_url, product_url, source_url | URLs |
shop_categories, mall_categories | In-shop category list (shop/get_categories) and Shopee Mall categories (official_shop/get_categories, only when includeSearchFacet=true) |
shop_data | Complete upstream data object — for fields we haven't surfaced (shop_place, email_verified, is_cb, last_active_time, main_products, is_shop_manager, …) |
market, market_name, market_host, country, keyword, rank, page, absolute_rank, source, provider, captured_at | Context / provenance |
Key-value store records
| Key | Content |
|---|---|
RUN_SUMMARY | Run outcome, row count, emptyReason, worker diagnostics, per-input summaries |
SEARCH_SIGNALS | suggestions mode: hints[] + filterConfiguration (with includeFilterConfig) |
PRODUCT_SIGNALS | products mode: per-input summaries |
DISCOVER_SIGNALS | discover mode: per-input summaries |
SHOP_SIGNALS | shop mode: per-input summaries |
CATEGORY_TREE | market, rootCount, totalNodeCount, categories (with includeCatTree) |
Pricing
This Actor uses Pay per event pricing.
| Event | Event name | Price |
|---|---|---|
| Actor Start | apify-actor-start | $0.005 per run |
| Result | apify-default-dataset-item | $3.00 / 1,000 results ($0.003 each) |
User pays platform usage costs: No. Compute and proxy usage are included in the Actor event price.
Tiered pricing by Apify subscription:
| Tier | $/1,000 | per result |
|---|---|---|
| FREE* | $3.00 | $0.003 |
| BRONZE | $3.00 | $0.003 |
| SILVER | $2.60 | $0.0026 |
| GOLD | $2.20 | $0.0022 |
| PLATINUM | $2.00 | $0.002 |
| DIAMOND | $1.60 | $0.0016 |
Example: 1,000 product rows cost $0.005 start + $3.00 result events (FREE/BRONZE), down to $1.60 / 1,000 on DIAMOND. Platform usage is included.
More Actors like this
Need another marketplace or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for Shopee across supported markets.
Similar e-commerce scrapers
- Lazada Scraper
- Amazon Search Scraper
- SHEIN Product Scraper
- Temu Product Scraper
- MercadoLibre Scraper
- 1688 Global Product Search Scraper
- Coupang Product Scraper
- Walmart Product Scraper
- Etsy Scraper
- Target Product Scraper
- Allegro Scraper
- Mercari Japan Scraper
Prefer another specialized scraper?
If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Upwork Jobs Scraper
- Glassdoor Scraper
- Fiverr Gigs Scraper
- Bayt Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- Apartments.com Scraper
- Rightmove Scraper
- Idealista Scraper
- realestate.com.au Scraper
Travel & Stays
Social & Content
Ads Intelligence
Local & Maps
General tools
→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.
How to use
- Open the Actor on Apify.
- Pick
fetchMode(suggestions/products/discover/shop). - Provide the seeds the mode needs (
keyword/keywords,itemUrloritemId+shopId,shopIdorshopUsername). - Select the target
market. - Set
limit; tickincludeFilterConfig/includeCatTree/includeSearchFacetif you want them. - Run the Actor.
- Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
Free Apify plan limits (set by this Actor's developer)
| Limit | Free Apify plan | Paid Apify plan |
|---|---|---|
| Runs of this Actor | 10 runs total | Unlimited |
| Results per run | Up to 200 | Up to schema max (200) |
When the run cap is hit, the run finishes with a clear status message — not an Apify platform error.
Worker URL is config, not code: the Actor reads
WORKER_BASE_URLfrom Actor environment variables (plus optional per-runworkerBaseUrl). If you migrate the worker to a new host, updateWORKER_BASE_URL(andWORKER_AUTHif the API key changes) in Apify Console — no Actor code change required. SetWORKER_PROVIDES_PROXY=1when the worker supplies its own proxy / Bright Data stack.
Notes and limitations
- Signature-gated faces are out of scope. Shopee locks
search_items,pdp/get,item/get,item/get_ratings,recommend,chat/*,affiliate/*behind per-request signatures (error90309999). This Actor only hits the open faces listed in Features — it does not return full product search listings or per-item review bodies. - No proxy configuration. The hosted worker picks the exit for each market.
- Some markets return fewer rows for certain keywords or seeds. Shop detail, daily_discover and hot_picks coverage is market-specific.
- Suggestion rows are search signals, not matching product listings.
queryis the suggested text,titleis its compatibility alias,record_type=search_suggestion.price/sold_text/rating_textare empty strings. - Upstream session identifiers are stripped from
trackingbefore writing (ss_session_id,session_id,sessionid); the rest oftrackingandsearch_infopass through verbatim. - Null vs empty:
countmay benullupstream.stockis only populated bydaily_discover.rating_countis the total; the upstream per-star array israting_count_distribution. - Field conflicts resolved: upstream
data.countryis exposed ascountry_fieldonshop_profilerows so it doesn't collide with the row'scountry(= themarketcode). - Auxiliary data errors don't fail the run. Failures on
search_hint/search_filter_config/category_tree/search_facet/shop_categories/mall_categoriesare reported viahintError/filterConfigError/catTreeError/searchFacetSubErrsdiagnostics orpartial: true. - Malformed rows are skipped and counted as
contractDropped. When Shopee returns no rows at all the run succeeds with 0 rows andemptyReason: NO_MATCH; when every returned row is malformed the run fails. - The Actor extracts public search-result information; use the data responsibly and respect applicable laws and Shopee terms.
FAQ
Why did my free-plan run stop with a limit message?
Free Apify plan users can run this Actor up to 10 times, with up to 200 results per run. These caps are set by the Actor developer, not Apify. Upgrade to a paid Apify plan for unlimited runs (schema limit still applies per input).
Which Shopee countries are supported?
Philippines, Singapore, Malaysia, Thailand, Taiwan, Vietnam, Indonesia, Brazil, Mexico, Colombia, and Chile.
Do I need to choose a proxy country?
No. Select the Shopee market; the hosted worker picks the network route. Proxy settings are not part of the input.
Can I run it on a schedule?
Yes. Use Apify schedules to monitor keywords over time for price tracking, competitor monitoring, or product research.
Can I use it from code?
Yes. You can run the Actor from the Apify API, the Apify JavaScript/Python clients, CLI, integrations, or MCP tools.
Is this a Shopee API?
It is not an official Shopee API. It reads Shopee's public open faces and returns structured rows.
Related Actors
All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Bayt Jobs Scraper
- Fiverr Gigs Scraper
- Freelancer.com Scraper
- Glassdoor Scraper
- Himalayas Jobs Scraper
- Indeed Jobs Scraper
- Jobicy Remote Jobs Scraper
- RemoteOK Jobs Scraper
- SEEK Jobs Scraper
- Upwork Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- 99.co Scraper
- Realtor.com Agents Scraper
- Apartments.com Rental Scraper
- Bayut Scraper
- Craigslist Housing Scraper
- Daft.ie Scraper
- Dot Property Scraper
- FINN.no Scraper
- Funda Scraper
- Hepsiemlak Scraper
- Idealista Scraper
- Immobiliare.it Scraper
- ImmoScout24 Scraper
- Naver Land Scraper
- OpenSooq Scraper
- Otodom Scraper
- Property Finder Scraper
- PropertyGuru Scraper
- Realtor.ca Scraper
- Rightmove Scraper
- SeLoger Scraper
- SUUMO Scraper
- Zillow Group Scraper
E-commerce
- Shopee Search Scraper
- E-commerce Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Amazon Search Scraper
- ASOS Product Scraper
- Cdiscount Product Scraper
- Costco Product Scraper
- Coupang Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- SHEIN Product Scraper
- Target Product Scraper
- Temu Product Scraper
- Walmart Product Scraper
Travel & Stays
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Airbnb Listings Scraper
- Booking.com Hotels Scraper
- Despegar Scraper
- Expedia Scraper
- Traveloka Scraper
- Travelstart Scraper
- Trip.com Scraper
- TripAdvisor Scraper
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ Browse the full profile: apify.com/lentic_clockss