Shopee Android Scraper
Pricing
from $15.00 / 1,000 shopee android record scrapeds
Shopee Android Scraper
Scrape Shopee Android mobile backend APIs - searches, product listings, product details, and shop products - without maintaining mobile devices, apps, emulators, signatures, or device fingerprints.
Pricing
from $15.00 / 1,000 shopee android record scrapeds
Rating
0.0
(0)
Developer
Charted Sea
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
3
Monthly active users
16 days ago
Last modified
Categories
Share
Scrape Shopee Android mobile backend APIs - searches, product listings, product details, product ratings, and shop products - without maintaining mobile devices, apps, emulators, signatures, or device fingerprints.
The Actor forges API requests that mimic real Shopee Android app traffic. It does not run the Android application.
The Actor accepts Shopee Android backend API URLs on mall.shopee.* domains.
Each request is processed independently and produces one row in the default
dataset.
Compared with the browser-based Shopee Web surface, the Android surface
consumes less proxy traffic, executes faster, and is independent from web
anti-bot logic. Shopee Web shopee.* URLs are not supported by this Actor.
Quick start
{"requests": [{"url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt"}]}
A run accepts 1 to 100 requests. The Actor waits for every request to reach a terminal state before publishing results and charging finalized events.
Supported domains
Only the following Shopee Android backend domains are supported:
- Brazil:
https://mall.shopee.com.br - Indonesia:
https://mall.shopee.co.id - Malaysia:
https://mall.shopee.com.my - Philippines:
https://mall.shopee.ph - Singapore:
https://mall.shopee.sg - Thailand:
https://mall.shopee.co.th - Taiwan:
https://mall.shopee.tw - Vietnam:
https://mall.shopee.vn
Input
Shared options are applied to every request. A value inside an individual request overrides the shared value for that request.
requests- Required array containing 1 to 100 Shopee Android requests.enrichUrlQuery- Add required Shopee query parameters. Default:true.
Per-request fields:
url- Required Shopee Android backend API URL on amall.shopee.*domain.method-GETorPOST. Default:GET.payload- JSON body for supported POST APIs.- Any shared option above - Overrides that option for this request.
Unknown request options are passed to Charted Sea for forward compatibility.
Supported Shopee Android APIs
Product Search by Keyword or Category
-
URL Path:
/api/v4/search/search_items
-
URL Parameters:
keyword: Search keyword, e.g., "tshirt".match_id: Category ID when searching products by category, Shop ID when searching products by shop.categoryids: Comma-separated list of category IDs used to filter results.by(default = "relevancy"): Sort by "relevancy", "ctime", "sales", or "price".order(default = "desc"): Sort order, "asc" or "desc".newest(default = 0): Offset for results.page(default = 1): Page number (start from 1).page_type,scenario,version,trending_entrance,extra_params,view_session_id: Automatically generated, unless overridden.
-
Crawler Input Parameters
productSearch_crawlNextPages: Set to true to crawl subsequent pages (default: false).productSearch_crawlNextPages_maxPages: Limit on number of pages to crawl (default: 1).productSearch_crawlNextPages_maxResults: Maximum products to crawl (default: 20).
Note: Unlike the Shopee Web version of this API, the Android version can crawl multiple pages for keyword search. The number of items per page depends on the
byparameter:relevancyreturns 30 items per page; other sorts return 20 on the first page and 30 on the next pages.
- Example Input:
{"requests": [// Search products with the "tshirt" keyword{ "url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt" },// Search products in the category ID 11027421{ "url": "https://mall.shopee.sg/api/v4/search/search_items?match_id=11027421&scenario=PAGE_CATEGORY" },// Search products from the shop ID 290739469{ "url": "https://mall.shopee.sg/api/v4/search/search_items?match_id=290739469&page_type=shop&scenario=PAGE_SHOP_SEARCH" }],// Automatically crawl the next pages"productSearch_crawlNextPages": true,// Crawl until the 3rd page"productSearch_crawlNextPages_maxPages": 3,// Alternatively, indicate the maximum number of products to crawl"productSearch_crawlNextPages_maxResults": 180}
- Notable Response Fields:
items: Array of product summaries.items/itemidanditems/shopid: Product key.items/item_data/catid: Category ID.items/item_data/ctime: Creation timestamp.items/item_data/shop_data/shop_name: Shop name.items/item_data/item_card_display_price/price: Product price (divide by 100,000 to get actual price).items/item_data/item_card_display_price/discount: Discount percentage.items/item_data/item_rating/rating_star: Average rating (e.g., 4.89).items/item_data/item_rating/rating_count: Array of rating counts[total, 1-star, 2-star, 3-star, 4-star, 5-star].items/item_card_displayed_asset/name: Product name.items/item_card_displayed_asset/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.items/item_card_displayed_asset/images: Other image keys.items/item_card_display_sold_count/monthly_sold_count: Monthly sales.items/item_card_display_sold_count/historical_sold_count: Total sales.
Product Search Common
This API is invoked when the user makes a keyword search, and returns the first page of products. For the next pages, Shopee Android uses Product Search by Keyword or Category.
-
URL Path:
/api/v4/search/search_page_common
-
URL Parameters:
keyword: Search keyword, e.g., "tshirt".
-
Example Input:
{"requests": [// Search products with the "tshirt" keyword{ "url": "https://mall.shopee.co.id/api/v4/search/search_page_common?keyword=tshirt" }]}
- Notable Response Fields:
data/items_response/items: Array of product summaries.data/items_response/items[x]/itemidandshopid: Product key.data/items_response/items[x]/item_basic/catid: Category ID.data/items_response/items[x]/item_basic/ctime: Creation timestamp.data/items_response/items[x]/item_basic/shop_name: Shop name.data/items_response/items[x]/item_basic/price: Product price (divide by 100,000 to get actual price).data/items_response/items[x]/item_basic/discount: Discount percentage.data/items_response/items[x]/item_basic/item_rating/rating_star: Average rating (e.g., 4.89).data/items_response/items[x]/item_basic/item_rating/rating_count: Array of rating counts[total, 1-star, 2-star, 3-star, 4-star, 5-star].data/items_response/items[x]/item_basic/name: Product name.data/items_response/items[x]/item_basic/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.data/items_response/items[x]/item_basic/images: Other image keys.data/items_response/items[x]/item_basic/sold: Monthly sales.data/items_response/items[x]/item_basic/historical_sold: Total sales.data/items_response/items[x]/item_basic/stock: Stock level.
Product Listing
-
Request Method:
POST
-
URL Path:
/api/v4/item/get_list
-
Request Body:
{"bff_meta": null,"shop_item_ids": [{ "item_id": 26826689395, "shop_id": 240877035 },{ "item_id": 40703058516, "shop_id": 1058254930 }],"source": "microsite_individual_product"}
The shop_item_ids array contains item_id (product identifier) and shop_id
(product owner identifier) pairs. You can request up to 20 items per scraping
task.
- Example Input:
{"requests": [{"url": "https://mall.shopee.sg/api/v4/item/get_list","method": "POST","payload": {"bff_meta": null,"shop_item_ids": [{ "item_id": 26826689395, "shop_id": 240877035 },{ "item_id": 40703058516, "shop_id": 1058254930 }],"source": "microsite_individual_product"}}]}
- Notable Response Fields:
items: Array of product summaries.items/itemidanditems/shopid: Essential for scraping product details and ratings.items/name: Product name.items/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.items/ctime: Creation timestamp.items/sold: Monthly sales.items/historical_sold: Total sales.items/price: Divide by 100,000 to get actual price.
Note: Unlike the Shopee Web surface,
soldandstockremain available through this Android API.
Product Details
-
URL Path:
/api/v4/pdp/get
-
URL Parameters:
shop_id: The unique identifier of the shop.item_id: The unique identifier of the product.
Note: Consider Cart Panel Item Detail as an alternative if the success rate is too low.
- Example Input:
{// Get the details of a product"requests": [{ "url": "https://mall.shopee.sg/api/v4/pdp/get?shop_id=414243778&item_id=23600133176" }]}
- Notable Response Fields:
data/item/item_idanddata/item/shop_id: Essential identifiers for the product and shop.data/item/title: Product name.data/item/description: Product description.data/item/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.data/item/ctime: Product creation timestamp.data/item/fe_categories: Category information including parent categories.data/item/models: Detailed SKU information.data/item/models/sold: SKU monthly sales.data/item/models/stock: SKU stock level.data/product_review: Aggregated rating statistics.data/product_review/historical_sold: Total sales.data/product_shipping: Shipping details.data/shop_detailed: Comprehensive shop details.
Product Details Lite
This API is used by the "Shopee Lite" Android app and only works for Indonesia.
-
URL Path:
/api/v4/pdp/get_lite
-
URL Parameters:
shop_id: The unique identifier of the shop.item_id: The unique identifier of the product.
-
Example Input:
{// Get the details of a product"requests": [{ "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184" }]}
- Notable Response Fields:
data/item/item_idanddata/item/shop_id: Essential identifiers for the product and shop.data/item/title: Product name.data/item/description: Product description.data/item/image: Image key. Convert to URL using the provided format:https://down-${country}.img.susercontent.com/file/${imageKey}.data/item/ctime: Product creation timestamp.data/item/fe_categories: Category information including parent categories.data/item/models: Detailed SKU information.data/item/models/sold: SKU Monthly sales.data/item/models/stock: SKU Stock level.data/shop: Shop details.data/product_review: Aggregated rating statistics.data/product_review/historical_sold: Total sales.
Cart Panel Item Detail
-
Request Method:
POST
-
URL Path:
/api/v4/pdp/cart_panel/get
-
Request Body:
{"_pft": 255,"city": "","has_voucher": false,"is_group_buy_new_group": false,"item_id": 26826689395,"method": 1,"model_id": null,"quantity": 1,"selected_insurance_plans": [],"selected_spl": null,"selected_tiers": null,"shop_id": 240877035,"state": "","use_group_buy": false}
The most important fields are item_id (product identifier) and shop_id
(product owner identifier).
- Example Input:
{"requests": [{"url": "https://mall.shopee.sg/api/v4/pdp/cart_panel/get","method": "POST","payload": {"_pft": 255,"city": "","has_voucher": false,"is_group_buy_new_group": false,"item_id": 26826689395,"method": 1,"model_id": null,"quantity": 1,"selected_insurance_plans": [],"selected_spl": null,"selected_tiers": null,"shop_id": 240877035,"state": "","use_group_buy": false}}]}
- Notable Response Fields:
data/item/item_idanddata/item/shop_id: Essential identifiers for the product and shop.data/item/title: Product name.data/item/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.data/item/models: Detailed SKU information.data/item/models/stock: SKU stock level.data/item/stock: Product stock level.
Product Ratings
-
URL Path:
/api/v2/item/get_ratings
-
URL Parameters:
shopid&itemid: Unique identifiers for the shop and product.limit(hardcoded = 20): Number of results per page. This value can't be changed.offset(default = 0): Offset for results, typically a multiple of 20.type(default = 0, max = 5): Filter by number of stars (e.g. 2 = 2-stars ratings only). 0 = all ratings.filter(default = 0): Filter by content: 1 = with comments, 3 = with media, 9 = local ratings, 0 = all ratings.
-
Crawler Input Parameters
productRatings_crawlNextPages: Set to true to crawl subsequent pages.productRatings_crawlNextPages_maxPages: Limit on number of pages to crawl (default: 1).productRatings_crawlNextPages_maxResults: Maximum ratings to crawl (default: 20).
-
Example Input:
{// Get the ratings of a product"requests": [{ "url": "https://mall.shopee.sg/api/v2/item/get_ratings?shopid=414243778&itemid=23600133176" }],// Automatically crawl the next rating pages"productRatings_crawlNextPages": true,// Crawl until the 3rd rating page"productRatings_crawlNextPages_maxPages": 3,// Alternatively, indicate the maximum number of ratings to crawl"productRatings_crawlNextPages_maxResults": 60}
- Notable Response Fields:
data/ratings/cmtid: Unique identifier for each rating.data/ratings/ctime: Timestamp of the rating.data/ratings/rating_star: Star rating from 1 to 5.data/ratings/comment: Buyer's comment.data/ratings/author_username: Buyer's username (sometimes anonymized).data/ratings/author_portrait: Buyer's profile image.data/ratings/images&videos: Media associated with the rating.data/ratings/product_items: SKU details of the rated product.
Note: Always be mindful of buyers' personal information and comply with local data protection laws. Avoid storing personal data unless necessary.
Shop Products
-
URL Path:
/api/v4/shop/rcmd_items
-
URL Parameters:
shop_id: Unique identifier for the shop.limit(default = 20): Number of results per page.offset(default = 0): Offset for results, typically a multiple oflimit.bundle,upstream: Additional parameters with default settings.
-
Crawler Input Parameters
shopProducts_crawlNextPages: Set to true to crawl subsequent pages.shopProducts_crawlNextPages_maxPages: Limit on number of pages to crawl (default: 1).shopProducts_crawlNextPages_maxResults: Maximum products to crawl (default: 20).
-
Example Input:
{// Get the products of a shop"requests": [{ "url": "https://mall.shopee.sg/api/v4/shop/rcmd_items?shop_id=556522115&offset=0" }],// Automatically crawl the next product pages"shopProducts_crawlNextPages": true,// Crawl until the 3rd product page"shopProducts_crawlNextPages_maxPages": 3,// Alternatively, indicate the maximum number of products to crawl"shopProducts_crawlNextPages_maxResults": 60}
- Notable Response Fields:
data/items: Array of product summaries.data/items/itemidanditems/shopid: Essential for scraping product details and ratings.data/items/name: Product name.data/items/image: Image key. Convert to URL withhttps://down-${country}.img.susercontent.com/file/${imageKey}.data/items/ctime: Creation timestamp.data/items/stock: Stock level.data/items/sold: Monthly sales.data/items/historical_sold: Total sales.data/items/price: Divide by 100,000 to get actual price.
Output
The default dataset contains one row per input request:
{"marketplaceRunUuid": "...","taskUuid": "...","url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt","status": "SUCCESS","responseBody": {"items": []}}
Output fields:
marketplaceRunUuid- Charted Sea marketplace-run ID.taskUuid- Charted Sea scraping-task ID.url- Original requested URL.status- Terminal request status.responseBody- Shopee response for a successful request.error- Error description for an unsuccessful request.
Rows remain in the same logical request order. One failed request does not hide successful rows from the same batch.
Pricing
Pay as you go with no subscription or monthly minimum:
- Successful Shopee Android request: $0.015, flat for every supported API.
- Proxy usage: $0.00013 per started block of 100 proxy units.
- Actor start: $0.00005 per GB of Actor memory, with a minimum of one event.
- Dataset result: $0.00001 per result written to the default dataset.
Every supported Shopee Android API uses the same flat price. There is no product-detail premium and no per-variant surcharge.
Failed or cancelled requests are not charged as successful Shopee requests. Proxy usage varies with the requested API, response size, and anti-bot conditions. Use Apify's maximum total charge setting to bound an execution's total cost.
Charging
This is a PAY_PER_EVENT Actor. A completed execution can charge:
- One
csea-scrape-shopee-adrevent per successful request. - Finalized
csea-proxy-unitevents for proxy usage consumed by the requests.
Charging is persisted and resumed without intentionally duplicating events.
Graceful aborts and retries
A graceful Apify abort cancels known Charted Sea tasks and waits for backend finalization. Interrupted Actor executions persist their marketplace run, charging, and output state so they can resume without intentionally duplicating charges or dataset rows.
Operational guidance
- Start with small batches when testing new endpoints.
- Monitor success rates during major Shopee campaigns.
- Distribute traffic between the Shopee Web and Android Actors for redundancy; they are independent scraping surfaces.