

# Spotting TikTok Trends With a Fixed Topic Panel

Use a fixed topic panel to collect candidates, then check publication dates, relevance, and creator breadth across repeated observations.

## Defining search inputs and pilot limits

The current public TikTok Search build 1.1.5 accepts exact native inputs: `queries` (array of strings), `expandQueries` (boolean), `maxExpandedQueries` (integer), `maxResults` (integer), `resultsPerQuery` (integer), `maxPagesPerQuery` (integer), and `searchDistribution` ("balanced" or "sequential"). The `maxResults` field sets a global maximum of unique saved videos across all queries. The `resultsPerQuery` field sets the maximum unique saved videos per term, though balanced search distribution may reduce this effective per-term limit without guaranteeing reallocation across terms.

To run a first pilot check, replace the default saved input values (`queries` array of three sample queries, `expandQueries` true, `maxExpandedQueries` 10, `maxResults` 150, `resultsPerQuery` 30, `maxPagesPerQuery` 2, `searchDistribution` "balanced") with a single intended query in the `queries` array. Use bounded override settings: `expandQueries` false, `maxExpandedQueries` 0, `maxResults` 2, `resultsPerQuery` 2, `maxPagesPerQuery` 1, and `searchDistribution` "balanced".

Native search outputs include `postId`, `postUrl`, `authorId`, `profileHandle`, `publishedAt`, `query`, `rootQuery`, `querySource`, `pageIndex`, `pageRank`, `status`, `statusReason`, and `observedAt`. Output fields like `queryPlans` show planned queries and sources only, not actual per-query execution outcomes. Readers must keep an independent attempt ledger from run evidence. A control run using "python tutorial" returned two metadata rows and stopped with `max_results_reached`. Its publication dates were May and August, which proves basic search field provenance but provides no live campaign, trend score, or automatic date filter proof.

The output record provides collection metadata, including queriesSearched, queryPlans, maxResults, resultsPerQuery, effectiveResultsPerQuery, maxPagesPerQuery, searchDistribution, rowsSaved, fieldCoverage, candidateItemsSeen, rowsAddedBeforeGlobalDedupe, duplicatesSkipped, invalidCandidatesSkipped, stopReason, sourceStatusCounts, status, and statusReason. The queryPlans field outlines planned terms and sources, but it does not record individual per-query pass or fail outcomes. Readers must maintain their own attempt ledgers from the collected output.

## Direct answer and complete trend-candidate method

Use a fixed topic panel to collect candidates, then check publication dates, relevance, and creator breadth across repeated observations. Treat a newly found video as a new observation until its publication time is checked. The result is a topic review board, not a platform trend chart or viral forecast.

1. Define a topic decision and a recent-publication window before collecting. For example, review whether a format deserves a small original test in the next production cycle. Keep the [exact declared query families and budgets](/en/articles/tiktok-query-sample-protocol/). Do not change terms midway because one sample looks exciting. A reader's feed and a logged-out public search have different selection rules.
2. Replace the saved Task's unrelated broad topics with the intended panel. Keep expansions off for a first exact repeat, or declare each root-query family if related searches are intentionally included. The native search input has no date filter. Recent inclusion is a reader's review of publishedAt and source evidence after collection, not an Actor date-filter promise.
3. Reconcile attempted queries, source outcomes, and caps. Keep post IDs/URLs, author IDs, publication date, observedAt, and manual topic/format code. A search returning older posts still provides candidates but may not answer a fresh-window question. The checked current control's dates were months old, so it is not current-trend evidence.
4. Separate observedAt from publishedAt. First observation means the reader found it in this panel at that time. It does not mean the post was published then or was previously unknown on TikTok. Unknown publication dates remain unknown and outside a strict recent-only count until checked. Do not convert collection date to publication date.
5. Apply the same topic relevance and publication-window rules manually. Review the actual public video to confirm the format, not just a broad hashtag. Keep original coding/context. Count distinct known post IDs and distinct known creator IDs separately. Five related videos by one account have one known creator; missing creator IDs stay unresolved and separate, not one shared creator.
6. Repeat the declared panel at a recorded later time when the reader needs persistence evidence. Define a snapshot as a single point-in-time run of the panel. Save each snapshot and its source stops. Compare newly observed IDs, repeated IDs, and creator breadth within the eligible sample. Search changes, caps, deletions, and visibility can change the set. No repeated public search proves platform-wide growth or first discovery. A failed snapshot prevents cross-run comparisons.
7. Build topic states such as insufficient_evidence, repeated_multi_creator_candidate, and ready_for_small_original_test under a stated editorial rule. For example, require relevant recent videos from at least three known creators in two useful snapshots before closer review. This is the reader's threshold, not an official trend definition or calibrated prediction. If one snapshot failed, withhold the comparison.
8. Choose one candidate for manual creative review and a small original test. Record why it fits the audience and what evidence is still missing. Public views may supply context, but age, creator size, and visibility differ. Do not sum partial search results into a platform popularity estimate or predict future reach.

## Original fictional repeated panel

The following candidate board contains original fictional data for teaching purposes. The strict recent publication window is October 6, 2026 inclusive at 00:00 UTC through October 13, 2026 exclusive at 00:00 UTC.

| Snapshot | Post ID | Creator ID | publishedAt | first_observed_at | Format | Strict Eligibility & Reason |
| --- | --- | --- | --- | --- | --- | --- |
| S1 | V1 | A | October 8 | October 12 | Format F | Eligible (In window) |
| S1 | V2 | A | October 9 | October 12 | Format F | Eligible (In window) |
| S1 | V3 | B | October 10 | October 12 | Format F | Eligible (In window) |
| S1 | V4 | C | September 2 | October 12 | Format F | Excluded (Older than window) |
| S1 | V5 | D | Unknown | October 12 | Format F | Excluded (Null publication date) |
| S2 | V2 | A | October 9 | October 12 | Format F | Eligible (In window) |
| S2 | V3 | B | October 10 | October 12 | Format F | Eligible (In window) |
| S2 | V6 | C | October 11 | October 13 | Format F | Eligible (In window) |
| S2 | V7 | E | Unknown | October 13 | Format F | Excluded (Null publication date) |

Intersection contains candidate post IDs that appear in the eligible set of both snapshots. Union contains candidate post IDs that appear in the eligible set of either snapshot. For these observations, the intersection set is {V2, V3}, giving two repeated post IDs. The union set is {V1, V2, V3, V6}, giving four unique eligible videos across three known creators (A, B, and C). V6 was first observed during snapshot S2 on October 13, but its actual publication date is October 11. Do not label V6 as published on October 13.

### Review decision ledger

| Metric / Rule | Snapshot S1 | Snapshot S2 | Combined Panel |
| --- | --- | --- | --- |
| Saved Items | 5 items | 4 items | 7 total unique items |
| Stop Reason | max_results_reached | max_results_reached | Both capped |
| Strict Recent Videos | 3 (V1, V2, V3) | 3 (V2, V3, V6) | 4 union videos |
| Known Creators | 2 (Creators A, B) | 3 (Creators A, B, C) | 3 union creators |
| Excluded / Gaps | V4 (Old), V5 (Unknown) | V7 (Unknown) | 1 old, 2 unknown dates |
| Rule: 3 creators per snapshot | Failed (2 creators) | Passed (3 creators) | insufficient_evidence |
| Rule: 3 union creators total | N/A | N/A | ready_for_small_original_test |

Under a strict rule requiring three distinct known creators in *each* individual snapshot, the topic status is marked insufficient_evidence because S1 had only two creators. If using a weaker threshold requiring three unique creators across the multi-snapshot union, the status is ready_for_small_original_test. Neither threshold guarantees viral reach or automated trend status.

## Next action

Check publication time and creator breadth for one candidate before planning an original test using the [TikTok Search Scraper Actor](https://apify.com/chronometrica/tiktok-search-scraper) and the [TikTok Trend Video Research Task](https://apify.com/chronometrica/tiktok-search-scraper/examples/tiktok-trend-video-research).

## Sources

- [TikTok Search Scraper Actor](https://apify.com/chronometrica/tiktok-search-scraper)
- [TikTok Trend Video Research Task](https://apify.com/chronometrica/tiktok-search-scraper/examples/tiktok-trend-video-research)
- [Content Creators Reddit Discussion](https://www.reddit.com/r/ContentCreators/comments/1qdhj7j/how_do_you_guys_find_new_tiktok_trends_early/)