Use case

Check what used goods really sell for on Xianyu before you buy or list

Search Xianyu (Goofish) by keyword and get second-hand listings as JSON with price, original price, condition, city, seller and date, for resale price research.

Prepaid, no subscriptionREST or MCPOne key for models, data and agents
XianyuGoofishlovelyjsonitems[0]"title": "iPhone 15 Pro 256G 99…"price": "5,200""original_price": "8,999""condition": "Like new""city": "Shenzhen""posted": "2026-10-26"

If you flip used electronics, price a trade-in, or want to know how fast a product loses value in China, the number you need is what people actually ask for it on the resale market, not the retail price. Xianyu has that number, in Chinese, spread over thousands of listings. Lovely Router collects them. Send a keyword, get one JSON object per listing, pay per listing from a prepaid balance. Call it from a script, a spreadsheet job or an AI agent with one API key.

Hand it to your AI agent

Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.

Check what used goods really sell for on Xianyu before you buy or list. Use the Lovely Router data tools: each returns JSON and is billed per result.

- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.

My task: <the inputs (links, keywords or accounts) and how many results you need>
01

How it works

010203
  1. Pick keywords and filters

    Use the name of the product as sellers write it, usually in Chinese. Add a price range, a sort order and how recent the listings should be.

  2. Run the tool with a cap

    Send the keyword to POST /v1/tools/xianyu-listings/run with max_results. The run holds its maximum cost from your balance and returns the listings as JSON.

  3. Work out the market price

    Take the median asking price, compare it to the original price, and look at how condition and city change it.

02

Search Xianyu with one request

Search Xianyu second-hand listings takes a keyword, or up to three in keywords, or search links in searchUrls. maxItems is the cap, and sortBy, priceMin, priceMax (in CNY) and publishedWithinDays (1, 3, 7 or 14) narrow the results:

curl https://lovelyrouter.com/v1/tools/xianyu-listings/run \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "input": {
      "keyword": "iphone",
      "maxItems": 50,
      "sortBy": "newest",
      "publishedWithinDays": "7"
    },
    "max_results": 50
  }'

A run still going after 60 seconds returns 202; Run a tool shows how to poll.

03

What each listing holds

Field groupWhat you get
ItemTitle and photos
PriceThe asking price and the original price
ConditionThe condition the seller states
PlaceThe seller's city
SellerThe seller
TimeThe posted date

Text comes back as sellers wrote it, in Chinese. Ask a model to translate titles and normalize conditions in the same job.

04

Recipes

Price a trade-in program

Search each model you accept, take the median asking price of the last 14 days, and set your offer as a share of it.

Find underpriced listings

Sort by priceAsc with a priceMin that removes junk listings, and flag items far below the median for the same model.

Measure depreciation

Compare price to original price across a product line. Rerun monthly to see how fast each model loses value.

Watch for price drops

Sort by priceDrop for a keyword to catch sellers who are cutting prices.

Translate a sourcing list

Run Chinese keywords for the goods you want to buy, translate the titles with a model, and shortlist by city and price.

Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Search Xianyu for the Chinese name of this camera lens, published in the last 7 days, and give me the median asking price, the cheapest five, and their cities. Set max_results to 100."

06

What you pay

You pay per listing: starting a run holds its maximum cost, the per-call fee plus the per-listing fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the listings it delivered, and a run refused at the start costs nothing.

Pulling 100 listings a day is billed as 100 listings a day. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.

07

Frequently asked questions

?
Does it work with an English keyword?+

The input says to search in the language sellers use, which is Chinese for most items. Try the Chinese name for best coverage.

Can I filter by price?+

Yes, with priceMin and priceMax in CNY. You can also sort by relevance, newest, priceAsc, priceDesc, priceDrop, modified or credit.

How many listings can I get?+

Up to 300 per run, and 20 by default. Set maxItems and max_results to the number you want.

Can I search from a Xianyu link?+

Yes. Paste Goofish search links in searchUrls; when set, they override keyword.

Do I need a Xianyu account?+

No. You send a keyword and an API key.

Do I need a subscription?+

No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.

Sourcing from China? See Taobao and Tmall product data, e-commerce intelligence and the rest of the tool catalog.

One prepaid key for models, data and agents

No subscription. Top up, use what you need, see every charge in your logs.