Goofish Xianyu Search Scraper avatar

Goofish Xianyu Search Scraper

Pricing

from $0.08 / 1,000 item extracteds

Go to Apify Store
Goofish Xianyu Search Scraper

Goofish Xianyu Search Scraper

Search Goofish (Xianyu) listings by keyword and export structured product, price, seller, location, image, category, and demand data.

Pricing

from $0.08 / 1,000 item extracteds

Rating

5.0

(1)

Developer

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

1.7K

Total users

456

Monthly active users

10 days ago

Last modified

Categories

Security

Limited permissions

Share

Export public Goofish (闲鱼 / Xianyu) marketplace search results to JSON, CSV, Excel, or your preferred integration. Search in Chinese or English and collect listing titles, prices, public seller summaries, locations, images, labels, and interest counts when available.

This Goofish Xianyu search scraper returns search-card data, not full item descriptions or seller profiles. Availability depends on the source. A result limit is a maximum, not a promise of that many listings.

Quick start

Start with the small input below, run the Actor and inspect its results.

{
"keywords": [
"iPhone 15",
"自行车"
],
"maxItems": 20
}

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

Ready-to-run examples

Choose a public example to see its settings before starting a run:

What you get

  • Public listing cards with prices, seller summaries, locations and visible condition/specification labels. No extra item-detail requests.
  • Optional keyword translation using a curated English/pinyin dictionary, with the original keyword kept in each row.
  • Flexible exports with price/age filters, per-keyword limits and bounded local popularity ranking.
  • Only-new monitoring for a named private watchlist. See Monitor new listings.
FieldDescription
itemIdPublic listing identifier
urlPublic listing URL
keywordOriginal user search term that produced the row
searchedAsActual source query when opt-in translation is enabled
conditionLabel, conditionSource condition label and conservative readable translation when recognized
specs, sellerBadgesVisible brand/specification/repair labels and seller badges, without extra detail requests
priceDropCnyExact displayed CNY price drop, or difference between exact source original/current prices
priceDropPercentDisplayed percentage drop. Never converted into a guessed CNY amount
pageSearch result page number
positionListing position within the result page
titleListing title
priceNumeric asking price in CNY, with Chinese number units expanded. 0 is used when the price cannot be read
priceAvailableWhether the price was successfully read. A genuine zero price has this set to true
priceTextOriginal displayed price text when available
currencyPrice currency, normally CNY
areaPublic location shown on the result
imageUrlPrimary listing image URL
sellerNamePublic seller display name
sellerAvatarUrlPublic seller avatar URL
sellerIdPublic seller identifier when available
wantCountDisplayed interest count with Chinese number units expanded
wantCountTextOriginal interest-count text when available
wantCountIsLowerBoundWhether the source shows a lower bound, such as 999+
publishedAtPosting time when available
categoryIdPublic category identifier
categoryNameFirst public listing label. Not a verified category taxonomy
labelsListing and category labels
freeShippingWhether free shipping is advertised
isAuctionWhether the result is an auction
isVideoWhether the result includes video
detailPageTypePublic listing-page type
scrapedAtISO collection timestamp

Optional values are omitted when they are not present on a public search result. Boolean flags describe signals found on the search card, not independently verified item attributes.

Who is it for?

  • Resale analysts comparing asking prices and availability.
  • Marketplace sellers researching competing listings and regions.
  • Collectors and buyers monitoring niche products or brands.
  • Data teams feeding structured marketplace rows into dashboards.
  • Automation builders scheduling recurring exports and alerts.
  • AI developers giving agents access to current public search results.

How you can use the data

Price monitoring

Build a price history for the products you follow. Run the same keyword search on a schedule and save each export. Match listings by itemId, then compare price and scrapedAt to see how asking prices change. Your spreadsheet or workflow handles the comparison between runs. Check priceAvailable before comparing prices. A price of 0 with priceAvailable: false means the price could not be read.

Product availability research

Find listings for specific models, parts or collectibles. Try product names, brands and Chinese search terms such as 自行车 for bicycles. Review the returned titles and listing links to find relevant items. A listing disappearing from a later search does not, by itself, confirm that it has sold.

Regional marketplace analysis

Compare the listings shown in different locations. Export results for the same product and group them by area in a spreadsheet or dashboard. You can compare the number of collected listings and their asking prices. Location is included only when Goofish shows it on the search card.

Seller and category research

See how sellers describe and label similar products. Compare public seller summaries, listing titles and labels to understand how relevant items are presented. These are search-card details, not complete seller profiles. The categoryName field reflects a displayed label rather than a verified category system.

Alerts and workflows

Turn recurring searches into a useful watchlist. Send each export to a spreadsheet or your automation workflow. Your workflow can compare listing IDs with a saved export and notify you about new matches or price changes. See Automation and integrations for the setup options.

Input settings

{
"keywords": ["iPhone 15", "自行车"],
"maxItems": 20
}
KeyDescriptionDefault
keywordsSearch keywords: 1–50 unique non-empty Chinese or English terms. Alternatively use searchUrlsnot set
searchUrlsHTTPS goofish.com/search?q= links parsed locally, no arbitrary URL fetchingnot set
translateKeywordsUse 102 curated brand/category concepts via 225 English/pinyin aliases. Not general translationfalse
excludeAuctionsSkip cards with a true auction flagfalse
monitorModeOnly-new listings for the initiating account and named streamfalse
monitorStateNameIsolated monitoring stream name, up to 100 charactersdefault
resetMonitoringStateReset this account's named stream once for this runfalse
emitBaselineReturn initial monitoring matches. With false, remember them without listing fees. The completed-check start fee still appliestrue
maxItemsMaximum listings: 1–1,500 unique rows across all keywords20
maxItemsPerKeywordOptional cap of 1–1,500 saved listings for each termnot set
sortrelevance, newest, priceAsc, priceDesc, or local mostWanted (up to 3 pages / 30–90 eligible candidates per term, fewer with smaller limits or residential fallback). Not source-wide rankingrelevance
minPrice, maxPriceOptional asking-price range in CNYnot set
publishedWithinDaysExact posting-age limit from "1" through "14" days. "0" means any time"0"
freeShippingOnlyOnly listings with a visible free-shipping labelfalse
province, city, districtOptional Chinese region names. District without city is ignored with a warningnot set
resultsPerPageResults per page: 1–30 requested listings30
maxPagesPerKeywordMaximum pages per keyword: 1–50 pages20

The form and API use the same defaults. maxItems is shared across keywords. Use maxItemsPerKeyword to leave room for later terms. Duplicate terms are combined without regard to case.

With translateKeywords: true, huananzhi x99 motherboard searches as 华南金牌 x99 主板. Matching ignores case and accepts spaces or hyphens between phrase words. Chinese, unknown words, embedded substrings and models such as iPhone, RTX4060, PS5 and X99 stay unchanged.

Supported keyword mappings

The complete opt-in dictionary has 102 concepts (22 brands, 80 categories), 225 literal English/pinyin aliases. Case, whitespace and hyphen variations are not extra aliases. Translation defaults to false and is curated, not general translation. For example, daier laptop searches as 戴尔 笔记本电脑, and luo ji mechanical keyboard as 罗技 机械键盘. Every row keeps the original keyword.

The complete list is shown below as a plain Markdown table. Apify Store removes collapsible HTML together with its contents, so this list is intentionally expanded.

Chinese conceptSupported English / pinyin aliases
小米xiaomi, xiao mi
华为huawei, hua wei
联想lenovo, lianxiang, lian xiang
索尼sony, suoni, suo ni
佳能canon, jianeng, jia neng
尼康nikon, nikang, ni kang
乐高lego, legao, le gao
相机camera, xiangji, xiang ji
自行车bicycle, zixingche, zi xing che
笔记本电脑laptop, laptop computer, bijiben diannao
耳机headphones, erji, er ji
华南金牌huananzhi, huanan jinpai, hua nan jin pai
戴尔dell, daier, dai er
外星人alienware, waixingren, wai xing ren
三星samsung, sanxing, san xing
罗技logitech, luoji, luo ji
飞利浦philips, feilipu, fei li pu
华硕asus, huashuo, hua shuo
微软microsoft, weiruan, wei ruan
松下panasonic, songxia, song xia
佳明garmin, jiaming, jia ming
苹果apple, pingguo, ping guo
大疆dji, dajiang, da jiang
金士顿kingston, jinshidun, jin shi dun
希捷seagate, xijie, xi jie
西部数据western digital, xibu shuju, xi bu shu ju
主板motherboard, mainboard, zhuban, zhu ban
显卡graphics card, video card, xianka, xian ka
内存memory module, memory stick, neicun, nei cun
固态硬盘solid state drive, gutai yingpan
机械硬盘hard disk drive, mechanical hard drive
移动硬盘external hard drive, portable hard drive
电脑电源computer power supply, pc power supply
电脑机箱computer case, pc case
散热器cpu cooler, sanreqi
散热风扇cooling fan, case fan
显示器computer monitor, xianshiqi, xian shi qi
键盘keyboard, jianpan, jian pan
机械键盘mechanical keyboard
鼠标computer mouse, shubiao, shu biao
鼠标垫mouse pad, mouse mat
路由器router, luyouqi, lu you qi
网卡network card, ethernet card
打印机printer, dayinji, da yin ji
扫描仪document scanner
投影仪projector, touyingyi
平板电脑tablet computer, pingban diannao
台式电脑desktop computer, desktop pc, taishi diannao
手机mobile phone, smartphone, shouji, shou ji
手机壳phone case, smartphone case
充电器charger, chongdianqi
充电宝power bank, chongdianbao
数据线data cable, shujuxian
智能手表smart watch, smartwatch
电子书阅读器ebook reader, e book reader
数码相机digital camera
胶片相机film camera
单反相机dslr camera
微单相机mirrorless camera
运动相机action camera
相机镜头camera lens
三脚架tripod, sanjiaojia
闪光灯camera flash, shanguangdeng
相机包camera bag
存储卡memory card, cunchuka
读卡器card reader, dukaqi
无人机drone, wurenji, wu ren ji
云台camera gimbal
蓝牙耳机bluetooth headphones, bluetooth earbuds
音箱loudspeaker, yinxiang, yin xiang
蓝牙音箱bluetooth speaker
麦克风microphone, maikefeng
功放audio amplifier, gongfang
声卡sound card, shengka
录音笔voice recorder
唱片机record player, vinyl turntable
游戏手柄game controller, gamepad
游戏机game console, gaming console, youxiji
山地自行车mountain bike
公路自行车road bike
折叠自行车folding bike, folding bicycle
自行车车架bicycle frame, bike frame
自行车轮组bicycle wheelset, bike wheelset
骑行头盔cycling helmet, bike helmet
骑行鞋cycling shoes
帐篷tent, zhangpeng, zhang peng
睡袋sleeping bag, shuidai
登山包hiking backpack
登山杖trekking poles, hiking poles
露营桌camping table
露营椅camping chair
手电筒flashlight, shoudiantong
钓鱼竿fishing rod
登山鞋hiking boots, hiking shoes
滑雪板snowboard
滑板skateboard, huaban
吉他guitar, jita, ji ta
电吉他electric guitar
电子琴electronic keyboard
吸尘器vacuum cleaner, xichenqi
咖啡机coffee machine, coffee maker, kafeiji
空气净化器air purifier

Ambiguous bare on, mi, go, air, pro, switch, yijia, ram, monitor, tablet and bike remain unchanged. Use listed contextual phrases or Chinese directly. Model names are not rewritten.

Monitor new listings

{"keywords":["iPhone 15"],"maxItems":20,"sort":"newest","monitorMode":true,"monitorStateName":"phones","emitBaseline":false}
  • Selection: Each check visits one page of one keyword, up to 30 cards. Keywords rotate in order after successful checks only. Failed or busy checks do not advance. RUN_SUMMARY identifies the checked and next keyword.
  • Baseline: With emitBaseline: false, the first check remembers its selection without returning listings. This covers one keyword/page, not the whole watchlist. Later checks return unseen IDs. With true, initial matches are returned too.
  • Charges: Every successfully completed check incurs the start fee, even with zero new listings. Only newly saved listings incur item fees. Busy, no-keyword and source-failed checks do not incur the check start fee. Infrastructure costs still apply.
  • Changes: A price change on the same ID is not a new listing. Use ordinary exports for price history.
  • Private streams: State belongs to the initiating account and named stream. Use separate names for different watchlists. Reset only the intended stream, then turn reset off.
  • Retention: Up to 10,000 IDs for 30 days. A byte limit may evict older IDs sooner. Forgotten IDs can appear as new again.
  • Scheduling: No schedule is created or activated. Configure recurring runs separately if needed.

Example inputs

Quick sample

{"keywords":["iPhone 15"],"maxItems":10}

Multiple Chinese keywords

{"keywords":["露营帐篷","公路自行车"],"maxItems":100}

Compare several terms with a cap for each

{"keywords":["相机","自行车","露营帐篷"],"maxItems":30,"maxItemsPerKeyword":10}

Price-filtered search

{"keywords":["相机"],"maxItems":20,"minPrice":100,"maxPrice":1000,"sort":"priceAsc"}

Bounded pagination

{
"keywords": ["相机"],
"maxItems": 60,
"resultsPerPage": 30,
"maxPagesPerKeyword": 3
}

Output data

Illustrative shape only, not an observed listing:

{
"itemId": "123456789",
"url": "https://www.goofish.com/item?id=123456789",
"keyword": "iPhone 15",
"page": 1,
"position": 1,
"title": "iPhone 15 256G",
"price": 3999,
"priceAvailable": true,
"priceText": "3999",
"currency": "CNY",
"area": "上海",
"sellerName": "example seller",
"wantCount": 12,
"labels": ["Apple/苹果"],
"freeShipping": true,
"isAuction": false,
"isVideo": false,
"scrapedAt": "2026-08-07T12:00:00.000Z"
}

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

This Actor uses pay-per-event pricing. The start event is charged once, before saving the first valid listing. The item event is charged per saved listing.

A completed empty stateless search has no listing events or start event. Opt-in monitoring instead charges the existing start event once per successfully completed check, including empty checks and suppressed baselines. Only newly delivered rows incur listing events. Failed runs may already have saved and charged useful listings.

See the live Pricing tab for current rates and discounts.

Tips for best results

  • Try specific Chinese search terms. Local product names and model names can help you find more relevant listings. English search terms are also accepted.
  • Start with 10–20 listings. Keep maxItems small while trying a keyword, then inspect the results before increasing it.
  • Use focused product terms. A model name or category phrase can produce more useful results than a broad keyword.
  • Check collection coverage. Open Run summary and keyword coverage in the run output. The summary shows saved counts for each keyword, unvisited terms, failures and why collection stopped.

Limits and caveats

  • Search-card scope: No full item descriptions, seller profiles or reviews. Optional fields appear only when shown publicly.
  • Bounded coverage: Listings can change or disappear. Results are not exhaustive inventory or guaranteed lowest prices. mostWanted ranks only a bounded local pool. Empty results do not prove that Goofish has no matches.
  • Unknown values: Check priceAvailable before comparing prices. Unreadable prices use 0 with false. Posting time can be missing. An age filter excludes cards without a usable timestamp. Interest counts marked with wantCountIsLowerBound are minimums.
  • Partial results: Blocking or temporary failures may leave useful rows but incomplete coverage. Check RUN_SUMMARY for failures, unvisited keywords and stop reasons. A charge-cap stop reports BUDGET_LIMIT. Real source, storage and billing failures are not successful budget stops.
  • Input warnings: Recoverable input mistakes are reported in logs and RUN_SUMMARY.warnings. No usable keywords ends empty without source requests or event charges. Platform schema validation may reject invalid input before a run starts.
  • Duplicates: Each listing ID is saved once across keywords/pages and attributed to its first matching original keyword.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~goofish-xianyu-search-scraper/runs' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
--data @- <<'JSON'
{
"keywords": [
"iPhone 15",
"自行车"
],
"maxItems": 20
}
JSON

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/goofish-xianyu-search-scraper').call({
"keywords": [
"iPhone 15",
"自行车"
],
"maxItems": 20
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/goofish-xianyu-search-scraper').call(run_input={'keywords': ['iPhone 15', '自行车'], 'maxItems': 20})
print(client.dataset(run['defaultDatasetId']).list_items().items)

MCP and AI agents

You can ask your AI assistant to collect data with Goofish Xianyu Search Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Goofish Xianyu Search Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/goofish-xianyu-search-scraper"
}
}
}

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Goofish Xianyu Search Scraper by Fetch Cat, or give it the identifier fetch_cat/goofish-xianyu-search-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

Try asking your assistant for the marketplace data you need:

  • “Search Goofish for up to 20 iPhone 15 listings. Put their titles, asking prices, locations and listing links in a table, and flag prices that could not be read.”
  • “Find up to 10 camera listings on Goofish using the Chinese search term 相机. Show the available public seller summaries and locations alongside the listing links.”
  • “Collect up to 10 bicycle listings from Goofish using 自行车, then compare them with the export I provide. Match the listings by their identifiers and flag missing or unreadable prices.”

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

What data can I export with Goofish Xianyu Search Scraper?

You can export listing identifiers, URLs, titles, prices, locations, images, public seller summaries, interest counts, categories, labels, flags, and search provenance.

Can I run Goofish Xianyu Search Scraper through an API, schedule, or MCP client?

Yes. Use the API examples and MCP URL above, or create an Apify schedule for recurring searches.

Does it require my Goofish account?

No. It collects public search-result data without user credentials.

Can I search in English?

Yes. Chinese terms generally match more local listings, but both Chinese and English keyword strings are accepted.

Can I export CSV or Excel?

Yes. Open the run dataset and select JSON, CSV, Excel, XML, RSS, or another supported format.

Why is an optional field missing?

Goofish does not expose every attribute on every public search card. Missing optional values are omitted rather than guessed.

How do I control cost?

Begin with a small maxItems, inspect relevance, and then scale the input. See the live Pricing tab for current plan-specific rates.

Can I schedule monitoring?

Yes. Create an Apify schedule and use a webhook or integration to process each completed dataset.

Can an AI agent use it?

Yes. Use Apify MCP, or call the Actor through an agent tool that supports the Apify API.

Is this an official Goofish product?

No. This independent Actor exports publicly available marketplace search data. Follow applicable laws, platform terms, and data-protection requirements for your use case.

  • Amazon Products Search Scraper — Collect Amazon search results or look up known ASINs and product URLs, returning available listing fields for assortment comparisons.
  • Etsy Scraper — Collect public Etsy listings from searches or listing URLs, including titles, displayed prices and available seller details, for product research.
  • eBay Marketplace Scraper — Collect public active eBay listings with available prices, shipping and seller signals for resale research. Sold-price history is not included.
  • AliExpress Products Scraper — Collect AliExpress listing cards from a query or public listing URLs, with available prices, ratings and sales text, for supplier and product comparisons.
  • Walmart Products Scraper — Collect Walmart product search listings with available prices, ratings and seller details for retail assortment comparisons.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.

Made with care for curious people, AI agents and the possibilities in data. ♥