This skill searches public Temu marketplace shops for competitor discovery and store-level benchmarking. Use only the endpoints needed for the user's request, and read references/api.md for the complete request and response contract.
The site-list and category-list endpoints are helper capabilities for shop search. A request solely for site or category metadata must not auto-select this skill. If the user explicitly invokes this skill, or the skill is already active, either helper may be called independently.
Endpoints
/geekbi/temu/mallSearch
| Intent | Endpoint | Script |
|---|---|---|
| Discover and benchmark shops | /geekbi/temu/mallSearch |
geekbi_temu_mall_search.py |
Request
regionIdselects the marketplace. Resolve it from a non-null positivesites[].regionId; never substitutesiteId.catIdsis an integer array of shop category IDs. Populate it only from validcategories[].catIdvalues.- Shop search returns paginated
items[]. The default marketplace isregionId: 211(United States), withpage: 1andsize: 20. regionId,page, andsizeselect the marketplace and page.sizeis 1–200 andpage * sizemust not exceed 10,000.keywordmatches the shop name.catIdsis an integer array, not a comma-separated string.- Range filters use paired
*Min/*Maxfields formallSold,mallSales,mallStar,reviewNum,goodsNum,followerNum, andavgPrice. Never make a minimum greater than its maximum. mallStarMin/Maxmust remain within 0–5.hostingModeis1(full-managed) or2(semi-managed).mallOpenTimeMin/Maxuse ISO-8601 date-time strings. If both are supplied, both must parse and the minimum must not exceed the maximum.orderisascordesc. Use asortfield only after the API or an established workflow confirms it.
Response
| Path | Meaning |
|---|---|
items[].mallId / items[].mallName |
Shop identity |
items[].mallSold / items[].mallSales |
Historical cumulative unit sales and revenue |
items[].mallStar / items[].reviewNum |
Shop rating and historical review count |
items[].goodsNum / items[].followerNum |
Active product count and follower count |
items[].avgPrice |
Average order value in the selected site's currency |
items[].catIds / items[].catItems |
Main category IDs and category paths |
items[].day* / week* / month* |
Returned period metrics and growth rates |
/geekbi/temu/siteList
| Intent | Endpoint | Script |
|---|---|---|
| Resolve Temu marketplaces | /geekbi/temu/siteList |
geekbi_temu_site_list.py |
Request
- Site list takes
{}. Reuse only a non-null positivesites[].regionId, neversiteId.
Response
| Path | Meaning |
|---|---|
sites[].regionId |
Marketplace ID accepted by shop search |
sites[].siteId |
Upstream internal ID; do not use as the marketplace selector |
/geekbi/temu/categoryList
| Intent | Endpoint | Script |
|---|---|---|
| Browse the category tree | /geekbi/temu/categoryList |
geekbi_temu_category_list.py |
Request
parentCatIddrills into the category tree. Omit it for top-level categories, then reuse a returnedcatIdto fetch children.- Category list takes
{}for top-level categories or{"parentCatId": <catId>}for children. Reuse only a non-null validcatId.
Response
| Path | Meaning |
|---|---|
categories[].catId |
Category ID accepted in catIds or as the next parentCatId |
Shared Workflow Rules
- Use site/category helpers only when the user has not already supplied a valid ID. Do not run a paid search merely to answer a helper-only request.
- Stop and explain when no valid helper ID is returned; do not guess an ID or launch the shop search with a mismatched site/category.
| Path | Meaning |
|---|---|
errcode / errmsg |
Gateway business status; verified success is 200 / ok |
Business fields may be absent or null. Preserve the runtime JSON type and do not replace missing values with zero.
How to call
- API endpoint:
POST /geekbi/temu/mallSearch、POST /geekbi/temu/siteListorPOST /geekbi/temu/categoryList(for full parameters/response/error codes seereferences/api.md) - Python script:
python scripts/geekbi_temu_mall_search.py '<JSON 参数>' [--inline]、python scripts/geekbi_temu_site_list.py '{}' [--inline]orpython scripts/geekbi_temu_category_list.py '<JSON 参数>' [--inline] - Cost constraints: shop search consumes 15 compute units per call, site/category lists consume no compute units; the same endpoint with the same parameter combination uses a 24h local cache, and by default is called only once per session.
--inlinedoes not bypass the cache;--no-cacheskips cache reads and writes and forces a real request; paid endpoints may deduct compute units again, while free auxiliary endpoints only force a refresh. Failures, empty results, or transient errors must not be automatically retried, nor must keywords, pages, sites, or filter conditions be automatically changed for continuous probing; if paid retrieval needs to continue, first explain to the user that additional consumption will occur.
Output strategy (script default behavior):
- Alwayswrite the full response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-geekbi-temu-shop-<timestamp>.json;<cwd>is the current working directory when the script runs,<session>is taken from the environment variableSESSION_ID, and is automatically generated when not set. If the current directory is not writable, report an error directly; do not fall back to the user directory or the system temporary directory. - Response body ≤ 8 KB: after writing to disk, print the full JSON to stdout
- Response body > 8 KB: after writing to disk, stdout outputs only a summary (top-level status fields, common business counts, the length of the largest business list after ignoring
columns+ the first 3 samples) - Add
--inlineto force full printing to stdout (also written to disk)
Data reading suggestions: first look at the summary to judge whether it is sufficient; when specific fields are needed, prefer to use jqorConvertFrom-Json to extract on demand from the saved json file, avoiding putting the entire JSON into the context.
Resolve authentication and compute unit issues
When the following abnormal situations occur, use references/onboarding.md to guide resolution:
Abnormal situation
- API Key not configured: the environment variable is not configured
LINKFOX_AGENT_API_KEYor the compatible keyLINKFOXAGENT_API_KEY。 - Response 401 or 402 status code。
- Response indicates insufficient compute units or balance: the message contains “算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值” or similar meaning.
Usage Examples
# Resolve regionId (use sites[].regionId, not siteId)
python scripts/geekbi_temu_site_list.py '{}'
# Browse top-level categories, then fetch one node's children
python scripts/geekbi_temu_category_list.py '{}'
python scripts/geekbi_temu_category_list.py '{"parentCatId":1}'
# Verified non-empty US shop search
python scripts/geekbi_temu_mall_search.py '{"regionId":211,"page":1,"size":3,"mallStarMin":4}'
Display Rules
- State the selected marketplace (
regionId, site name, and currency when available), filters, current page, and page size. - Present shop name,
mallId, rating, historical sales and revenue, average order value, followers, active products, hosting mode, categories, and opening time when returned. - Label monetary values with the selected site's currency. Do not assume USD merely because the default marketplace is the United States.
- Keep category IDs and shop IDs available for follow-up work, but do not expose
siteIdas a marketplace selector. - Treat rate fields as percentages only where the response contract identifies them as rates; do not silently convert units.
- Preserve
null, missing fields, andextraFieldsrather than inventing values.
Important Limitations
- This skill researches public Temu market data; it does not access or operate a seller account.
- Search can access only the first 10,000 matching records, with
sizefrom 1 to 200. - The API does not publish an exhaustive sort-field enum. Do not improvise unsupported sort names.
- Category-name resolution may require multiple category-list calls from the top level down.
- A shop row is a current upstream snapshot; do not infer causality or future performance from one page alone.
- Do not automatically call helper endpoints when the user already supplied valid IDs.
- Do not retry a paid endpoint with changed filters after an empty result without user confirmation.
User Expression & Scenario Quick Reference
Applicable: “用 GeekBI 查 Temu 店铺”, “比较 Temu 店铺平均客单价和动销”, “看粉丝/商品数/销量/销售额的日周月增长”, “linkfox-geekbi-temu-shop”.
Adjacent: Within an active shop-search workflow, resolve an unknown marketplace or category through the helper endpoints. If the user explicitly invokes this skill, either helper may also be called independently without launching a shop search.
Not an automatic trigger: A request solely to enumerate Temu sites, regionId values, categories, or catId values, unless the user explicitly invokes this skill or the skill is already active.
Not applicable: Generic Temu shop search/ranking without GeekBI-specific metrics (use linkfox-temu-store-query); Temu seller-center orders, inventory changes, listing publication, fulfillment, account authorization, advertising operations, product-level research, or research on another marketplace. Unless the user explicitly requests cross-source comparison, do not call both paid shop-data skills.
Compute unit consumption rules
Each shop search consumes 15 compute units; the site list and category list consume no compute units.
The user will pay compute units for shop search. Before high-frequency calls, paging, or changing conditions to search again, the user must decide whether to continue.
Feedback:
Auto-detect and report feedback via the Feedback API when any of the following apply:
- The functionality or purpose described in this skill does not match actual behavior
- The skill's results do not match the user's intent
- The user expresses dissatisfaction or praise about this skill
- Anything you believe could be improved
Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.
For more high-quality, professional cross-border e-commerce skills, visit LinkFox Skills.