Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Goofish Xianyu Scraper (闲鱼 Idlefish) icon

Goofish Xianyu Scraper (闲鱼 Idlefish)

Scrape Goofish (Xianyu, Idlefish) listings by item link or seller profile: price, condition, want and view counts, seller rating, photos. No login required.

124 runs on Apify $0.0035 per item ($3.5 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust itemUrls, sellerUrls, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0035 per item = $3.5 per 1,000

You are charged forWhenPrice
Item returnedOne listing returned in the dataset with its price, condition and seller details. Diagnostic rows and the labelled sample row are not charged.$0.0035

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.

Inputs

FieldWhat it doesType
itemUrlsGoofish listing links, one per line. A full link like https://www.goofish.com/item?id=995598771021 works, and so does the bare number. Each one comes back as a full row.array
sellerUrlsGoofish seller profile links, one per line, like https://www.goofish.com/personal?userId=605970805 — or just the number. Every listing on the profile is walked and returned in the same shape as an item link, up to the limit below.array
maxItemsStop after this many listings across the whole run. Item links are done first, then sellers. Counts only listings that actually came back — rows explaining a dead link are free and do not count.integer
includeDescriptionKeep the full listing description in each row. Turn it off for a narrower table when you only want prices and counts.boolean

What you get

A structured dataset — each result includes fields like:

itemIdtitlepricecurrencyconditionTextwantCountviewCountcitysellerNicksellerGoodReviewRateimageCountlistedAturl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

Goofish Scraper: Xianyu (闲鱼) listings from item and seller links, no keyword search

Paste Goofish item links, or a seller's profile link, and every listing comes back as a row. Each row has the title, asking price in yuan, Goofish's 10-point condition, want and view counts, location, the seller's masked nickname and good-review rate, every photo and the description. There is no keyword search, because Goofish only offers search to signed-in accounts, so this works from links you already have.

InputGoofish item links or ids, and seller profile links or ids
OutputOne row per listing
Ceiling5,000 listings per run
Account neededNone
Price$3.50 per 1,000 listings, flat on every plan

🔍 What Goofish Scraper does

Goofish (闲鱼, Xianyu, sometimes written Idlefish) is Alibaba's second-hand marketplace. This takes listings you can already see, from the app, from a shared link or from a seller you follow, and turns them into a table.

An item link can be the full goofish.com/item?id= address, the mobile h5.m.goofish.com version or just the number. A seller link is a goofish.com/personal?userId= address or its number, and every listing on that profile is walked and returned in the same shape as an item link. Item links are done first, then sellers.

Before any of a seller's listings are kept, the first one is read back to check it really belongs to that seller. If it does not, you get a free note and nothing from that profile. Rows that did come from a profile you asked for carry foundViaSeller.

Each row is put together from two parts of Goofish, and sourceItemRecord and sourceDetailPage say which answered. When one is missing, its fields are null rather than guessed. Old listings are the usual case: on a 150-listing seller walk, 140 rows were complete and 10 came back thinner, all of them listings from earlier years.

That 150-listing walk took 87 seconds on a test run, and a run of 13 item links took 11.

📥 What you give it

{
  "itemUrls": ["https://www.goofish.com/item?id=1080166744321", "1081033347338"],
  "sellerUrls": ["https://www.goofish.com/personal?userId=605970805"],
  "maxItems": 100,
  "includeDescription": true
}
FieldIf you leave it outWhat it is
itemUrlsnoneListing links, one per line. A full link, the mobile link or the bare number all work.
sellerUrlsnoneSeller profile links or their numbers, one per line. Every listing on the profile is walked, up to the limit below.
maxItems1001 to 5,000 listings across the whole run. Only listings that come back count; free notes do not.
includeDescriptiononKeeps the seller's full description. Turn it off for a narrower table.
proxyConfigurationnot usedOnly for your own servers. Addresses you list here are used as given. Leave it alone otherwise.

With neither links nor seller links, you get one free example row telling you what to put where. The form opens with one item link filled in, as an example.

📤 What you get back

A real row from a real run, with the photo list cut to one:

{
  "itemId": "1080166744321",
  "url": "https://www.goofish.com/item?id=1080166744321",
  "title": "全新正版《我住长江尾》,段志强著,中华书局出版!未拆封,正品",
  "price": 35,
  "originalPrice": 68,
  "currency": "CNY",
  "shippingFee": 0,
  "conditionLevel": 10,
  "conditionText": "Brand new",
  "wantCount": 14,
  "viewCount": 244,
  "collectCount": 7,
  "soldCount": 0,
  "quantity": 4,
  "city": "上海",
  "province": "上海",
  "district": "闵行区",
  "sellerId": "2208434265414",
  "sellerNick": "正***店",
  "sellerGoodReviewRate": "99%",
  "sellerItemCount": 241,
  "sellerSoldCount": 2588,
  "sellerReplyRate24h": "97%",
  "sellerLastSeen": "6分钟前来过",
  "sellerUrl": "https://www.goofish.com/personal?userId=2208434265414",
  "categoryId": 50023914,
  "status": "在线",
  "listedAt": "2026-08-28T20:51:10.000Z",
  "images": ["https://img.alicdn.com/bao/uploaded/i2/2208434265414/O1CN01fTSS3lERTGG1chua_!!4611686018427387206-0-xy_item.jpg"],
  "imageCount": 4,
  "description": "保证,印刷清晰,纸张手感好~\n\n内容讲复旦教授回归土地的田园生活,真实生动,适合喜欢历史、乡村、治愈系文学的朋友阅读收藏,也适合送礼~\n\n全国包邮(偏远地区除外),喜欢直接拍,细节随时问我~",
  "sourceItemRecord": true,
  "sourceDetailPage": true
}
FieldWhat it is
price, originalPrice, currencyThe asking price in yuan, and the "was" price where the seller set one. Nothing is converted.
conditionLevel, conditionTextGoofish's own 10-point scale, where 10 is brand new. Read straight from the listing, never guessed from the photos.
wantCount, viewCount, collectCountHow many people want it, looked at it and saved it. On a second-hand market these say more than the price.
soldCount, quantityGoofish's sold counter, and the units the seller has on offer.
city, province, districtWhere the item is.
sellerNick, sellerGoodReviewRate, sellerReplyRate24h, sellerLastSeenThe seller as Goofish shows them. Nicknames arrive masked by Goofish, and "last seen" is Goofish's own Chinese wording.
sellerItemCount, sellerSoldCountFrom the seller's profile header. They are Goofish's numbers, not a count of your rows.
listedAt, status, categoryIdWhen it was posted, its state as Goofish labels it, and Goofish's category id.
images, imageCount, descriptionEvery photo, and the description when includeDescription is on.
sourceItemRecord, sourceDetailPageWhich part of Goofish answered for this row. Both true is a complete row.
foundViaSellerPresent only on rows from a seller profile you asked for, when the listing's own seller matches it.

🧾 Reading the output

Real rows have no charged field. Every free row carries charged: false, so dropping those leaves only listings.

RowHow to spot itCharged
A listingan itemId and no charged fieldyes
The example row_sample: trueno
A note_diagnostic: true, with a reason and a noteno

Notes use reason, not an error code:

reasonWhat it means
not_foundThe listing is gone, sold, withdrawn or deleted, or there is no public profile with that seller id.
unreadable_inputNo id could be read from that line.
seller_mismatchThe listings returned for that profile belong to other sellers, so none were kept.
no_listingsThe seller has nothing on show right now.
blockedGoofish did not answer for that listing or seller. It usually clears in a few minutes.
all_exits_refusedGoofish could not be read by this run, so the remaining links were not tried. Try again in a few minutes.
charge_limit_reachedThe run's maximum cost was too low for even one listing, so nothing was fetched.
unreadable_recordGoofish answered for that listing in a shape the actor could not read.
route_changedGoofish changed how it answers, so the run stopped. Try again later, or open an issue.

▶️ How to run it

1. Open Goofish Scraper and click Try for free. 2. Paste listing links into Item links, or profile links into Seller links, one per line. 3. Set Maximum listings. 4. Untick Include the seller's description if you only want prices and counts. 5. Click Start, then download the dataset as JSON, CSV or Excel.

💰 How much does it cost?

$3.50 per 1,000 listings, flat on every Apify plan.

Not charged: the example row, every note above, and a listing that turns up twice, which is delivered once. If you set a maximum cost for the run, it stops when that is reached and says so in the log; if the limit is too low for a single listing, nothing is fetched at all.

💡 What people use it for

  • Watching the asking price and the want and view counts on listings you already follow, on a

schedule.

  • Reading a seller's whole shelf before buying from them: good-review rate, reply rate and what else

they sell.

  • Comparing interest across listings of the same kind. A ¥3 listing with 2,119 wants and 10,356 views

is a very different thing from a ¥2,569 camera with none.

  • Keeping a record of listings, with their photo links and descriptions, before they sell and

disappear.

🚧 What it does not do

  • No keyword search. Goofish keeps search for signed-in accounts, and this uses none. If you

need "every listing for X", this is the wrong tool.

  • No sold history. A seller profile shows the current shelf. Sold and delisted items are not on

it.

  • soldCount is 0 on most listings, and a 0 does not mean nothing sold. Goofish fills it in

unevenly. The want and view counts are the reliable ones.

  • No translation. Titles, cities, conditions and "last seen" stay in Chinese, as listed.
  • No currency conversion. Prices are in yuan.
  • No unmasked nicknames. Goofish masks them for anyone who is not signed in.
  • A row is a snapshot. Sellers change prices and relist the same thing often.

🧭 Which China marketplace scraper do you need?

If you wantUse
Second-hand listings on Goofish, from linksThis one
Taobao products by categoryTaobao Category Products Scraper
Products from Taobao's recommendation feedTaobao Product Feed Scraper
Wholesale prices, order minimums and suppliers on 16881688 Wholesale Scraper
Public RedNote (Xiaohongshu) notes with their engagementRedNote Scraper

❓ Questions people ask

Can it search Goofish by keyword? No. Goofish only offers search to signed-in accounts, and this works from listing and seller links.

Do I need a Goofish account, a cookie or a token? No. You paste links, and nothing else is asked for.

Is Xianyu the same as Goofish? Yes. 闲鱼 (Xianyu) is the Chinese name, Goofish the name on the international site, and Idlefish a common translation.

How many listings can I pull from one seller? As many as their profile shows, up to your Maximum listings.

Why are some fields null on an old listing? Goofish keeps less for long-archived listings. sourceItemRecord: false marks those rows, and the missing fields are left empty rather than filled with a guess.

Is this legal? It reads listings anyone can open without signing in. Apify's write-up on the legality of web scraping is a good starting point. We are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page and send the links you used and the run ID. The note rows in the dataset usually name the reason already.