New: Save the stickers, GIFs and photos people post in TikTok comments — free, no signup. Try it

Giveaways

TikTok Giveaway Entries — Export All Comments to CSV, Excel & JSON (Free, 2026)

By The ZocialComment Team, Social-data analystsAugust 202610 min read
TikTok Giveaway Entries — Export All Comments to CSV, Excel & JSON (Free, 2026)

Get every comment from any TikTok — free

Free — first 100 comments of any post, no signup. CSV, Excel & JSON.

TikTok giveaway entries live in the comments of a video or photo post, and TikTok gives you no way to see them as a list. The comment panel is an endless scroll, replies fold under their parent, and the order changes every time you reopen it. This guide is the export route: paste the post URL, download every comment free as CSV, Excel or JSON with username, text, likes, time and reply_to_id, then filter to valid entries, dedupe by username and draw a winner you can defend.

TikTok shows you a feed, not a list

Open the comments on a giveaway video with 3,000 entries and you are looking at a ranked feed. TikTok sorts by its own relevance signal — likes, replies, whether the creator hearted it — with pinned comments first and the rest in an order that is neither chronological nor stable.

Three things make this unusable for a draw:

  • Replies are collapsed. A comment with 40 replies shows "View 40 replies". If entries can be replies, the feed hides most of your entrants behind a tap.
  • The count lies. The number under the comment icon counts top-level comments and lags behind reality. It does not tell you how many people actually entered.
  • Scroll position is not a row number. You cannot say "entry 1,247" when the list reorders under you. Any "I scrolled and stopped randomly" draw is impossible to reproduce.

A spreadsheet fixes all three. Every entry becomes a row with a stable id, a timestamp and a username, and the rows do not move.

One paste to a full entry sheet

Go to the TikTok comment exporter, paste the giveaway post URL and start the count. Any link format TikTok produces works: the short vm.tiktok.com/... share link, the full tiktok.com/@host/video/7391... URL, or a photo-mode /photo/ URL. The first 100 comments of any post are free, no signup, and there is no limit on how many posts you export in a day. Beyond that it is a one-time payment for the post, never a subscription — see pricing if you run large contests.

The preview shows the count and lets you choose the format. Download CSV or Excel if you are going straight to a spreadsheet; download JSON if you are feeding a script or a picker of your own. JSON is the format that sets the TikTok export apart from the Instagram workflow: it keeps the reply nesting and the raw TikTok fields intact instead of flattening them into cells.

What each row contains

The column names below are the live product values, taken from the exporter as it runs today:

author, username, avatar_url, text, likes, replies, created_at, language, is_pinned, id, reply_to_id

After those come TikTok-only columns. The ones that matter for a giveaway are image_url and image_type (photo or sticker comments — some hosts run "comment a photo of your setup" contests), is_author_digged (whether the host hearted the comment), label_list (TikTok's own tags such as "Creator liked"), and user_uid, the stable numeric account id that survives a username change. If a column is empty in your download, TikTok did not return it for that post.

Replies on or off: decide before you export

Replies are off by default in a TikTok export and can be switched on in the preview with a single checkbox. This is the first real decision of the whole process, and it depends on how you wrote the rules.

  • "Comment to enter" — replies off. Top-level comments are the entries. Replies are people arguing, asking who won, or tagging a friend under someone else's entry. Leaving them out keeps the sheet clean.
  • "Reply to my pinned comment with your answer" — replies on. Every entry is a reply. Export with replies enabled, then filter reply_to_id to the id of your pinned comment. Anything replying to a different parent is not an entry.
  • Mixed — replies on, then sort it out. If people entered both ways, export everything and use reply_to_id to separate the two. Empty (or 0) means top level; a value means reply.

When you switch replies on, expect the row count to jump well above the number TikTok shows on the video. That gap is normal: the badge counts top-level comments only, and the replies were always there, just folded away. Do not dedupe blindly with replies on — an entrant who also replied "thanks!" to a friend could lose their entry. Filter by reply_to_id first, then dedupe.

Answer contests, keyword contests, tag contests: filtering each

The three common TikTok entry mechanics each need a different filter on the text column. Set up the filter, count the rows that survive, and only then deduplicate.

Answer contests ("comment the answer")

The rule says "comment A, B or C" or "how many products are in the video?". Add a helper column in Excel or Google Sheets: =UPPER(TRIM(SUBSTITUTE(D2," ",""))) where D is text, then filter that column to the correct answer. Normalising case and spaces means "a 1", "A1" and "A1 !!!" are treated consistently.

Keyword contests ("comment BOOK to enter")

Filter text with "contains BOOK", case-insensitive. TikTok comments are short, so you will get very few false positives.

Tag contests ("tag 2 friends")

TikTok stores mentions inline as @username in text, and the exporter also ships a text_extra column with the mention list as JSON. The quick spreadsheet version: count @ signs with =LEN(D2)-LEN(SUBSTITUTE(D2,"@","")) and keep rows where the count is at least 2. Tagging the same friend twice, tagging the host, or tagging yourself are the edge cases — decide once, apply everywhere.

The deadline

Whatever the mechanic, sort by created_at and drop rows after the closing time you announced. The timestamp is TikTok's own, in UTC, so convert to the time zone you stated in the rules before you cut.

Bots, duplicates and the same person five times

Two different problems look the same in the feed and separate cleanly in a sheet.

Duplicates are real people commenting more than once. Unless your rules say "one entry per comment", one person gets one ticket. In Excel, select the username column and use Remove Duplicates, or add =COUNTIF(B:B,B2) to see the repeat count per row first (COUNTIF reference). Dedupe on user_uid rather than username if you have the column — a username can change between the export and the draw, the numeric id cannot.

Bot and giveaway-farm accounts are the other problem. On TikTok they tend to share a signature: a username that is a word plus a long number string, no display name (author equal to username), an identical comment posted within seconds of others, and an avatar URL that is the default silhouette. Sort by created_at and look for bursts of the same text at the same second; sort by text and look for word-for-word repeats across many usernames. You are not obliged to remove them, but if the draw picks one, you will end up redrawing anyway, so most hosts filter the obvious ones out first and note that they did.

Keep the rows you removed in a second tab rather than deleting them; "here is the row and why it was excluded" ends any dispute.

Picking and proving the winner

With a clean, deduplicated tab, the draw itself is short. Number the rows 1 to N in a new column. Generate one integer between 1 and N from a source you did not control — random.org gives you a timestamped result you can screenshot, or use RANDBETWEEN in Google Sheets on a recorded screen. Pick backups the same way, in order, in case the winner does not respond.

If you would rather skip the spreadsheet, the free TikTok comment picker runs the same export, dedupe and draw on one page. The export route is for hosts who need to filter by answer or mention count.

What to keep

  1. The raw export exactly as downloaded, with the download time in the filename.
  2. The filtered and deduplicated tab, with a note of which rules were applied.
  3. The random number result and the row it mapped to.
  4. A screenshot of the winning comment on TikTok, showing the username and the post.
  5. The announcement post or comment, with its time.

Regulators care about this trail more than entrants do. In the UK, the CAP Code on prize promotions requires winners to be chosen by a verifiably random process or an independent judge; in the US, the FTC Endorsement Guides treat a prize as a material connection that must be disclosed by anyone who posts about your product afterwards. A file you can produce on request satisfies both.

From the exports we process for TikTok giveaways

This section is what we observe operating the exporter, not theory. Giveaway exports on TikTok cluster on the night the contest closes, and it is common to see the same host export three or four posts within ten minutes — usually the same campaign run across TikTok, Instagram and Facebook, merged into one draw. The TikTok file is almost always the largest of the three once replies are switched on.

The entry text is rarely varied. Answer contests produce a thousand rows reading "A1"; keyword contests produce columns of "Routine" or "Book"; tag contests are two or three @mentions and an emoji, with the "Done all steps ✅ @a @b @c" pattern in almost every file. That uniformity is why the filters above work: you are matching one short string, not interpreting prose. The rows the filter drops — a paragraph, a question, a complaint — were never entries.

The single most common support question is the row-count gap: the video says 1,900 comments and the file has 2,400 rows. Every time, the extra rows are replies the badge did not count. The second most common is the opposite — a host exported with replies off, the rule was "reply to the pinned comment", and the sheet looked empty. Replies off is the default because most posts do not want them; for a reply-based contest it is the one box you have to tick.

"Comment a photo" contests fill the image_url column; those URLs are signed by TikTok and expire after roughly a month, so download the images you need for judging early.

Photo posts, hidden comments and other TikTok-specific catches

Photo-mode posts

Carousel giveaways use tiktok.com/@host/photo/... URLs. They export identically to videos — same columns, same replies toggle.

Comments held by the host's filter

If the host turned on "Filter all comments" or keyword filtering in TikTok's comment settings, held comments sit in a review queue and are not public. They will not be in the export because nobody but the host can see them. Before you export, open the queue, approve the real entries, and only then download. TikTok's spam filter often holds comments with repeated @mentions, which is exactly what tag entries look like.

Comments TikTok removed

Comments removed for a Community Guidelines violation are gone from the public post and from the export. TikTok's guidelines also cover the giveaway itself: it must not be used to inflate engagement through deceptive means, and it must not promise anything TikTok classes as a prohibited product. Say "not sponsored, endorsed or administered by TikTok" in the caption.

Deleted entries and display names

If an entrant deletes their comment after you export, your file still has it — say in the rules that the export moment is the cutoff. And announce winners by username (the @handle), not the author display name, which is not unique.

Running the same giveaway elsewhere

The same export exists for the other platforms with matching column names, so a cross-platform draw is one merged sheet. See Instagram giveaway entries and Facebook giveaway comments for the platform-specific catches on each.

Download TikTok giveaway comments free →

Related reading: TikTok comment picker: pick a random winner, how comment-picker giveaway draws work, giveaway picker apps vs exporting comments.

Get every comment from any TikTok — free

Paste any TikTok video URL — every comment in CSV or JSON in seconds.