TikTok Keyword Suggestions Scraper avatar

TikTok Keyword Suggestions Scraper

Pricing

from $1.12 / 1,000 item extracteds

Go to Apify Store
TikTok Keyword Suggestions Scraper

TikTok Keyword Suggestions Scraper

Expand seed topics into ranked TikTok autocomplete suggestions with query context and public metadata for social SEO and content planning. Search volume is excluded.

Pricing

from $1.12 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Turn seed topics into ranked TikTok keyword suggestions for social SEO, short-form video ideation, and repeatable content planning. The Actor calls TikTok's anonymous search-preview data surface and exports each autocomplete phrase with its returned rank, query context, search link, and available public metadata.

It does not estimate or claim search volume. TikTok's preview response does not provide volume, so the output keeps source rank and public metadata separate from unsupported estimates.

What does TikTok Keyword Suggestions Scraper do?

Provide plain keywords, TikTok search URLs, or both. The Actor extracts the search URL query, optionally expands each seed, requests autocomplete suggestions, deduplicates phrases within each seed, and saves typed rows to the default dataset.

Use a base query for a quick snapshot, A–Z or A–Z/0–9 suffixes for long-tail research, or question prefixes for educational content ideas. maxItems places a hard limit on saved results.

Who is it for?

  • Social SEO specialists building topic and caption research sheets.
  • Creators turning broad themes into specific video ideas.
  • Content strategists comparing autocomplete snapshots on a schedule.
  • Agencies preparing repeatable briefs across several client topics.
  • Data teams feeding public phrase suggestions into spreadsheets or pipelines.

Why use this Actor?

The dataset preserves both the original seed and the exact expansion query, so every phrase has traceable context. It also distinguishes TikTok's per-query position (queryRank) from the deduplicated order collected for a seed (seedRank).

The implementation uses lightweight HTTP requests rather than loading video pages or downloading media. Requests are sequential, bounded, and retried only a limited number of times after upstream failures.

What data can I extract?

FieldMeaning
seedKeywordOriginal keyword or query extracted from a TikTok search URL
queryExact base or expansion query sent to TikTok
suggestionAutocomplete phrase returned by TikTok
normalizedSuggestionNormalized phrase used for deduplication
queryRankOne-based position in the source response for this query
seedRankOne-based unique result order for the seed
searchUrlTikTok search URL for the suggestion
region, languageRequest hints used for the result
groupId, wordsSource, suggestionTypePublic source metadata when returned
cutQuerySource-provided tokenized phrase parts
recallReasonSource recall labels when returned
isPersonalized, isHistorySuggestionSource flags when returned
fetchedAtISO timestamp for the extraction

Nullable metadata stays null when TikTok omits it.

How to get started

  1. Open the Actor input page.
  2. Add one or more real topics under Seed keywords, or add TikTok search URLs.
  3. Keep Base suggestions only for a fast first run.
  4. Set the global maximum number of results.
  5. Choose region and language hints.
  6. Start the run and open the Suggestions dataset view.
  7. Export the dataset as JSON, CSV, Excel, XML, or RSS through Apify.

The prefilled skincare routine and meal prep topics provide a useful first run.

Input parameters

InputTypeDefaultNotes
keywordsstring arrayprefilled topicsUp to 100 unique, non-empty seeds
searchUrlsrequest listnoneTikTok /search?q=... URLs
expansionModeenumnonenone, alphabet, alphanumeric, or questions
maxSuggestionsPerQueryinteger10Between 1 and 10
maxItemsinteger20Global output limit from 1 to 5,000
regionstringUSTwo-letter request hint, not guaranteed proxy geography
languagestringen-USLanguage hint such as en, en-US, or es

At least one valid keyword or TikTok search URL is required. Invalid URLs without a q parameter do not become seeds.

Expansion modes

  • none: one TikTok request for each seed.
  • alphabet: base query plus seed a through seed z.
  • alphanumeric: base query plus A–Z and 0–9 suffixes.
  • questions: base query plus how, what, when, where, and why prefixes.

Expansion increases request count and can still return duplicate or naturally empty responses. Results are deduplicated independently for each seed. The Actor stops scheduling work when maxItems is reached.

Example input

{
"keywords": ["skincare routine", "meal prep"],
"expansionMode": "none",
"maxSuggestionsPerQuery": 10,
"maxItems": 20,
"region": "US",
"language": "en-US"
}

A source-URL workflow can instead use:

{
"searchUrls": [
{ "url": "https://www.tiktok.com/search?q=budget%20travel" }
],
"maxItems": 10
}

Example output

This abbreviated row reflects the current output shape from a local source-backed run:

{
"seedKeyword": "meal prep",
"query": "meal prep",
"suggestion": "meal prep ideas",
"normalizedSuggestion": "meal prep ideas",
"queryRank": 1,
"seedRank": 1,
"source": "tiktok_search_preview",
"searchUrl": "https://www.tiktok.com/search?q=meal%20prep%20ideas",
"region": "US",
"language": "en-US",
"groupId": "2042627834678721152",
"wordsSource": "sug",
"suggestionType": null,
"cutQuery": ["meal", "prep", "ideas"],
"recallReason": "tiktok_index_global_active_7d_query",
"isPersonalized": true,
"isHistorySuggestion": false,
"fetchedAt": "2026-09-08T12:00:00.000Z"
}

Exact phrases and metadata change as TikTok changes its public suggestions.

How much does it cost to extract TikTok keyword suggestions?

Pay-per-event pricing has a $0.005 start fee plus the active tier's price for each unique suggestion saved. At the BRONZE rate of $0.00186 per suggestion:

  • 10 suggestions cost about $0.0236 including the start fee.
  • 100 suggestions cost about $0.191 including the start fee.
  • 1,000 suggestions cost about $1.865 including the start fee.

Higher platform tiers receive lower per-suggestion rates. Failed, duplicate, empty, and unsaved candidate rows do not create item charges. Apify compute is included in pay-per-event pricing; check the live pricing tab for your tier before a large run.

Schedule recurring social SEO research

Create an Apify Schedule with stable seeds and expansionMode: "none" for compact snapshots. Export each run to your warehouse, compare by normalizedSuggestion, and identify added, removed, or rank-shifted phrases downstream.

The Actor reports the current response only. It does not maintain history, calculate changes, or send alerts itself. Apify integrations or your own workflow should perform those steps.

Export to spreadsheets and data pipelines

Use Apify's dataset integrations to send rows to Google Sheets, Make, Zapier, webhooks, or cloud storage. A practical flow is:

  1. Run broad seeds in base mode.
  2. Select promising returned phrases.
  3. Run selected phrases with alphabet expansion.
  4. Export seedKeyword, query, suggestion, and ranks.
  5. Add editorial priority and campaign ownership in your destination system.

CSV is convenient for editorial review; JSON preserves booleans, arrays, and null values.

Run through the Apify API with cURL

Replace YOUR_TOKEN with your Apify API token:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~tiktok-keyword-suggestions/runs?token=YOUR_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{"keywords":["home workout"],"expansionMode":"none","maxItems":10}'

Fetch results from the run's defaultDatasetId, or use the synchronous dataset-items endpoint when appropriate.

JavaScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/tiktok-keyword-suggestions').call({
keywords: ['small business marketing'],
expansionMode: 'alphabet',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python API example

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("automation-lab/tiktok-keyword-suggestions").call(run_input={
"keywords": ["budget travel"],
"expansionMode": "questions",
"maxItems": 30,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with MCP and AI agents

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/tiktok-keyword-suggestions"

For Claude Desktop, Cursor, and VS Code, add this equivalent JSON configuration to the client's MCP settings:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/tiktok-keyword-suggestions"
}
}
}

Example prompts:

  • "Find current TikTok autocomplete phrases for meal prep and home workouts."
  • "Expand small business marketing with A–Z suffixes and return at most 50 rows."
  • "Use this TikTok search URL as a seed and group the results by exact query."

Limits and reliability

TikTok can change, throttle, localize, or remove its anonymous preview endpoint. The Actor uses bounded retries and fails visibly if the source response is blocked or malformed; it does not turn an upstream failure into a successful empty dataset.

Region and language are request hints. They do not guarantee country-specific output because the Actor does not automatically purchase or select a residential proxy. Autocomplete is dynamic, and repeated runs can differ. Some valid topics naturally return few or no suggestions.

The Actor does not scrape videos, profiles, comments, hashtags, engagement metrics, trend history, or search volume.

Responsible use and legality

Only public anonymous suggestion data is requested. Use the output in accordance with TikTok's terms, applicable law, and your organization's policies. Avoid excessive expansion, respect intellectual property, and do not use suggestions to infer sensitive traits about individuals.

You are responsible for deciding whether your intended collection and downstream use are lawful. This Actor is a technical data-extraction tool, not legal advice.

Troubleshooting

Why did my run return no results?

Check that the seed is a public, meaningful topic. Try base mode with a common phrase. If TikTok is temporarily throttling or changing its response, rerun later rather than increasing expansion immediately.

Why does a TikTok search URL not work?

It must use tiktok.com/search and include a non-empty q query parameter. Copy the full URL rather than a generic TikTok home page.

Why are there fewer rows than maxItems?

maxItems is a ceiling, not a promise. TikTok may return fewer suggestions, and duplicates within the same seed are saved only once.

FAQ

Does this include TikTok search volume? No. The public preview response does not provide search volume, and the Actor does not invent a volume proxy.

Is queryRank a volume score? No. It is the phrase's one-based position in the exact autocomplete response.

Can I combine keywords and search URLs? Yes. Valid seeds from both inputs are normalized and deduplicated.

Can I force results from a country? No. region is a source request hint, not a guarantee of network geography.

Are duplicates charged? No. An item event is charged only for a unique row accepted and saved for a seed.

Use TikTok Comments Scraper when your workflow starts from known videos and needs public comment records. Use TikTok Trends Scraper for supported trend-list workflows rather than autocomplete expansion.

These Actors solve separate jobs. This Actor remains focused on seed-to-autocomplete discovery and can provide phrases for downstream research.