Skip to content
    ↑↓ to choose · Enter to open

    · 11 min read

    TikTok For You Feed Scraper: 26 Data Fields per Record (2026)

    By CrawlerBros Engineering Team

    Each record carries 26 output fields, including post engagement metrics, author metadata, and music details. The collector captures an anonymous snapshot of TikTok's recommendation engine without requiring cookies or account credentials, delivering 1,000 results for $5.00 on the free-plan price. You can gather up to 300 posts per run labelled with your chosen ISO region code. This Actor is built for analysts monitoring organic trend delivery, and is not for teams needing personalized feed data tied to a specific logged-in user account.

    Try it: open TikTok For You Feed Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try TikTok For You Feed Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of TikTok For You Feed Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 10, so a first run returns at most 10 results and costs at most $0.05 in result charges. That is enough to see the real shape of the data before deciding anything.

    TikTok For You Feed Scraper was last updated on 2026-06-30. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 680,173 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run TikTok For You Feed Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The maxItems input control has the largest impact on your total charge, as result charges are billed per item written to the dataset. To test your feed workflow before committing budget, run the Actor with maxItems set to 10, capping result costs at $0.05.

    How do you run TikTok For You Feed Scraper from the API?

    None of its 2 controls is strictly required, so the defaults below produce a valid run on their own. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~tiktok-for-you-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"maxItems":10,"regionObservation":"US"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "maxItems": 10,
      "regionObservation": "US"
    }
    
    run = client.actor("crawlerbros~tiktok-for-you-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "maxItems": 10,
      "regionObservation": "US"
    }
    
    const run = await client.actor('crawlerbros~tiktok-for-you-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.

    Which TikTok For You Feed Scraper inputs matter, and which can you skip?

    The maxItems setting controls the maximum number of FYP posts to collect, accepting values between 0 and 300. The regionObservation control takes an ISO country code string to label your data, though the actual server feed region is determined by IP.

    • maxItems (integer): Maximum number of For You feed posts to collect. Set to 0 to return no items. Default: 30.
    • regionObservation (string): ISO country code to label the observation (e.g. US, GB). This is informational only - TikTok determines the actual region based on server IP. Default: "US".

    What does TikTok For You Feed Scraper return?

    Returned datasets provide 26 fields per record, including engagement numbers from statsV2, video metadata, and author handles ideal for trend analysis. Video play URLs expire within 24 hours, so systems requiring long-term media references must rely on postUrl instead.

    • feedType - always "foryou"
    • observedRegion - ISO country code label from the regionObservation input
    • isPersonalized - always false (anonymous, session-bound feed, not tied to any account)
    • postId - unique TikTok video ID
    • postUrl - direct URL to the video
    • caption - full caption text
    • likeCount - total likes
    • commentCount - total comments
    • shareCount - total shares
    • playCount - total plays/views
    • author.id - author's TikTok user ID
    • author.username - author handle
    • author.displayName - author display name
    • author.verified - verification status
    • author.avatarUrl - author profile image URL
    • music.id - sound ID
    • music.title - sound title
    • music.authorName - sound creator name
    • music.original - whether it is an original sound
    • video.width - video width in pixels
    • video.height - video height in pixels
    • video.duration - video duration in seconds
    • video.playUrl - streamable video URL (expires)
    • video.cover - cover/thumbnail image URL
    • hashtags - array of hashtag names parsed from caption
    • scrapedAt - ISO 8601 timestamp of when the record was collected

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open TikTok For You Feed Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Navigate to the Actor input tab and set maxItems to 10 for a low-cost initial test run.
    2. Type an ISO country code like US or GB into regionObservation to tag the records for your project.
    3. Click start to launch the run, charging at most $0.05 in result fees for the test batch.
    4. Open the dataset tab after completion and inspect the feedType field to ensure it equals foryou.
    5. Check that author.username and postId contain valid strings across all returned items.
    6. Confirm that playCount and likeCount contain non-null numeric values from the statsV2 payload.
    7. Increase maxItems up to the maximum limit of 300 to collect a full feed snapshot.

    How do you apply it? Three worked playbooks

    These are TikTok For You Feed Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Content trend research

    Outcome: Content trend researchers identifying what video formats and topics are currently surfacing in TikTok's recommendation engine

    Configure: Set maxItems to 100 and regionObservation to US.

    Working method: Execute a feed run to capture 100 organic posts, then extract the hashtags array and caption fields to identify recurring keywords.

    Deliverable: A structured JSON dataset containing 100 feed items enriched with engagement stats and hashtags.

    Stop condition: Stop if more than 30 percent of returned records contain null or missing music.title fields.

    Use case 2: Competitive intelligence gathering

    Outcome: Competitive intelligence analysts observing which creators and styles are being algorithmically promoted

    Configure: Set maxItems to 50 and regionObservation to GB.

    Working method: Collect 50 posts from an anonymous session and group the records by author.username to calculate average playCount for promoted handles.

    Deliverable: A summary export detailing unique handles, author.verified status, and total views across the feed sample.

    Stop condition: Stop if author.id returns duplicate values for more than half of the feed items in a single run.

    Use case 3: Unbiased dataset building

    Outcome: Academic researchers building unbiased FYP datasets to study TikTok's content distribution by region

    Configure: Set maxItems to 300 and regionObservation to US.

    Working method: Initiate multiple feed runs across separate IP locations, comparing video.duration and engagement metrics between regional batches.

    Deliverable: A collection of up to 300 records per run labelled with observedRegion and scrapedAt timestamps.

    Stop condition: Stop immediately if feedType returns any string other than foryou.

    What breaks, and how do you design around it?

    When you need more than the 300 item cap per run, schedule multiple separate executions to fetch subsequent anonymous batches. Because video.playUrl links expire within 24 hours of generation, save the postUrl field as your permanent content identifier.

    When should you not use TikTok For You Feed Scraper?

    Do not use this Actor if you need personalized feed outputs from a logged-in user account, as it only captures anonymous snapshots. If your project targets specific creators, use the TikTok Post Scraper instead. To track specific audio trends or tags rather than general feed posts, use the TikTok Music/Sound Scraper or TikTok Hashtag Scraper.

    What should you check before trusting the output?

    • Verify that isPersonalized is explicitly set to false across all dataset records.
    • Check that postUrl contains a valid TikTok URL structure for long-term video references.
    • Confirm that scrapedAt reflects an ISO 8601 timestamp generated at execution time.
    • Halt automated workflows if playCount returns null or negative integers across an entire run batch.
    • Flag records where hashtags is an empty array to review whether the post had no caption tags.

    None of this proves a record is correct. It gives a scheduled TikTok For You Feed Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How much does it cost to run 1,000 feed items?

    At the free-plan price of $5.00 per 1,000 results, 1,000 items cost exactly $5.00 in result charges. Apify's free plan includes $5.00 of monthly usage, which covers up to 1,000 results before small platform usage and run-start fees.

    Do I need TikTok account credentials or cookies?

    No. The scraper functions entirely as an anonymous visitor. It accesses public recommendation endpoints without session cookies, login details, or account authorization.

    Can I target a specific country's FYP feed?

    The regionObservation input is an informational dataset tag. TikTok determines feed content using the server's IP address, so geographic targeting requires applying country-specific proxy settings.

    Are the videos returned identical on every run?

    No. Each run establishes a new anonymous session with TikTok's API, producing a non-deterministic batch of posts currently active in the recommendation stream.

    Why do video stream links stop playing after a day?

    TikTok signs its video stream URLs with temporary security tokens that expire within 24 hours. For permanent reference, store the postUrl field.

    Where to go next

    When you are ready to run it, open TikTok For You Feed Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the TikTok For You Feed Scraper Actor page for the current input schema, pricing tier, and run history.

    It is part of the TikTok Scraping Suite, which puts every related Actor on one page with its price and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-26.

    • Actor last updated by its maintainers on 2026-06-30.

    • Run outcome figures cover the 30 day public window ending 2026-09-26.

    • TikTok For You Feed Scraper on Apify

    Featured actors

    TikTok For You Feed Scraper

    Capture a snapshot of TikTok's For You (FYP) feed posts as an anonymous regional observer. No cookies required.

    Run on Apify ↗