---
name: linkfox-echotik-product-search
description: 搜索和分析TikTok商品数据，包括销量、达人带货数据、定价和佣金比例，覆盖16个TikTok Shop站点。当用户提到TikTok商品搜索、TikTok Shop商品分析、TikTok销量数据、达人带货销售、TikTok选品、TikTok佣金比例、TikTok商品排名、EchoTik数据查询、TikTok product search, TikTok sales, influencer sales, TikTok commission, TikTok product selection, short-video e-commerce, TikTok data时触发此技能。即使用户未明确提及"EchoTik"或"TikTok"，只要其需求涉及在TikTok Shop上搜索商品或分析TikTok商品表现指标，也应触发此技能。
---

# EchoTik TikTok Product Search

This skill guides you on how to search and analyze TikTok Shop product data, helping sellers and marketers discover product opportunities, evaluate sales performance, and identify influencer-driven products on TikTok.

## Core Concepts

EchoTik is a TikTok Shop analytics platform that tracks product performance across multiple TikTok marketplaces. This tool provides keyword-based product search with rich filtering capabilities, returning detailed product data including sales volumes (1d/7d/15d/30d/60d/90d/total), GMV (revenue), pricing, ratings, review counts, commission rates, and influencer promotion statistics.

**Sales metrics**: Products include multi-period sales data — 1-day, 7-day, 15-day, 30-day, 60-day, 90-day, and total sales. The same granularity applies to GMV (Gross Merchandise Value) amounts.

**Commission rate**: Stored as a decimal (e.g., 0.05 means 5%). When a user specifies a percentage, convert it to decimal before passing to the API.

**Listing date**: The `firstCrawlDt` field uses a compact integer format `YYYYMMDD` (e.g., `20240101` for January 1, 2024).

## Parameter Guide

### Search & Filtering

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| keyword | string | Product keyword (translate to the local language of the target marketplace) | - |
| region | string | Marketplace code | US |
| categoryKeywordCN | string | Product category (must be in Chinese) | - |

### Sales Filters

| Parameter | Type | Description |
|-----------|------|-------------|
| minTotalSaleCnt / maxTotalSaleCnt | integer | Total sales volume range |
| minTotalSale30dCnt / maxTotalSale30dCnt | integer | 30-day sales volume range |
| minTotalSaleGmvAmt / maxTotalSaleGmvAmt | string | Total GMV range |
| minTotalSaleGmv30dAmt / maxTotalSaleGmv30dAmt | string | 30-day GMV range |

### Product Attribute Filters

| Parameter | Type | Description |
|-----------|------|-------------|
| minSpuAvgPrice / maxSpuAvgPrice | number | SPU average price range |
| minProductRating / maxProductRating | number | Product rating range |
| minReviewCount / maxReviewCount | integer | Review count range |
| minProductCommissionRate / maxProductCommissionRate | number | Commission rate range (decimal, e.g., 0.05 = 5%) |

### Influencer & Video Filters

| Parameter | Type | Description |
|-----------|------|-------------|
| minTotalIflCnt / maxTotalIflCnt | integer | Number of influencers promoting the product |
| minTotalVideoCnt / maxTotalVideoCnt | integer | Number of promotion videos |
| minTotalViewsCnt / maxTotalViewsCnt | integer | Total views on promotion videos |

### Listing Date & Duration

| Parameter | Type | Description |
|-----------|------|-------------|
| minFirstCrawlDt / maxFirstCrawlDt | integer | Listing date range (YYYYMMDD format, e.g., 20240101) |
| saleDays | integer | Days since listing |

### Sorting & Pagination

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| productSortField | integer | Sort field: 1=total sales, 2=total GMV, 3=avg price, 4=7d sales, 5=30d sales, 6=7d GMV, 7=30d GMV | 1 |
| sortType | integer | Sort order: 0=ascending, 1=descending | 1 |
| pageNum | integer | Page number | 1 |
| pageSize | integer | Results per page | 50 |

### Supported Marketplaces

US (United States), ID (Indonesia), TH (Thailand), PH (Philippines), MY (Malaysia), VN (Vietnam), GB (United Kingdom), MX (Mexico), SG (Singapore), SA (Saudi Arabia), BR (Brazil), ES (Spain), JP (Japan), DE (Germany), IT (Italy), FR (France)

Default marketplace is **US**. Use US when the user doesn't specify a marketplace.

## API Usage

This tool calls the LinkFox tool gateway API. See `references/api.md` for calling conventions, request parameters, and response structure. You can also execute `scripts/echotik_list_product.py` directly to run queries.

## Usage Examples

**1. Basic Keyword Search — Find top-selling products for a keyword**
```json
{
  "keyword": "phone case",
  "region": "US",
  "productSortField": 1,
  "sortType": 1,
  "pageSize": 20
}
```

**2. High-Commission Product Discovery — Products with commission >= 10%**
```json
{
  "keyword": "beauty",
  "region": "US",
  "minProductCommissionRate": 0.10,
  "productSortField": 5,
  "sortType": 1
}
```

**3. New & Trending Products — Recently listed with strong 30-day sales**
```json
{
  "keyword": "gadget",
  "region": "US",
  "minFirstCrawlDt": 20250101,
  "minTotalSale30dCnt": 1000,
  "productSortField": 5,
  "sortType": 1
}
```

**4. Influencer-Hot Products — Products promoted by many influencers**
```json
{
  "keyword": "skincare",
  "region": "US",
  "minTotalIflCnt": 50,
  "minTotalViewsCnt": 1000000,
  "productSortField": 1,
  "sortType": 1
}
```

**5. Budget-Friendly High-Sellers — Low price + high volume**
```json
{
  "keyword": "accessories",
  "region": "US",
  "maxSpuAvgPrice": 10,
  "minTotalSaleCnt": 5000,
  "productSortField": 2,
  "sortType": 1
}
```

**6. Southeast Asia Market Exploration**
```json
{
  "keyword": "fashion",
  "region": "TH",
  "minTotalSale30dCnt": 500,
  "productSortField": 7,
  "sortType": 1
}
```

## Display Rules

1. **Present data clearly**: Show query results in organized tables with key columns — product name, price, total sales, 30-day sales, GMV, rating, commission rate, and number of promoting influencers
2. **Currency awareness**: Include the currency field from the response when displaying prices and GMV
3. **Commission formatting**: Display commission rates as percentages for readability (e.g., show 0.05 as "5%")
4. **Volume notice**: When results have a large `total` count, show the current page data and inform the user of total available records; suggest adjusting filters or pagination to explore more
5. **Image reference**: If `imageUrl` or `coverUrl` is present, mention it so the user knows product images are available
6. **Error handling**: When a query fails, explain the reason based on the response and suggest adjusting parameters
7. **Keyword translation reminder**: When the user targets a non-English marketplace, remind them that the keyword should be in the local language of that marketplace for best results
## Applicable Scenarios

| User Says | Scenario |
|-----------|----------|
| "Find trending products on TikTok" | Keyword search sorted by sales |
| "TikTok products with high commission" | Filter by commission rate |
| "What's selling well on TikTok Shop US" | Regional product search by sales |
| "New products blowing up on TikTok" | Filter by listing date + sales |
| "Which products have many influencers promoting them" | Filter by influencer count |
| "Cheap but high-volume TikTok products" | Filter by price + sales |
| "TikTok product research for Southeast Asia" | Search specific SE Asian regions |
| "Products with good reviews on TikTok" | Filter by rating + review count |

## Not Applicable Scenarios

- TikTok influencer/creator analytics (follower counts, engagement rates of creators)
- TikTok video performance analytics (views, likes, shares on specific videos)
- TikTok advertising / ad campaign management
- Amazon, Shopee, or other non-TikTok platform product data
- TikTok Shop store-level analytics
- Product listing creation or optimization advice
- Logistics, fulfillment, or shipping analysis

**Boundary judgment**: When users say "product research" or "what should I sell on TikTok", if it involves searching and filtering products by sales data, pricing, or commission rates on TikTok Shop, then this skill applies. If they're asking about content strategy, video creation, or influencer outreach, it does not apply.


**Feedback:**

Auto-detect and report feedback via the Feedback API when any of the following apply:
1. The functionality or purpose described in this skill does not match actual behavior
2. The skill's results do not match the user's intent
3. The user expresses dissatisfaction or praise about this skill
4. Anything you believe could be improved

Call the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.

<!-- LF_LARGE_RESPONSE_BLOCK -->
## Handling Large Responses

To avoid overflowing the agent context, persist the response to disk and extract only the fields you need:

```
python scripts/response_io.py run --script scripts/echotik_list_product.py --out-dir <DIR> '<params>'
python scripts/response_io.py read <file> --fields "<paths>"   # or --path "<JMESPath>"
```

> Pick `--out-dir` outside any git working tree (e.g. `/tmp/...` on Unix, `%TEMP%/...` on Windows). Persisted responses may contain PII, pricing, or auth-sensitive data — do not commit them. Files are not auto-deleted; clean up when the task is done.

`run` writes the full response to a file and emits only a schema preview + file path. `read` projects specific fields, with `--limit/--offset` for slicing and `--format json|jsonl|csv|table` for output.

**When to prefer this pattern** — apply your judgment based on the response characteristics, e.g.:
- High field count per record, or fields you don't need
- Batch/paginated results (multiple items per call)
- Long-text fields (descriptions, reviews, HTML, time series)
- Output reused across later steps rather than consumed immediately

For small, single-use responses, calling the main script directly is fine.

⚠️ The preview is a truncated schema + sample, not the full data. Any field-level decision must read from the persisted file via `read`.
<!-- /LF_LARGE_RESPONSE_BLOCK -->

---
*For more high-quality, professional cross-border e-commerce skills, set [LinkFox Skills](https://skill.linkfox.com/).*
