# Goofish 闲鱼 Xianyu Seller Data & Reviews Scraper (Idlefish) (`zen-studio/goofish-xianyu-seller-scraper`) Actor

Extract seller profiles, listings, reviews, ratings, follower counts, shop stats, prices, and image URLs from Goofish 闲鱼/Xianyu/Idlefish. Supports seller URLs, item URLs, deeplinks, and raw IDs.

- **URL**: https://apify.com/zen-studio/goofish-xianyu-seller-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Goofish Sellers & Reviews Scraper (闲鱼 / Xianyu / Idlefish)

![Goofish Sellers & Reviews Scraper](https://iili.io/B4QqQDu.png)

Extract Goofish seller profiles, listings, and reviews from seller URLs, item URLs, mobile deeplinks, or raw seller IDs.

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">One row per seller with nested listings and reviews</span> <span style="font-size:15px;color:#57534E"> - seller identity, shop stats, follower counts, listing cards, review summaries, reviewer details, tags, prices, and image URLs.</span>
</blockquote>

Use this Actor when you need seller-level intelligence instead of keyword search results or single item enrichment.

<table style="width:100%">
<tr>
<td colspan="5" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio China Scrapers</span>
<span style="color:#D7F4DD;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Goofish, real estate, and wholesale data</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5QcLc4BHaLMBUKYs3-f3CWQ60Row-goofish-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/goofish-xianyu-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Goofish Search</a></span><br>
<span style="color:#78716C;font-size:11px">Keyword discovery</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1vbpDShUjMFGaGcta-1fcx609tQN-goofish-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/goofish-xianyu-item-detail-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Goofish Detail</a></span><br>
<span style="color:#78716C;font-size:11px">URL/ID enrichment</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-2EHa8oEwBE1sDJaGb-tVMa2WLtpP-goofish-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/goofish-xianyu-seller-scraper" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:13px">Sellers &amp; Reviews</a></span><br>
<span style="color:#4C945E;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1tAzNSf8Kz0v7Q2Lr-AINJ7FsZVU-anjuke-scraper-logo.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/anjuke-real-estate-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Anjuke</a></span><br>
<span style="color:#78716C;font-size:11px">Property listings</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ghXSMZcW3GxsCrkiR-5hnvsKv4Yt-1688-wholesale-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/1688-wholesale-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">1688</a></span><br>
<span style="color:#78716C;font-size:11px">Wholesale products</span>
</td>
</tr>
</table>

#### Copy to your AI assistant

```text
zen-studio/goofish-xianyu-seller-scraper on Apify. Extracts Goofish (闲鱼 / Xianyu / Idlefish) seller profiles, listings, and reviews. Accepts seller profile URLs, item URLs, fleamarket:// deeplinks, or raw numeric seller IDs. Returns one row per seller with profile fields, shop stats, follower counts, listing groups, listing cards, review summary tabs, reviewer info, review text, review tags, ratings, timestamps, and image URLs. Call ApifyClient("TOKEN").actor("zen-studio/goofish-xianyu-seller-scraper").call(run_input={"sellerInputs":["https://www.goofish.com/personal?userId=2215160932230"],"maxListings":10,"maxReviews":100}), then client.dataset(run["defaultDatasetId"]).list_items().items.
````

### Key Features

- **Seller profile rows** - display name, avatar, bio, seller IDs, verification tags, credit badge, and profile URL
- **Shop and social stats** - shop level, score, review count, praise ratio, followers, following, listing count, and review count
- **Nested listings** - item IDs, URLs, titles, prices, status, images, labels, category ID, and seller group IDs
- **Nested reviews** - review text, rating, reviewer name/avatar, timestamps, item price, tags, trade metadata, and image URLs
- **Flexible input** - seller URLs, item URLs, mobile deeplinks, or raw numeric seller IDs

### How to Scrape Goofish Sellers & Reviews

#### Basic seller profile

```json
{
  "sellerInputs": [
    "https://www.goofish.com/personal?userId=2215160932230"
  ],
  "maxListings": 10,
  "maxReviews": 100
}
```

#### Resolve seller from an item URL

```json
{
  "sellerInputs": [
    "https://www.goofish.com/item?id=1044286302750"
  ],
  "includeListings": true,
  "includeReviews": true
}
```

#### Reviews only

```json
{
  "sellerInputs": [
    "2215160932230"
  ],
  "includeListings": false,
  "includeReviews": true,
  "maxReviews": 250
}
```

#### Unlimited seller export

```json
{
  "sellerInputs": [
    "https://www.goofish.com/personal?userId=2215160932230"
  ],
  "maxListings": 0,
  "maxReviews": 0
}
```

Use unlimited mode only when you expect a large run. A single seller can have thousands of listings or reviews.

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sellerInputs` | string\[] | required | Seller profile URLs, item URLs, `fleamarket://` deeplinks, or raw numeric seller IDs. |
| `includeListings` | boolean | `true` | Include the seller's listings under `listings[]`. |
| `includeReviews` | boolean | `true` | Include seller reviews under `reviews[]`. |
| `maxListings` | integer | `10` | Listings per seller. Set `0` for unlimited. |
| `maxReviews` | integer | `100` | Reviews per seller. Set `0` for unlimited. |
| `listingGroupId` | integer | - | Optional listing limit filter. Use a value from a previous row's `groups[].id`. |

Search URLs and seller-name search are not supported. Invalid input fails the run with a clear message so you do not get a misleading empty dataset.

### Output

The Actor pushes one dataset row per seller. Successful rows use `rowStatus: "ok"`.

Each row can include:

- **Profile** - `id`, `url`, `displayName`, `avatarUrl`, `bio`, `ipProvince`, `kcUserId`, `userTypeRaw`
- **Verification and credit** - `verification`, `verificationTags`, `creditBadge`
- **Shop and social** - `shop`, `social`, `counts`
- **Listing metadata** - `groups`, `listings[]`
- **Review metadata** - `reviewTabs`, `reviews[]`

#### Output Example

This example shows every possible output key. Actual rows omit unavailable fields. Arrays are shortened only when the next objects repeat the same shape.

```json
{
  "rowStatus": "ok",
  "id": "2217074941755",
  "url": "https://www.goofish.com/personal?userId=2217074941755",
  "displayName": "雪球严选东莞仓",
  "avatarUrl": "https://img.alicdn.com/bao/uploaded/i4/example.jpg",
  "bio": "专注二手手机与数码商品",
  "ipProvince": "江苏省",
  "kcUserId": "2217074941755",
  "userTypeRaw": 1,
  "verificationTags": [
    {
      "code": "real_name_certification_77",
      "label": "Real-name verified"
    },
    {
      "code": "xianyu_user_upgrade",
      "label": "Xianyu upgraded account"
    },
    {
      "code": "tb_xianyu_user",
      "label": "Taobao/Xianyu user"
    }
  ],
  "verification": {
    "realName": true,
    "zhimaCredit": false,
    "xianyuUpgrade": true,
    "xianyuPlayer": false,
    "isTaobaoUser": true
  },
  "creditBadge": {
    "role": "seller",
    "level": 5,
    "text": "卖家信用极好",
    "code": "seller_credit_level",
    "codeRaw": "cs_seller_level",
    "type": "credit_level_badge",
    "typeRaw": "ylzLevel",
    "iconUrl": "https://gw.alicdn.com/imgextra/example.png",
    "url": "https://www.goofish.com/credit/example"
  },
  "shop": {
    "level": "L7",
    "score": 56569,
    "reviewNum": 6239,
    "praiseRatio": 95,
    "superShop": true,
    "showsPhone": false,
    "levelJumpUrl": "https://www.goofish.com/seller-level/example",
    "extIdentityRaw": "9",
    "itemToppingLimit": 50
  },
  "social": {
    "followers": "1.8w",
    "followersCount": 18000,
    "following": 17,
    "attentionPrivacyProtected": false
  },
  "counts": {
    "items": 27388,
    "reviews": 6383
  },
  "sourceInputs": [
    "https://www.goofish.com/personal?userId=2217074941755"
  ],
  "groups": [
    {
      "id": 37792707,
      "name": "在售",
      "itemCount": 8187,
      "default": true,
      "status": "on_sale"
    },
    // more listing groups...
  ],
  "reviewTabs": [
    {
      "name": "全部",
      "type": "all",
      "attitude": "all",
      "count": 6383,
      "id": "all"
    },
    {
      "name": "好评",
      "type": "positive",
      "attitude": "all",
      "count": 3278,
      "id": "positive"
    },
    // more review tabs...
  ],
  "listings": [
    {
      "id": "1043702407890",
      "url": "https://www.goofish.com/item?id=1043702407890",
      "deeplinkUrl": "fleamarket://item?id=1043702407890",
      "detailUrl": "https://www.goofish.com/item?id=1043702407890",
      "title": "vivo X200 Ultra 16GB+512GB",
      "price": 4089,
      "priceOriginal": 4299,
      "soldPrice": 4089,
      "currency": "CNY",
      "pricePrefix": "¥",
      "picUrl": "https://img.alicdn.com/bao/uploaded/i4/example.jpg",
      "itemStatus": "online",
      "itemStatusRaw": 0,
      "auctionType": "buy_now",
      "auctionTypeRaw": "b",
      "categoryId": "50025386",
      "postInfo": "24小时前发布",
      "images": [
        {
          "url": "https://img.alicdn.com/bao/uploaded/i4/example.jpg",
          "width": 2600,
          "height": 2600,
          "major": true,
          "type": "image",
          "photoSearchUrl": "https://s.taobao.com/search?q=example",
          "whiteBackground": false,
          "labels": [
            "主图"
          ]
        }
      ],
      "picWidth": 2600,
      "picHeight": 2600,
      "hasVideo": false,
      "badges": [
        "严选",
        "24小时内发布"
      ],
      "groupId": "37792707",
      "isShopUser": true
    },
    // more listings...
  ],
  "reviews": [
    {
      "rateId": 39625257937,
      "reviewLane": "visible",
      "rating": "positive",
      "ratingRaw": 1,
      "text": "非常不错",
      "sourceType": "transaction_order",
      "bizCodeRaw": "order",
      "tags": [
        "运行流畅",
        "发货快"
      ],
      "tagDetails": [
        {
          "text": "运行流畅",
          "sentiment": "positive",
          "sentimentRaw": "GOOD",
          "type": "custom_word",
          "typeRaw": "4"
        }
      ],
      "roleTags": [
        "买家"
      ],
      "reviewerName": "匿名用户",
      "reviewerRole": "buyer",
      "at": "2026-04-19T13:15:27+08:00",
      "dateLabel": "2026-04-19",
      "reviewerAvatarUrl": "https://gw.alicdn.com/imgextra/example-avatar.jpg",
      "reviewerIpProvince": "广东",
      "tradeId": "39625257937",
      "itemId": "1043702407890",
      "itemPrice": 4089,
      "tradeItemSkuInfo": "16GB+512GB",
      "tradeInfo": {
        "itemSkuInfo": "16GB+512GB",
        "itemTitle": "vivo X200 Ultra",
        "itemPic": "https://img.alicdn.com/bao/uploaded/i4/example.jpg"
      },
      "appendCount": 0,
      "praiseCount": 12,
      "highQuality": true,
      "rateStatusRaw": 1,
      "imageUrls": [
        "https://img.alicdn.com/bao/uploaded/i4/review-example.jpg"
      ]
    },
    // more reviews...
  ],
  "scrapedAt": "2026-04-22T08:00:00+02:00",

  // Present only on partial/error rows, for example rowStatus "partial" or "error":
  "detailError": "row_size_limit"
}
```

### Pricing

This Actor uses pay-per-event pricing.

| Event | Price | When it is charged |
|-------|-------|--------------------|
| Seller | `$0.005` | For each successfully loaded seller profile |
| Listing | `$0.00899` | For each listing added to `listings[]` |
| Review | `$0.001` | For each review added to `reviews[]` |

A default run for one seller with 10 listings and 100 reviews is about `$0.1949`, before Apify platform fees.

### FAQ

#### Can I paste a Goofish item URL?

Yes. The Actor resolves the seller from the item, then returns the seller row.

#### Can I paste Goofish search URLs?

No. Search URLs fail with a clear error. Use the Goofish Search actor for keyword discovery.

#### Does `maxListings: 0` mean unlimited?

Yes. The Actor keeps collecting listings until Goofish has no more listings or the run budget is reached.

#### Does `maxReviews: 0` mean unlimited?

Yes. The Actor keeps collecting reviews until Goofish has no more reviews or the run budget is reached.

#### Are reviews one row each?

No. The output is one row per seller. Reviews are nested under `reviews[]`.

#### What should I use first: search, detail, or seller?

Use Search to discover listings by keyword. Use Detail to enrich known item IDs. Use Seller when the seller profile and review history matter.

### Support

Open an issue on the Actor page if an input format fails or Goofish changes the seller page. Include the input URL and the run ID.

# Actor input Schema

## `sellerInputs` (type: `array`):

Add one seller input per line.<br><br>Supported / 支持:<br>• Seller profile: <code>https://www.goofish.com/personal?userId=2215160932230</code><br>• Item URL: <code>https://www.goofish.com/item?id=1044286302750</code> (the seller is resolved from the item)<br>• Seller deeplink: <code>fleamarket://personalPage?userid=2217074941755</code><br>• Item deeplink: <code>fleamarket://awesome\_detail?itemId=1044286302750</code><br>• Raw numeric seller ID / 纯数字卖家 ID<br><br><b>Not supported:</b> Goofish search URLs and seller-name search. 不支持搜索链接或卖家名称搜索。

## `includeListings` (type: `boolean`):

Fetch the seller's listed items and include them under <code>listings\[]</code> in the seller row.<br><br>获取卖家的商品，并写入输出里的 <code>listings\[]</code>。

## `includeReviews` (type: `boolean`):

Fetch seller reviews and include them under <code>reviews\[]</code>. The Actor collects all review types exposed by Goofish, deduplicates reviews, then applies <b>Max reviews</b>.<br><br>获取卖家评价，并写入 <code>reviews\[]</code>；会覆盖 Goofish 提供的评价类型，去重后再应用最大数量。

## `maxListings` (type: `integer`):

Maximum listings to include per seller.<br><br>Default is <b>10</b>. Set <code>0</code> for unlimited collection; the Actor stops when Goofish has no more items.<br><br>每个卖家的最大商品数。默认 <b>10</b>；设置 <code>0</code> 表示不设上限。

## `maxReviews` (type: `integer`):

Maximum reviews to include per seller.<br><br>Default is <b>100</b>. Set <code>0</code> for unlimited collection. Reviews are deduplicated and sorted newest first before this cap is applied.<br><br>每个卖家的最大评价数。默认 <b>100</b>；设置 <code>0</code> 表示不设上限。评价会先去重并按时间排序。

## `listingGroupId` (type: `integer`):

Optional. Use only when rerunning a seller from a previous output and you want one specific group from <code>groups\[].id</code>.<br><br>可选。通常留空。只有在上一次输出中看到 <code>groups\[].id</code> 并希望只抓取某个商品分组时填写。

## Actor input object example

```json
{
  "sellerInputs": [
    "https://www.goofish.com/personal?userId=2215160932230"
  ],
  "includeListings": true,
  "includeReviews": true,
  "maxListings": 10,
  "maxReviews": 100
}
```

# Actor output Schema

## `sellers` (type: `string`):

One cleaned dataset row per seller, with nested listing groups, listings, review tabs, and reviews.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sellerInputs": [
        "https://www.goofish.com/personal?userId=2215160932230"
    ],
    "maxListings": 10,
    "maxReviews": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/goofish-xianyu-seller-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sellerInputs": ["https://www.goofish.com/personal?userId=2215160932230"],
    "maxListings": 10,
    "maxReviews": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/goofish-xianyu-seller-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sellerInputs": [
    "https://www.goofish.com/personal?userId=2215160932230"
  ],
  "maxListings": 10,
  "maxReviews": 100
}' |
apify call zen-studio/goofish-xianyu-seller-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/goofish-xianyu-seller-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Goofish 闲鱼 Xianyu Seller Data & Reviews Scraper (Idlefish)",
        "description": "Extract seller profiles, listings, reviews, ratings, follower counts, shop stats, prices, and image URLs from Goofish 闲鱼/Xianyu/Idlefish. Supports seller URLs, item URLs, deeplinks, and raw IDs.",
        "version": "0.0",
        "x-build-id": "XTgYAT3W9JfDNe8ug"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~goofish-xianyu-seller-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-goofish-xianyu-seller-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~goofish-xianyu-seller-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-goofish-xianyu-seller-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~goofish-xianyu-seller-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-goofish-xianyu-seller-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "sellerInputs"
                ],
                "properties": {
                    "sellerInputs": {
                        "title": "Seller inputs / 卖家输入",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Add one seller input per line.<br><br>Supported / 支持:<br>• Seller profile: <code>https://www.goofish.com/personal?userId=2215160932230</code><br>• Item URL: <code>https://www.goofish.com/item?id=1044286302750</code> (the seller is resolved from the item)<br>• Seller deeplink: <code>fleamarket://personalPage?userid=2217074941755</code><br>• Item deeplink: <code>fleamarket://awesome_detail?itemId=1044286302750</code><br>• Raw numeric seller ID / 纯数字卖家 ID<br><br><b>Not supported:</b> Goofish search URLs and seller-name search. 不支持搜索链接或卖家名称搜索。",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeListings": {
                        "title": "Include listings / 包含商品",
                        "type": "boolean",
                        "description": "Fetch the seller's listed items and include them under <code>listings[]</code> in the seller row.<br><br>获取卖家的商品，并写入输出里的 <code>listings[]</code>。",
                        "default": true
                    },
                    "includeReviews": {
                        "title": "Include reviews / 包含评价",
                        "type": "boolean",
                        "description": "Fetch seller reviews and include them under <code>reviews[]</code>. The Actor collects all review types exposed by Goofish, deduplicates reviews, then applies <b>Max reviews</b>.<br><br>获取卖家评价，并写入 <code>reviews[]</code>；会覆盖 Goofish 提供的评价类型，去重后再应用最大数量。",
                        "default": true
                    },
                    "maxListings": {
                        "title": "Max listings / 最大商品数",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listings to include per seller.<br><br>Default is <b>10</b>. Set <code>0</code> for unlimited collection; the Actor stops when Goofish has no more items.<br><br>每个卖家的最大商品数。默认 <b>10</b>；设置 <code>0</code> 表示不设上限。",
                        "default": 10
                    },
                    "maxReviews": {
                        "title": "Max reviews / 最大评价数",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum reviews to include per seller.<br><br>Default is <b>100</b>. Set <code>0</code> for unlimited collection. Reviews are deduplicated and sorted newest first before this cap is applied.<br><br>每个卖家的最大评价数。默认 <b>100</b>；设置 <code>0</code> 表示不设上限。评价会先去重并按时间排序。",
                        "default": 100
                    },
                    "listingGroupId": {
                        "title": "Listing group ID / 商品分组 ID",
                        "type": "integer",
                        "description": "Optional. Use only when rerunning a seller from a previous output and you want one specific group from <code>groups[].id</code>.<br><br>可选。通常留空。只有在上一次输出中看到 <code>groups[].id</code> 并希望只抓取某个商品分组时填写。"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
