Theqoo Scraper – K-pop Community Posts & Comments (No API)
Pricing
from $2.00 / 1,000 post listings
Theqoo Scraper – K-pop Community Posts & Comments (No API)
Scrape theqoo (theqoo.net), Korea's top K-pop and entertainment community, with no API or login: board listings (HOT, Square, per-artist boards) and full posts with all comments, comment numbers, same-commenter markers and @reply targets. Cloudflare handled via Korean residential proxy.
Pricing
from $2.00 / 1,000 post listings
Rating
0.0
(0)
Developer
Chad
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Theqoo Scraper – Korean K-pop Community Posts & Comments (No API, No Login)
Scrape theqoo (theqoo.net, 더쿠), Korea's top K-pop, entertainment and beauty community: the latest posts of any board, and the full text plus every comment of any post. Works with HOT, Square (스퀘어), K-idol talk (케이돌토크), beauty, drama/film boards and the per-artist fan boards (bts, newjeans, seventeen and hundreds more). Public pages only, no browser, output as JSON/CSV/Excel.
theqoo sits behind a Cloudflare security check that blocks datacenter and most foreign IPs (403 "보안 검사중", "security check in progress"). This actor uses a Korean residential proxy by default to pass it, and loads comments exactly the way the site does (same session plus a CSRF token), so you do not have to build any of that yourself.
Output Fields
Board post listing (board mode, content is null)
| Field | Type | Description |
|---|---|---|
| post_id | string | Post number |
| site | string | Always theqoo |
| board | string | null | Board ID (e.g. hot, square) |
| category | string | null | Post category tag (e.g. 이슈 issue, 잡담 chat, 유머 humor) |
| title | string | null | Title |
| author | string | null | Author. Everyone on theqoo is anonymous ("무명의 더쿠"), so this is usually null |
| reply_count | number | null | Comment count |
| view_count | number | null | View count |
| created_at | string | null | Post time (ISO 8601, Korea time +09:00) |
| created_at_precision | string | null | Time precision: minute (today's posts) or day (older posts, date only) |
| post_url | string | Post URL |
| content / links / image_count | null | Always null in listing mode |
| source_mode | string | Mode used |
| source_query | string | Query (board ID) |
| scraped_at | string | Scrape time (ISO 8601) |
Post content (full post mode: the fields above plus these)
| Field | Type | Description |
|---|---|---|
| content | string | null | Post text (HTML removed, line breaks kept). Null for image-only posts |
| links | string[] | Outbound links in the post (x.com, YouTube, news...), both linked and pasted as plain text |
| image_count | number | Number of images in the post |
| created_at | string | null | Post time to the minute (created_at_precision: "minute") |
| board | string | null | The board the post was opened under. Give just the number and theqoo redirects to the post's home board |
Comment (full post mode)
| Field | Type | Description |
|---|---|---|
| reply_id | string | Comment ID |
| post_id | string | Post number |
| site | string | Always theqoo |
| floor | number | Comment number: the 12 in the site's "12. 무명의 더쿠", and what "@12" in other comments points to |
| commenter_floor | number | Same-commenter marker. The comment number where this anonymous person first commented on the post (the site's "= 12덬"). Same value = same person, within this post only |
| is_op | boolean | true when the post's own writer left the comment (the site's "= 원덬") |
| reply_to_floor | number | null | The comment number this one answers, read from a leading "@N". Null when there is none |
| is_hidden | boolean | true for deleted comments and comments hidden from logged-out visitors. These rows are never billed |
| hidden_reason | string | null | deleted, or members_only_recent (under one hour old, hidden from logged-out visitors) |
| author | string | null | Only set on boards that show nicknames; null when anonymous |
| content | string | null | Comment text (HTML removed). Null for hidden comments |
| created_at | string | null | Comment time to the second (ISO 8601, +09:00) |
| scraped_at | string | Scrape time (ISO 8601) |
Field names match hardwarezone-scraper (Singapore), lihkg-scraper (Hong Kong), ptt-scraper (Taiwan) and voz-scraper (Vietnam) from the same developer, so you can merge community data from several countries into one table.
Modes
| Mode | Input | Output | Billing |
|---|---|---|---|
| board | boards (board IDs), keywords (title filter, optional), dateFrom (optional) | Board post listing | $0.002 per post |
| thread | threadIds / threadUrls | Post content ($0.008 each) + all comments ($0.0005 each) | By volume |
Deleted comments and comments hidden from logged-out visitors are included so comment numbers stay continuous, but they are not billed.
Input
| Field | Type | Default | Description |
|---|---|---|---|
| mode | enum | board | Mode: board / thread (required) |
| boards | array | ["hot"] | Board IDs or board URLs, e.g. hot, square, ktalk (K-idol talk), beauty, dyb (drama/film/actors), talk (daily talk), bts, newjeans |
| threadIds | array | — | Post numbers (e.g. 4371268800) |
| threadUrls | array | — | Post URLs; the number is extracted automatically |
| bulkInput | textarea | — | Bulk paste, one item per line, merged into the matching field for the current mode |
| keywords | array | — | Board mode: title keyword filter (empty = no filter) |
| maxItems | integer | 50 | Board mode: max posts per board; full post mode: max posts. Up to 500 |
| maxReplies | integer | — | Full post mode: max comments per post (comments #1 to #N). 0 = post only, empty = all |
| dateFrom | string | — | Board mode: only posts since this time (30m, 12h, 3d, 2w or 2026-10-01). Stops paging early when set |
| proxyConfiguration | proxy | Apify RESIDENTIAL + KR | Korean residential proxy. Datacenter IPs are blocked by Cloudflare, so keep the default |
Input Examples
1. Latest posts on the HOT board
{"mode": "board","boards": ["hot"],"maxItems": 50}
2. Daily monitoring of artist boards (scheduled)
{"mode": "board","boards": ["newjeans", "seventeen", "ktalk"],"dateFrom": "1d","maxItems": 200}
3. Filter by title keywords
{"mode": "board","boards": ["square", "hot"],"keywords": ["컴백", "콘서트"],"maxItems": 100}
4. One full post (text + every comment)
{"mode": "thread","threadUrls": ["https://theqoo.net/hot/4371268800"]}
5. Cap the cost of a long post (comments #1–200 only)
{"mode": "thread","threadIds": ["4370661006"],"maxReplies": 200}
Sample Output
Board listing:
{"post_id": "4371268800","site": "theqoo","board": "hot","category": "이슈","title": "뎡배에서 반응 좋은 오늘 첫방송 한 드라마.jpg","author": null,"reply_count": 363,"view_count": 71014,"created_at": "2026-10-10T22:25:00+09:00","created_at_precision": "minute","post_url": "https://theqoo.net/hot/4371268800","content": null,"links": null,"image_count": null,"source_mode": "board","source_query": "hot","scraped_at": "2026-10-10T16:22:00.000Z"}
Comment:
{"reply_id": "4371277604","post_id": "4371268800","site": "theqoo","floor": 54,"commenter_floor": 33,"is_op": false,"reply_to_floor": 49,"is_hidden": false,"hidden_reason": null,"author": null,"content": "@49 그시대는 맞음ㅋㅋㅋ","created_at": "2026-10-10T22:31:43+09:00","scraped_at": "2026-10-10T16:22:05.000Z"}
This is comment #54, written by the same person as comment #33, answering comment #49.
Notes
- Public content only; no account or token needed. Members-only boards and anything that needs a login are not collected.
- theqoo disables search for logged-out visitors (no site-wide search). So this actor has no keyword search across the site;
keywordsonly filters the titles of the boards you list. With keywords, each board is scanned for at most 20 pages (about 400 posts). For keyword monitoring, schedule a daily run on the relevant boards withdateFrom: "1d". - Every writer is anonymous ("무명의 더쿠"), so
authoris usually null. Usecommenter_floorto group the comments one person left on a post, andis_opto spot the writer's own comments. Identity does not carry across posts. - theqoo hides comments younger than one hour from logged-out visitors. They come back with
is_hidden: true,hidden_reason: "members_only_recent"and no text, and are not billed. If you need every recent comment, collect a post at least an hour after it was written. - Board listings show the minute for today's posts and only the date for older ones (
created_at_precision). Use full post mode for exact times. FordateFrom, a date-only post counts as the whole day. - All timestamps are ISO 8601 in Korea time (+09:00).
- Pinned notices and event posts at the top of each board are excluded.
- Stops automatically after 5 consecutive pages with no new posts; with
dateFromit stops as soon as a whole page is older than the cut-off. - If nothing was collected because requests failed (blocks, proxy errors) or every board/post was a 404, the run ends as FAILED with the reason, so "nothing new" is never confused with "blocked".
- Korean residential proxy requests take 3–7 seconds each, slower than datacenter sites. The actor stays at 3 concurrent requests and at most 30 per minute.
- theqoo's rules forbid reposting full news articles, and post bodies can contain text from other outlets. Do not redistribute collected text as is.
FAQ
Q: Do I need to log in?
A: No. The actor only reads public board listings and posts and uses nothing that requires an account.
Q: How do I find a board ID?
A: It is in the board URL: theqoo.net/ktalk is ktalk, theqoo.net/newjeans is newjeans. You can also paste the URL as is.
Q: Is the post number enough?
A: Yes. Give 4370661006 and theqoo redirects to the post's home board (e.g. square), which also ends up in board.
Q: Will a post with many comments cost a lot?
A: Comments are $0.0005 each, so even 1,000 comments cost about $0.50. To cap it anyway, set maxReplies; maxReplies: 0 fetches the post only and makes no comment requests at all.
Q: Why not switch to the datacenter proxy?
A: theqoo's Cloudflare answers datacenter IPs and most foreign IPs with 403 "보안 검사중". Only Korean residential IPs were verified to pass reliably.
Q: The log shows [incomplete-data].
A: Some pages or comments could not be fetched after retries. The post itself is in the dataset; only the missing part is logged. Run again a little later or lower maxItems.
📚 Related tutorials & tools
Hands-on guides and free tools built on this actor, at AI Social API:
- 📖 Guide: theqoo Data: Getting Posts and Comments From Korea's K-pop Community Without an API
- 📖 Tutorial: Build a no-code forum sentiment pipeline with Apify + n8n + GPT
- 📊 Data: Asian forum scrapability × cost table — measured on live runs: which forums need only a plain request, which need a residential IP, and what one item costs
- 🛠 Free tools: Forum sentiment quick-check · Apify cost calculator
- 🤝 Rather not run it yourself? I run it for you — scheduled daily, delivered to your Google Sheet or Slack, from US$299/mo.
Maintained by an operator running 30+ live Apify actors.
Disclaimer
This tool is for academic research and lawful market analysis only. Users must comply with theqoo's terms of service and applicable law (including Korea's Copyright Act and Personal Information Protection Act), must not redistribute collected text without permission, and must not use the data to identify or track individuals. The author is not responsible for misuse. If the site owner asks for removal, use will stop.
theqoo scraper, theqoo API, theqoo.net scraper, 더쿠 scraper, Korean community scraper, K-pop social listening, K-pop fandom monitoring, Korean entertainment data, HOT board, K-idol talk, brand monitoring Korea, export JSON CSV Excel