Temu Category Trend Report avatar

Temu Category Trend Report

Pricing

$10.00 / 1,000 results

Go to Apify Store
Temu Category Trend Report

Temu Category Trend Report

Daily Temu category intelligence: top 200 products ranked by 7-day momentum. Spot Breakout products before they peak, track price trends, and get a curated Hot Picks list — all from a single run. Covers 16 categories including Fashion, Beauty, and Home.

Pricing

$10.00 / 1,000 results

Rating

0.0

(0)

Developer

CRW

CRW

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

Daily trend intelligence for Temu's top-selling categories. Identify Breakout products before they peak, track price movements, and spot what's actually selling — updated every day.


What You Get

Each run delivers two outputs for a selected Temu category:

  • Dataset (200 rows) — One row per product currently ranked in the top 200
  • Key-Value Store: REPORT_SUMMARY — Category-level summary, 7-day price trend, and curated Hot Picks list

Why This Actor

Temu moves fast. Products rocket from obscurity to top 10 in 48 hours, then disappear. By the time you notice a hot item manually, the margin window is already closing.

This actor gives you:

  • Breakout detection — Products with rank climbing >5 positions AND sales up >200 units in 7 days
  • 7-day momentum scores — Not just today's snapshot, but the trajectory
  • Price trend history — Category avg price over 8 days, so you see where pricing is heading
  • Hot Picks list — Pre-filtered shortlist of the highest-momentum products (up to 50)
  • Market signal — One-word category health: Hot / Warm / Neutral / Cooling

Supported Categories

Category IDCategory Name
36Home & Kitchen
28Women's Clothing
589Women's Curve Clothing
95Women's Shoes
1107Women's Lingerie & Lounge
67Men's Clothing
1536Men's Shoes
1232Men's Big & Tall
114Men's Underwear & Sleepwear
178Sports & Outdoors
352Jewelry Accessories
25Beauty & Health
204Toys & Games
580Automotive
218Kids Fashion
1553Kids Shoes

More categories added regularly.


Input

{
"category_id": 1107,
"region": "US"
}
FieldTypeRequiredDefaultDescription
category_idintegerYesCategory ID from the table above
regionstringNo"US"Market region. Currently US only

Output

Dataset — Product Rows

200 rows, one per product ranked in the category today.

{
"goods_id": "601099555477841",
"title": "Women's Sexy Satin Lace Camisole and Panty Set...",
"price": 6.03,
"price_str": "$6.03",
"original_price": 31.30,
"discount_rate": 81,
"sales_volume": 100000,
"sales_tip_text": "100K+",
"rating": 4.8,
"review_count": 1803,
"rank": 1,
"rank_percentile": 0.5,
"momentum_status": "Rising",
"rank_7d_delta": -3,
"sales_7d_delta": 0,
"price_7d_delta": 0.0,
"price_7d_min": 6.03,
"price_7d_max": 6.03,
"review_count_7d_delta": 16,
"rating_7d_delta": 0.0,
"appearances_7d": 6,
"days_in_category": 9,
"price_vs_top200_avg": 85.9,
"first_seen_at": "20260429",
"last_seen_at": "20260507",
"is_on_sale": false,
"is_low_stock": false,
"is_new_product": false,
"sale_ends_at": null,
"has_video": true,
"thumb_url": "https://img.kwcdn.com/product/fancy/...",
"goods_url": "https://www.temu.com/goods.html?goods_id=601099555477841",
"category_name": "Women's Lingerie & Lounge",
"category_id": 1107,
"region": "US",
"collected_at": "20260507"
}

Product Field Reference

FieldTypeDescription
goods_idstringTemu product ID
titlestringProduct title
pricefloatCurrent price (USD)
price_strstringFormatted price string, e.g. "$6.03"
original_pricefloatList price before discount (USD)
discount_rateintegerDiscount percentage, e.g. 81 = 81% off
sales_volumeintegerCumulative units sold (normalized, e.g. "94K+"94000)
sales_tip_textstringOriginal sales label from Temu, e.g. "100K+"
ratingfloatProduct rating (0–5)
review_countintegerTotal number of reviews
rankintegerToday's rank in the category (1 = best)
rank_percentilefloatRank as top-N%, e.g. 0.5 = top 0.5%
momentum_statusstringSee Momentum Status table below
rank_7d_deltaintegerRank change over 7 days. Negative = climbed (good). e.g. -53 = moved up 53 spots
sales_7d_deltaintegerUnits sold increase over 7 days. May show 0 even for active products because Temu displays sales in rounded buckets (e.g. "100K+"), so the value only changes when the bucket threshold is crossed
price_7d_deltafloatPrice change over 7 days (USD). Positive = price increase
price_7d_minfloatLowest price in the past 7 days (USD)
price_7d_maxfloatHighest price in the past 7 days (USD)
review_count_7d_deltaintegerNew reviews added in the past 7 days
rating_7d_deltafloatRating change over 7 days
appearances_7dintegerNumber of days this product appeared in the top 200 over the past 7 collection days (max 7). A value of 7 = consistently present. A value of 1–3 = unstable, may exit soon (Fading)
days_in_categoryintegerDays elapsed since first_seen_at, capped at 7. Reflects how long this product has been tracked within this category's top 200 over the 7-day window, not its age on Temu overall
price_vs_top200_avgfloatThis product's price as % of the category average. e.g. 85.9 = 14% cheaper than avg
first_seen_atstringDate first collected in this category (YYYYMMDD)
last_seen_atstringMost recent collection date (YYYYMMDD)
collected_atstringDate this row was collected (YYYYMMDD)
is_on_salebooleanWhether a time-limited sale is active
is_low_stockbooleanWhether the low-stock badge is shown
is_new_productbooleanWhether Temu's "new product" tag is shown
sale_ends_atstringSale end time in ISO 8601 UTC format (e.g. "2026-05-19T06:59:59Z"). Empty string if is_on_sale is false
has_videobooleanWhether the product has a video
thumb_urlstringThumbnail image URL
goods_urlstringClean product page URL (all tracking parameters removed)
category_namestringHuman-readable category name
category_idintegerCategory ID
regionstringRegion code, e.g. "US"

Momentum Status

ValueMeaning
NewFirst seen in this category today
BreakoutRank climbed >5 spots AND sales up >200 units in 7 days — strongest buy signal
RisingRank improving or sales growing steadily
StableNo significant movement in either direction
DecliningRank dropping or price rising
FadingSeen in top 200 on 3 or fewer of the last 7 days — at risk of exiting

Priority order when multiple conditions apply: New > Breakout > Rising > Fading > Declining > Stable


Key-Value Store — REPORT_SUMMARY

Retrieve via the Apify API using the run's defaultKeyValueStoreId:

GET /v2/key-value-stores/{kvStoreId}/records/REPORT_SUMMARY
{
"meta": {
"category_id": 1107,
"category_name": "Women's Lingerie & Lounge",
"region": "US",
"collected_at": "20260507",
"generated_at": "2026-05-07T01:05:16Z",
"data_freshness_hours": 1
},
"summary": {
"total_products": 200,
"avg_price": 7.02,
"avg_discount_rate": 58.0,
"avg_rating": 4.75,
"new_entries_today": 7,
"disappeared_today": 275,
"on_sale_count": 96,
"has_video_count": 149,
"momentum_distribution": {
"New": 7,
"Breakout": 23,
"Rising": 123,
"Stable": 4,
"Declining": 25,
"Fading": 18
},
"market_signal": "Warm"
},
"price_trend_7d": [
{
"date": "20260429",
"avg_price": 5.95,
"avg_discount_rate": 59.7,
"total_collected": 200,
"new_entries": 200,
"disappeared": 0,
"momentum_distribution": { "New": 200 }
}
],
"hot_picks": [
{
"goods_id": "601099584094697",
"rank": 14,
"momentum_status": "Rising",
"rank_7d_delta": -28,
"price": 5.70
}
]
}

REPORT_SUMMARY Field Reference

FieldTypeDescription
meta.collected_atstringDate the underlying data was collected (YYYYMMDD)
meta.generated_atstringISO 8601 timestamp when the report file was generated
meta.data_freshness_hoursintegerHours elapsed since data was generated at time of this run
summary.market_signalstringHot (≥75% Breakout+Rising), Warm (≥50%), Cooling (>40% Declining+Fading), Neutral
summary.new_entries_todayintegerNumber of products appearing in today's top 200 for the first time (i.e. not seen in any previous collection within the 7-day window)
summary.disappeared_todayintegerTotal number of products that were tracked at any point in the 7-day window but are absent from today's top 200. This value can exceed 200 because it counts cumulative exits across all days, not just yesterday's departures. A high value indicates aggressive product churn in this category
summary.on_sale_countintegerNumber of products currently running a time-limited sale
summary.has_video_countintegerNumber of products with a video
summary.momentum_distributionobjectCount of products per momentum status
price_trend_7darray8-day daily history of category avg price, avg discount rate, and momentum distribution. Each entry also includes new_entries (products first seen that day) and disappeared (cumulative products no longer in top 200 as of that day)
hot_picksarrayUp to 50 highest-momentum products (all Breakout + top 20 Rising by rank delta), sorted by rank. Same fields as Dataset rows

Use Cases

E-commerce sellers & resellers Filter momentum_status = "Breakout" to find products gaining traction before they peak. Use price_vs_top200_avg to find pricing gaps.

Amazon / Shopify merchants Track which categories are heating up (market_signal = "Hot") to guide sourcing before demand hits your platform.

Market researchers Use price_trend_7d to analyze category pricing cycles. Track disappeared_today as a churn indicator — values consistently above 200 mean extremely high product turnover and aggressive competition in that category.

Dropshippers hot_picks gives you a ready-made shortlist of the highest-momentum products updated daily — no manual filtering needed.


Data Freshness

Data is collected once per day. meta.data_freshness_hours tells you exactly how old the data is at run time. Each run always returns the most recent available snapshot.


API Integration Example

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
category_id: 1107,
region: 'US',
date: 'latest',
});
// Product rows — filter to Breakout items only
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const breakouts = items.filter(p => p.momentum_status === 'Breakout');
// Summary, price trend, hot picks
const record = await client
.keyValueStore(run.defaultKeyValueStoreId)
.getRecord('REPORT_SUMMARY');
console.log('Market signal:', record.value.summary.market_signal);
console.log('Hot picks count:', record.value.hot_picks.length);

Notes

  • Data covers the US market only at this time
  • Top 200 is determined by sales volume ranking within the category at time of daily collection
  • sales_volume values like "94K+" are normalized to integers (94000)
  • goods_url has all tracking parameters stripped — only goods_id is retained
  • Historical snapshots are available for dates since data collection began for each category