TikTok Keyword Suggestions Scraper
Pricing
from $1.12 / 1,000 item extracteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
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?
| Field | Meaning |
|---|---|
seedKeyword | Original keyword or query extracted from a TikTok search URL |
query | Exact base or expansion query sent to TikTok |
suggestion | Autocomplete phrase returned by TikTok |
normalizedSuggestion | Normalized phrase used for deduplication |
queryRank | One-based position in the source response for this query |
seedRank | One-based unique result order for the seed |
searchUrl | TikTok search URL for the suggestion |
region, language | Request hints used for the result |
groupId, wordsSource, suggestionType | Public source metadata when returned |
cutQuery | Source-provided tokenized phrase parts |
recallReason | Source recall labels when returned |
isPersonalized, isHistorySuggestion | Source flags when returned |
fetchedAt | ISO timestamp for the extraction |
Nullable metadata stays null when TikTok omits it.
How to get started
- Open the Actor input page.
- Add one or more real topics under Seed keywords, or add TikTok search URLs.
- Keep Base suggestions only for a fast first run.
- Set the global maximum number of results.
- Choose region and language hints.
- Start the run and open the Suggestions dataset view.
- 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
| Input | Type | Default | Notes |
|---|---|---|---|
keywords | string array | prefilled topics | Up to 100 unique, non-empty seeds |
searchUrls | request list | none | TikTok /search?q=... URLs |
expansionMode | enum | none | none, alphabet, alphanumeric, or questions |
maxSuggestionsPerQuery | integer | 10 | Between 1 and 10 |
maxItems | integer | 20 | Global output limit from 1 to 5,000 |
region | string | US | Two-letter request hint, not guaranteed proxy geography |
language | string | en-US | Language 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 plusseed athroughseed z.alphanumeric: base query plus A–Z and 0–9 suffixes.questions: base query plushow,what,when,where, andwhyprefixes.
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:
- Run broad seeds in base mode.
- Select promising returned phrases.
- Run selected phrases with alphabet expansion.
- Export
seedKeyword,query,suggestion, and ranks. - 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 ApifyClientclient = 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().itemsprint(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.
Related automation-lab Actors
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.