TikTok Search Results Scraper

Export ranked public TikTok search videos for keyword research, creator discovery, brand monitoring, and social listening.

Data fields

FieldTypeDescription
querystringValue exported as query.
positionintegerValue exported as position.
videoIdstringValue exported as videoId.
videoUrlstringValue exported as videoUrl.
captionstring | nullValue exported as caption.
authorUsernamestring | nullValue exported as authorUsername.
authorDisplayNamestring | nullValue exported as authorDisplayName.
authorUrlstring | nullValue exported as authorUrl.

Input preview

queriesSearch keywords *
maxResultsPerQueryMaximum videos per keyword
proxyConfigurationProxy configuration

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

This TikTok search scraper exports public video results by keyword for content research and creator discovery. Use the TikTok video search scraper workflow to retain each search keyword and rank alongside creator, caption, engagement, publication time, cover image, music, and direct TikTok URLs. For automated workflows, the TikTok keyword search API-compatible input accepts one or more public search terms.

Output example

{
  "query": "openai",
  "position": 1,
  "videoId": "7665717073317809439",
  "videoUrl": "https://www.tiktok.com/@creator/video/7665717073317809439",
  "caption": "Public video caption",
  "authorUsername": "creator",
  "playCount": 12345,
  "likeCount": 678,
  "scrapedAt": "2026-08-30T00:00:00.000Z"
}

Input settings

Field Description
queries One or more public TikTok video search keywords.
maxResultsPerQuery Maximum unique videos returned for each keyword (1–200).
proxyConfiguration Optional proxy configuration when your network location needs to differ.

Exported fields

Field Description
query, position Requested keyword and ordinal position within that keyword.
videoId, videoUrl TikTok video identifier and direct public URL.
caption Public video caption when supplied.
authorUsername, authorDisplayName, authorUrl Public creator identity and profile URL.
createdAt, duration Publication timestamp and video duration in seconds.
playCount, likeCount, commentCount, shareCount Public engagement totals.
coverUrl, musicTitle Public cover image and music title when supplied.
scrapedAt ISO timestamp at extraction.

Tips and limits

  • Use specific keywords for more focused results.
  • TikTok can return fewer results than requested.
  • Only public, no-login search-result metadata is exported. Fields absent from the public result are returned as null.

API usage

Run fetch_cat/tiktok-search-results-scraper from the Console, API, or MCP. Retrieve the default dataset after the run completes.

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-search-results-scraper').call({ queries: ['openai'], maxResultsPerQuery: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/tiktok-search-results-scraper').call(run_input={'queries': ['openai'], 'maxResultsPerQuery': 20})
items = client.dataset(run['defaultDatasetId']).list_items().items
curl "https://api.apify.com/v2/acts/fetch_cat~tiktok-search-results-scraper/runs?token=$APIFY_TOKEN" \
  -H 'content-type: application/json' -d '{"queries":["openai"],"maxResultsPerQuery":20}'

Who is it for?

Use this Actor when you need a repeatable keyword-based TikTok research export for content research, creator discovery, campaign reporting, or trend monitoring.

Typical users include:

  • content teams comparing which videos rank for campaign keywords;
  • creator researchers building public prospect lists;
  • brand teams monitoring public mentions and engagement;
  • analysts exporting ranked results to CSV, JSON, Excel, or a warehouse;
  • automation builders feeding normalized TikTok search data into agents and workflows.

MCP and agent use

AI agents can invoke the same validated input through the Apify MCP server. Give the agent a keyword and a result limit; each returned row preserves its source query.

Claude Code setup

Add the Apify MCP server to Claude Code with this command:

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/tiktok-search-results-scraper"

Or add it to your MCP configuration:

{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=fetch_cat/tiktok-search-results-scraper"
    }
  }
}

Example prompts

  • “Search TikTok for openai tutorials and return the first 20 videos with creator and engagement metrics.”
  • “Find 50 TikTok videos about wireless earbuds; group the exported rows by creator and rank them by likes.”
  • “Run a TikTok keyword search for back to school and export the video URLs, captions, music titles, and publication times.”

The actor accepts the same queries and maxResultsPerQuery values shown in the input recipe. Your agent can save the resulting dataset to a spreadsheet, warehouse, or follow-up workflow.

Troubleshooting

If a keyword returns fewer rows than requested, try a more specific phrase and run again later. TikTok search ranking and public result availability can change. For a reproducible report, retain the query, run time, and exported videoId values.

Support

For reproducible issues, include the keyword, requested result limit, and the affected output field.

Common questions

Questions and answers reused from the canonical actor README.

Can I search multiple keywords?

Yes. Every result retains its source query.

Are downloads or private data included?

No. This Actor exports only public search-result metadata and links.