Goofish Scraper — Xianyu C2C Listings, Item Detail & Seller
Pricing
from $5.00 / 1,000 listing scrapeds
Goofish Scraper — Xianyu C2C Listings, Item Detail & Seller
Scrape Goofish (闲鱼/Xianyu — Alibaba C2C secondhand marketplace) by keyword, item URL/ID, or seller URL/ID. Returns title, price, condition, location, image, seller (Zhima credit, verification). Cookieless via MTOP XHR. Three modes auto-detected. MCP-ready.
Pricing
from $5.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape Goofish (闲鱼/Xianyu — Alibaba's C2C secondhand marketplace) by keyword, item URL/ID, or seller URL/ID. Cookieless. MCP-ready.
What it does
Pass a search keyword, item URL/ID, or seller URL/ID — get back structured Goofish listings:
| Field | Type | Description |
|---|---|---|
mode | string | search, detail, or seller |
itemId | string | Goofish numeric item ID |
title | string | Listing title (Chinese / English) |
price | number | Current price in CNY (¥) |
originalPrice | number | Strike-through price (when present) |
condition | string | 全新 / 99新 / 9成新 etc. |
city, province | string | Seller location |
image, images[] | string | Image URLs (full gallery in detail mode) |
description | string | Full listing description (detail mode) |
wantCount, viewCount | int | Want / view counters (detail mode) |
publishedAt | ISO 8601 | Publish or last-bump time |
seller | object | { nickname, userId, zhimaCredit, verified, totalSold, totalListed } |
itemUrl | string | https://www.goofish.com/item?id=... |
searchQuery, position | string, int | Echo + result rank (search mode) |
scrapedAt | ISO 8601 | When this record was captured |
When to use it
- Resellers / arbitrage — China secondhand price intelligence.
- Market researchers — track demand & pricing on a category in mainland China's biggest C2C platform.
- AI monitoring agents — clean tool call: keyword in, listings out.
- Product designers / collectors — niche listings (BJD, retro games, vintage cameras) surfaced fast.
When NOT to use it
- Taobao / Tmall (B2C) — Goofish is C2C only. For Taobao use a Taobao scraper.
- AliExpress — see
khadinakbar/aliexpress-product-search-scraper. - Goofish account automation (publish, message, buy) — out of scope; this is read-only public data.
Pricing — Pay-Per-Event + Pay-Per-Usage
Both monetization models are enabled. Pick whichever fits your run.
| Event | Price | When |
|---|---|---|
apify-actor-start | $0.00005 | once per run, scaled by RAM |
listing-scraped | $0.005 / listing | search & seller modes (no detail enrichment) |
listing-enriched-with-detail | $0.008 / listing | detail mode or fetchDetails: true |
Filtered-out listings are not charged (priceMin, priceMax, condition, publishedWithinDays filter client-side before charge).
Cost-cap visibility: every run logs the upfront max cost before the first charge fires.
Quick start
From Apify Console
Open the actor → click Run with the default input (searchQuery: "iPhone 15 Pro"). Returns up to 30 listings.
From code
// JavaScriptimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('khadinakbar/goofish-scraper').call({searchQuery: 'Sony A7 III',maxResults: 50,sortBy: 'newest',priceMin: 5000,priceMax: 12000,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
# Pythonfrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("khadinakbar/goofish-scraper").call(run_input={"searchQuery": "手办","maxResults": 30,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["itemUrl"])
# CLIapify call khadinakbar/goofish-scraper --input='{"searchQuery":"iPhone 15 Pro","maxResults":20}'
Detail mode — specific item
{ "startUrls": ["https://www.goofish.com/item?id=1234567890"] }
or
{ "itemIds": ["1234567890", "9876543210"], "fetchDetails": true }
Seller mode — listings from one seller
{ "sellerIds": ["2200000000000"], "maxResults": 100 }
Modes auto-detected from input
| Input you give | Mode |
|---|---|
searchQuery | search |
startUrls matching /search?q= | search |
startUrls matching /item?id= | detail |
startUrls matching /personal?userId= | seller |
itemIds | detail |
sellerIds | seller |
You can combine all of them in one run.
Input filters
| Filter | What it does |
|---|---|
sortBy | relevance, newest, priceAsc, priceDesc (search mode) |
priceMin / priceMax | CNY range (client-side, filtered before charge) |
condition | all / used / new (matches 全新, 未拆, new for "new"; everything else = used) |
publishedWithinDays | only listings posted within N days |
fetchDetails | enrich every listing with detail page (bills enriched rate) |
MCP / AI-agent usage
The actor is exposed in Apify MCP as apify--goofish-scraper. From Claude, ChatGPT, or any MCP client:
search-actors: "goofish"call-actor name="khadinakbar/goofish-scraper" input={"searchQuery":"...","maxResults":20}get-actor-output runId=...
Tool description is intentionally narrow (read-only public Goofish data); pricing signal is on the listing — so AI agents budget per call before invoking.
How it works
PlaywrightCrawler navigates Goofish public web URLs; an XHR response interceptor catches Alibaba MTOP responses (mtop.taobao.idlemtopsearch.pc.search, mtop.taobao.idle.pc.detail) and parses the JSON. No login. No cookies you have to provide. No signature crypto on your side — the browser does it.
Proxy resilience:
DATAIMPULSE_PROXYenv var (residential, primary if set).- Apify Residential (
apifyProxyGroups: ["RESIDENTIAL"]). - Apify Datacenter US fallback.
The actor probes candidates in order and picks the first that responds. Resource blocking (images, fonts, media) keeps cost down without losing the MTOP XHRs.
Limitations
- Goofish ships from mainland China; some IPs may serve degraded content or trigger soft blocks. The actor retries with session rotation; failures terminate honestly (charge $0, status message explains).
- Some private listings, "seller-only" channels, or login-walled content cannot be scraped.
- Pricing on listings is the live ask from the seller; sold prices and bargain history are not surfaced by the public web app.
Legal & ToS
Goofish is operated by Alibaba Group. Scraping public listings is generally permitted for personal/research use under most jurisdictions, but you are responsible for compliance with Goofish/Alibaba Terms of Service, robots.txt, applicable data-protection law (PIPL, GDPR), and any restrictions of your jurisdiction. Do not scrape personally identifiable information beyond what Goofish publishes publicly on the listing. Do not use scraped data to harass, contact, dox, or otherwise harm sellers.
This actor performs read-only HTTP access to Goofish's public web interface — no login, no automated buying, no account operations.
Related actors in this portfolio
aliexpress-product-search-scraper— AliExpress search.alibaba-listings-scraper— Alibaba B2B listings.
Support
Open an issue in the Apify Console Issues tab. The actor is actively maintained.