This skill researches Temu category opportunities and buyer-demand keywords from public marketplace data. Use only the endpoints needed for the user's request, and read references/api.md for the full request and response contract.
The site-list and category-list endpoints are helper capabilities. A helper-only request must not auto-select this skill unless the user explicitly invokes it or the skill is already active.
Core Concepts
regionIdselects the marketplace. Resolve it from a non-null positivesites[].regionId; never substitutesiteId. The gateway default isregionId: 211(United States).dsris a supply-demand signal, not a standalone go/no-go score. Cross-check demand scale, recent growth, item/shop supply, and price.- Search responses are paginated
items[]. Defaults arepage: 1andsize: 20;sizeis 1–200 andpage * sizemust not exceed 10,000.orderhas no gateway default; when supplied, it must beascordesc(case-insensitive). - Range filters are limited to
dsr,totalSold,avgPrice,totalSales,itemCount, andmallCount, each withMin/Max. Never make a minimum greater than its maximum; all exceptdsrmust be non-negative. - Use site/category helpers only when the user has not supplied a valid ID. Stop if no unambiguous ID is returned.
- Do not launch a paid search merely to answer a site-list or category-tree request.
| Intent | Endpoint | Script |
|---|---|---|
| Compare category demand and competition | /geekbi/temu/categorySearch |
geekbi_temu_category_search.py |
| Discover and compare buyer-demand keywords | /geekbi/temu/keywordSearch |
geekbi_temu_keyword_search.py |
| Resolve Temu marketplaces | /geekbi/temu/siteList |
geekbi_temu_site_list.py |
| Browse the category tree | /geekbi/temu/categoryList |
geekbi_temu_category_list.py |
Endpoint: /geekbi/temu/categorySearch
Request
- Category research uses
keywordto compare market capacity and competition. Use the separate category-list helper withparentCatIdwhen a trusted category tree must be traversed;categorySearchitself does not acceptcatLevelorparentCatId. - Use
keywordfor a Chinese or English category name.catLevelandparentCatIdare response/helper concepts, notcategorySearchrequest fields. - Filter or rank broad demand with
totalSold; usedsrfor candidate discovery. TreatmonthSoldRateandmonthSalesRateas response fields for recent-growth analysis, not as range-filter request fields. itemCountandmallCountcan be filtered with Min/Max fields. Period*ItemCountand*MallCountvalues are response-only changes and can be negative.
# Compare US pet-related categories by cumulative demand
python scripts/geekbi_temu_category_search.py '{"regionId":211,"keyword":"宠物","totalSoldMin":1000,"sort":"totalSold","order":"desc","page":1,"size":20}'
Response
| Path | Meaning |
|---|---|
items[].catId / items[].parentCatItems[] |
Category identity and verified hierarchy |
items[].totalSold / totalSales / avgPrice |
Cumulative demand, revenue, and average price |
items[].itemCount / mallCount |
Product and shop supply |
items[].semiManagedItemCount / semiManagedMallCount |
Semi-managed supply counts |
items[].day* / week* / month* |
Period demand, supply changes, and growth rates |
errcode / errmsg |
Gateway business status; verified success is 200 / ok |
Endpoint: /geekbi/temu/keywordSearch
Request
- Keyword research uses
keywordfor a specific phrase orcatIdsfor category-led discovery. Combine them only when the user explicitly wants a phrase within a category. - Resolve
catIdsfrom validcategories[].catIdvalues or a verified category-search result. Prefer level-1 or level-2 IDs for broad discovery. - Search a supplied phrase with
keywordwithout silently translating or replacing it. - For category-led discovery, use
catIdsfrom the category helper. Multiple IDs match any supplied category. - Rank hot terms with
totalSoldand blue-ocean candidates withdsr. Analyze recent demand from returnedmonthSoldRateormonthSalesRate; these period metrics are not range-filter request fields. UsefirstOnSaleTimeMin/Maxfor market recency. firstOnSaleTimeMin/Maxuse ISO-8601 timestamps and describe the earliest associated product listing time.
# Discover dress-related demand terms within a verified category
python scripts/geekbi_temu_keyword_search.py '{"regionId":211,"keyword":"dress","catIds":[27011],"totalSoldMin":1000,"sort":"totalSold","order":"desc","page":1,"size":20}'
Response
| Path | Meaning |
|---|---|
items[].keyword / items[].cnKeyword |
Search phrase and optional Chinese form |
items[].catIds / items[].catItems[] |
Categories associated with a keyword |
items[].totalSold / totalSales / avgPrice |
Cumulative demand, revenue, and average price |
items[].itemCount / mallCount |
Product and shop supply |
items[].semiManagedItemCount / semiManagedMallCount |
Semi-managed supply counts |
items[].day* / week* / month* |
Period demand, supply changes, and growth rates |
items[].firstOnSaleTime |
Earliest associated product listing time; not keyword creation time |
errcode / errmsg |
Gateway business status; verified success is 200 / ok |
Endpoint: /geekbi/temu/siteList
Request
# Resolve a non-US marketplace; use regionId, not siteId
python scripts/geekbi_temu_site_list.py '{}'
Response
| Path | Meaning |
|---|---|
sites[].regionId |
IDs accepted by the research endpoints |
errcode / errmsg |
Gateway business status; verified success is 200 / ok |
Endpoint: /geekbi/temu/categoryList
Request
# Resolve a trusted category path when only a category name is known
python scripts/geekbi_temu_category_list.py '{}'
python scripts/geekbi_temu_category_list.py '{"parentCatId":27011}'
Response
| Path | Meaning |
|---|---|
categories[].catId |
IDs accepted by the research endpoints |
errcode / errmsg |
Gateway business status; verified success is 200 / ok |
Fields can be absent or null. Preserve runtime JSON types and raw rate values; do not replace missing values with zero.
How to call
- API endpoint:
POST /geekbi/temu/categorySearch、POST /geekbi/temu/keywordSearch、POST /geekbi/temu/siteListorPOST /geekbi/temu/categoryList(for full parameters/responses/error codes, seereferences/api.md) - Python script:
python scripts/geekbi_temu_category_search.py '<JSON 参数>' [--inline]、python scripts/geekbi_temu_keyword_search.py '<JSON 参数>' [--inline]、python scripts/geekbi_temu_site_list.py '{}' [--inline]orpython scripts/geekbi_temu_category_list.py '<JSON 参数>' [--inline] - Cost constraints: Category search and keyword search each consume 15 compute units per call; site list and category list do not consume 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 be incurred.
Output strategy (default script behavior):
- Alwayswrite the complete response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-geekbi-temu-market-research-<timestamp>.json;<cwd>is the current working directory when the script is executed,<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 and do not fall back to the user directory or system temporary directory. - Response body ≤ 8 KB: after saving to disk, print the complete JSON to stdout
- Response body > 8 KB: after saving to disk, stdout outputs only a summary (top-level status fields, common business counts, ignoring
columnsthe length of the largest business list + the first 3 samples) - Add
--inlineto force full printing to stdout (also saved to disk)
Data reading suggestions: First look at the summary to determine whether it is sufficient; when specific fields are needed, prefer using 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 problem 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 “insufficient compute balance/insufficient billing/insufficient balance/quota exceeded/insufficient balance/package expired/recharge required/please recharge” or similar meaning.
Display Rules
- State marketplace name,
regionId, currency, filters, sort, page, and page size. - For categories, show the full category path,
catId, level, demand/revenue, average price, item/shop supply, semi-managed supply, and relevant growth fields. - For keywords, show the phrase, associated category path/IDs, demand/revenue, average price, item/shop supply, semi-managed supply, earliest listing time, and relevant growth fields.
- Label monetary values with the selected site's currency. Keep raw rate units explicit and do not silently convert them.
- Mark incomplete pagination as a sample. Keep IDs available for downstream product, shop, or keyword research.
- Preserve
null, missing fields, and upstream extensions rather than inventing values.
Important Limitations
- This skill researches public Temu market data; it does not access or operate a seller account.
totalcan be capped at 10,000. A partial page or uncompleted pagination is not the entire marketplace.dsr, growth, sales, or supply alone cannot prove an opportunity or predict future performance.firstOnSaleTimeis the earliest associated product listing time, not keyword creation time.- The category tree can require several
parentCatIdcalls; do not guess intermediate IDs. - Do not automatically call helpers when valid IDs are already available.
- Do not retry paid endpoints with changed filters or another page after empty results without user confirmation.
User Expression & Scenario Quick Reference
Applicable: “Check pet category opportunities on Temu US site”, “Find blue ocean categories with monthly demand growth”, “Dig out hot search terms for Temu dresses”, “Compare keyword supply-demand and price bands”, “Temu category/keyword demand research”.
Adjacent: Resolve an unknown non-US marketplace before research. For category-led keyword discovery, resolve a trusted catId from the category tree or a verified category result.
Not an automatic trigger: A request solely to enumerate Temu sites, regionId values, category-tree nodes, or catId values does not auto-trigger this skill. Route category-tree/catId-only requests to linkfox-temu-category-search. If this GeekBI skill was explicitly invoked or is already active, its site/category helpers may be called independently.
Not applicable: Temu product detail, shop-only benchmarking, review analysis, seller-center operations, listing changes, fulfillment, advertising, or research on another marketplace.
Compute unit consumption rules
Category search and keyword search each consume 15 compute units per call; site list and category list do not consume compute units.
Users will pay compute units for category search and keyword search. Before high-frequency calls, paging, or re-searching with changed conditions, 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.