TikTok Followers & Following Scraper — Relationship Profiles avatar

TikTok Followers & Following Scraper — Relationship Profiles

Pricing

from $0.31 / 1,000 relationship profiles

Go to Apify Store
TikTok Followers & Following Scraper — Relationship Profiles

TikTok Followers & Following Scraper — Relationship Profiles

Export accessible TikTok relationship profiles. Following uses a public source; Followers requires your own session cookie. Includes exposed bios, stats and provenance, subject to visibility and result limits.

Pricing

from $0.31 / 1,000 relationship profiles

Rating

0.0

(0)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

3

Monthly active users

7 days ago

Last modified

Share

TikTok Followers & Following Scraper exports accessible relationship profiles, bios and statistics. Following uses a public third-party source; Followers uses your own authenticated TikTok session. Neither bypasses privacy or guarantees complete audience coverage.

Modes and access requirements

listTypeActual behavior
following (default)Reads the target's publicly exposed Following list. No TikTok cookie is required. A public account can still hide this list. Supplied cookies are not used to unlock Following.
followersRequires your own valid TikTok session cookie. Resolves the source profile through the public source first, then uses TikTok's authenticated follower endpoint.
bothRequires the cookie. Collects Followers first, then public Following; if either list collection fails or maps to zero rows, neither list is written for that source.

Private sources are rejected even with a session. Cookies cannot unlock hidden Following; expiry, challenges, blocking and public-profile resolution failures can prevent extraction.

HTTP only: no browser, residential proxy, downstream Actor, provided/mock mode or keyword/geography/follower-count/email filter. Ordering is source-defined, not guaranteed chronological.

Quick start

Use a small visibility check before requesting larger lists:

{
"profiles": ["zachking"],
"listType": "following",
"resultsPerList": 2,
"failOnNoResults": false
}

This illustrative account is not a current-visibility guarantee. For followers/both, enter your own cookie in secret sessionCookie; never publish credentials or paste them into chat.

Save input as private input.json for an Apify API integration:

curl -sS -X POST \
"https://api.apify.com/v2/acts/voqMfefpNN3Kw4FCP/runs" \
-H "Authorization: Bearer ${APIFY_TOKEN}" \
-H "Content-Type: application/json" \
--data-binary @input.json

Inspect completion/status/logs, dataset and RUN_SUMMARY. Apify authentication is separate from the TikTok session for Followers/Both.

Input reference

FieldDefaultSupported behavior
profilesrequired1–100 input entries: username, @handle or tiktok.com/@handle URL. Source handles are deduplicated case-insensitively before requests.
listTypefollowingfollowing, followers, both.
resultsPerList1001–1000 maximum listed profiles per source and relationship type; not a global result count or completeness guarantee.
sessionCookieabsentRequired for Followers/Both. Secret input; must contain sessionid, sessionid_ss or sid_tt from your own authorized TikTok session.
requestTimeoutSecs3010–120 seconds per upstream HTTP request, not the whole run.
failOnNoResultsfalseFail when zero results are solely expected hidden/private/unavailable-list outcomes. Does not turn unexpected zero-result errors into success.

Following uses one count-limited request, no pagination. Followers uses up to 30 rows/page and at most ceil(resultsPerList / 30) + 2 pages; empty/no-more data or repeated/missing cursors stop it. Neither guarantees the requested count.

Cookie handling: enter only the Cookie request-header value from your own authorized tiktok.com session, never a password. Use a temporary session if possible. Auth requests target TikTok; the public client does not receive the cookie. Code does not log/output it, but secret run input remains sensitive: keep runs/input files private and revoke the session when appropriate.

Output and result-row billing

Rows represent source relationships, not unique audience members. Deduplication uses source ID, list type and listed ID/handle; cross-source/list appearances are separately billed.

Fields include:

  • Source: sourceInput, sourceUsername, sourceProfileUrl, sourceUserId, optional sourceListTotal.
  • Relationship: relationshipType (followers/following) and dataSource (authenticated-tiktok/public-following).
  • Listed profile: userId, secUid, uniqueId, nickname, profileUrl, bio, avatarUrl, region, verified, privateAccount.
  • Optional stats: followerCount, followingCount, videoCount, likeCount, favoritesCount.
  • Optional socialLinks: Instagram ID, YouTube channel title/ID, Twitter name/ID; ISO scrapedAt.

Fields come from list responses, without per-listed-profile enrichment. Stats/social values can be absent, strings empty and listed profiles flagged private. Badge/region/social IDs do not verify identity, residence, bots, email ownership or delivery.

sourceListTotal is a source total/profile-count fallback, not exported count or completeness proof. scrapedAt is mapping time, not relationship creation time; avatar links can expire.

Mapped/deduplicated rows use apify-default-dataset-item, without separate request/custom-analysis events. Unsaved rows have no row event, but requests consume usage. Both's atomicity is collection-only: Free/budget truncation or batch write failure can leave partial output.

Current pricing

PlanPer relationship rowPer 1,000 rows
FREE$0.002$2.00
BRONZE$0.0004$0.40
SILVER$0.00035$0.35
GOLD, PLATINUM, DIAMOND$0.00031$0.31

Actor Start: $0.00005 per event, one event per GB of allocated memory with a minimum of one event per run. It is not one fixed total for every memory setting and can apply to empty/failed runs.

Apify usage is billed separately to the running user. No row fee does not mean no cost: startup, compute, transfer and storage can still apply. See the Pricing tab.

Free-plan policy: at most 50 dataset rows globally, across all sources/types; only the first 50 source inputs are processed. FREE results remain priced. Paid plans have no developer-set 50-row cap; source/input/budget limits remain. RUN_SUMMARY.outputItems counts prepared rows, not confirmed saved/charged rows. After truncation, use actual dataset/billing counts—not that summary as an invoice or completion proof.

Run outcomes and FAQ

RUN_SUMMARY reports per-profile failures and a custom status:

  • NO_RESULTS: zero rows and only expected availability outcomes, with failOnNoResults: false; the Apify run can finish successfully.
  • FAILED: zero rows with unexpected errors, or strict zero-result behavior enabled. Input/authentication validation can fail earlier, before a summary exists.
  • SUCCEEDED_WITH_WARNINGS: some prepared output and other unavailable/failed profiles. Unexpected errors on one profile do not necessarily fail a run with output from another.

These summary labels are not additional Apify terminal-status enums. Successful exports can still be partial.

Can a cookie reveal hidden Following? No. Following always uses the public path, and a cookie does not bypass privacy settings.

Will I get all followers or an exact audience count? No. Visibility, pagination guards, source limits, deduplication, field availability and billing limits constrain exports. Totals and counts are snapshots.

Does this detect bots or identify verified contacts? No. It exports relationship/profile signals only. Account flags, social IDs and bios are not definitive bot or contact-verification evidence.

Use authorized sessions/data responsibly. Respect platform, privacy and anti-spam rules; do not use samples for harassment, sensitive-trait inference or decisions requiring verified evidence.

Complementary Actors