Goofish Xianyu Search Scraper

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

Data fields

FieldTypeDescription
itemIdstringValue exported as itemId.
urlstringValue exported as url.
keywordstringValue exported as keyword.
pageintegerValue exported as page.
positionintegerValue exported as position.
titlestringValue exported as title.
pricenumberValue exported as price.
currencystringValue exported as currency.

Input preview

keywordsSearch keywords *
maxItemsMaximum listings
resultsPerPageResults per page
maxPagesPerKeywordMaximum pages per keyword

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export public Goofish (闲鱼 / Xianyu) marketplace search results to JSON, CSV, Excel, or your preferred integration. Search in Chinese or English and collect normalized listing, price, seller, location, image, category, and demand data.

Input example

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

Output example

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

What data it exports

Field Description
itemId Public listing identifier
url Public listing URL
keyword Search term that produced the row
page Search result page number
position Listing position within the result page
title Listing title
price Numeric asking price
currency Price currency, normally CNY
area Public location shown on the result
imageUrl Primary listing image URL
sellerName Public seller display name
sellerAvatarUrl Public seller avatar URL
sellerId Public seller identifier when available
wantCount Number of users showing interest
publishedAt Posting time when available
categoryId Public category identifier
categoryName Public category name
labels Listing and category labels
freeShipping Whether free shipping is advertised
isAuction Whether the result is an auction
isVideo Whether the result includes video
detailPageType Public listing-page type
scrapedAt ISO collection timestamp

Optional values are omitted when they are not present on a public search result. The Actor does not invent values.

Input settings

Key Description Default
keywords One or more Chinese or English search terms required
maxItems Total unique listings saved 20
resultsPerPage Listings requested per page 30
maxPagesPerKeyword Pagination safety limit per keyword 20

maxItems applies across all keywords. Add several keywords when you want one combined, deduplicated export.

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.

Use cases

Price monitoring

Schedule the Actor with the same keyword and compare price, area, and scrapedAt over time.

Product availability research

Collect listings for model names, brands, collectibles, parts, or local-language product terms.

Regional marketplace analysis

Group exported rows by area to compare supply and asking prices across public locations.

Seller and category research

Use seller summaries, labels, and categories to understand how relevant listings are presented.

Alerts and workflows

Connect an Apify schedule, webhook, Make, Zapier, n8n, Google Sheets, or your own API consumer.

Input recipes

Quick sample

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

Multiple Chinese keywords

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

Bounded pagination

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

Tips and limits

  • Use specific Chinese terms for the most relevant local results.
  • Start with maxItems between 10 and 20 while testing a keyword.
  • maxItems is capped at 1,500 per run.
  • Public listings can change or disappear between runs.
  • A broad keyword may produce less relevant rows than a model or category phrase.
  • Optional fields depend on what Goofish exposes on each result.
  • Results are deduplicated by listing identity across keywords and pages.
  • Exported timestamps use ISO format for easier downstream processing.

Export Goofish Xianyu search data

Export Goofish Xianyu search data as JSON, CSV, Excel, XML, RSS, or JSONL from an Apify dataset. You can also:

  1. Schedule recurring runs in Apify Console.
  2. Trigger the Actor from an application through the API.
  3. Send run-finished webhooks to another service.
  4. Connect datasets to Google Sheets or cloud storage.
  5. Consume results from an AI agent through Apify MCP.

API usage: Goofish Xianyu search API

Use the Goofish Xianyu search API workflow below to run keyword searches programmatically and retrieve the resulting dataset. Replace $APIFY_TOKEN with an Apify API token stored securely in your environment.

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~goofish-xianyu-search-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"keywords":["iPhone 15"],"maxItems":20}'

JavaScript

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,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP and AI agents

Use Apify MCP to let Claude and other compatible agents run searches and consume structured results.

Add the hosted MCP server with the Claude CLI:

claude mcp add --transport http apify https://mcp.apify.com/?tools=fetch_cat/goofish-xianyu-search-scraper

Or add it to an MCP JSON configuration:

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

Example prompts:

  • “Search Xianyu for iPhone 15 listings and return the 20 lowest prices.”
  • “Find public bicycle listings and group the results by area.”
  • “Export current camera listings with seller and category fields.”

Support

For a reproducible issue, open the Actor Issues tab and include:

  • the run URL,
  • the input used,
  • the expected behavior,
  • the observed behavior, and
  • a small public keyword that reproduces the problem.

This context makes diagnosis faster while avoiding account credentials or private data.

Common questions

Questions and answers reused from the canonical actor README.

What data can I export with Goofish Xianyu Search Scraper?

You can export listing identifiers, URLs, titles, prices, locations, images, public seller summaries, demand 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.