# Lemon8 Scraper | Posts, Comments & Replies (`monkey.d.scraping/lemon8-posts-comments`) Actor

Scrape Lemon8 posts, profiles, keywords and hashtags with comments and replies. $1.49/1,000 delivered posts, no start fee, platform included. Export media links and engagement; resume without duplicate posts.

- **URL**: https://apify.com/monkey.d.scraping/lemon8-posts-comments.md
- **Developed by:** [Monkey D. Scraping](https://apify.com/monkey.d.scraping) (community)
- **Categories:** Social media, Marketing
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.49 / 1,000 post delivereds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Lemon8 Scraper — Posts, Comments & Replies

Collect public Lemon8 posts from post URLs, creator profiles, keywords, hashtags and category feeds. Get text, images, video links, engagement metrics and optional comments with replies in one dataset. Useful for content research, creator analysis and reviewing public conversations without logging into Lemon8.

**$1.49 per 1,000 delivered posts**, including requested comments and replies. No start fee; platform usage is included. You pay per delivered post, not per comment or reply.

**中文用户 / 中文用戶：** [简体中文说明](#chinese-simplified) · [繁體中文說明](#chinese-traditional)（Lemon8数据采集、Lemon8爬虫、Lemon8评论采集API）

### First result

Keep the example post URL and click Start. The example collects one post and up to five main comments. Download the dataset as JSON for complete nested conversations, or use Apify's export options for tabular analysis.

```json
{
  "postUrls": ["https://www.lemon8-app.com/@lemon8_us/7618125167721710094"],
  "maxCommentsPerPost": 5
}
```

To use another source, clear the example post URL and choose one of the examples below. Multiple sources can be combined. `maxPosts` is a global cap; sources are processed in this order: post URLs, profiles, keywords, hashtag names, numeric hashtag URLs, feeds. Earlier sources can fill the cap before later sources are reached.

#### Ready-to-run examples

| Example | Use case | What you get |
|---|---|---|
| [Lemon8 beauty trends: Korean sunscreen posts and comments](https://apify.com/monkey.d.scraping/lemon8-posts-comments/examples/lemon8-beauty-trend-posts-comments-korean-sunscreen) | Beauty trend research | 10 public posts about Korean sunscreen with up to 10 comments each, showing which products, claims and questions drive the trend |

**[Browse all ready-to-run examples →](https://apify.com/monkey.d.scraping/lemon8-posts-comments/examples)** — English and 中文.

### What can I collect?

| Source | Input | Example |
|---|---|---|
| Individual posts | `postUrls` | Full public post URLs |
| Creator posts | `profileUrls` | `https://www.lemon8-app.com/@lemon8_us` |
| Related keyword results | `keywords` | `skincare routine` |
| Hashtags by name | `hashtags` | `skincare`, `#travel` |
| Exact hashtag topics | `hashtagUrls` | `https://www.lemon8-app.com/topic/7189373472454344709` |
| Category feeds | `feedCategories` | `fashion`, `beauty`, `food`, `travel` |

Discovery uses the US version of Lemon8. Each source list accepts up to ten entries. `maxPosts` accepts 1–100 and defaults to five. Duplicates are identified by post ID across inputs.

#### Creator posts and conversations

```json
{
  "profileUrls": ["https://www.lemon8-app.com/@addy.h.n"],
  "maxPosts": 2,
  "maxCommentsPerPost": 100,
  "includeReplies": true,
  "maxRepliesPerComment": 10
}
```

`maxCommentsPerPost` accepts 0–100 and defaults to 20. Set it to zero for post details only. Replies are off by default. When enabled, `maxRepliesPerComment` accepts 1–50 and defaults to ten. Replies apply only to collected main comments and do not count toward the main-comment limit.

#### Search by keyword

```json
{"keywords": ["travel"], "maxPosts": 2, "maxCommentsPerPost": 0}
```

Keyword results are the related posts Lemon8 shows on its public web search page for that keyword.

#### Search by hashtag

```json
{"hashtags": ["skincare"], "maxPosts": 2, "maxCommentsPerPost": 0}
```

Names are matched against structured tags in up to eight related posts, then verified against the topic's exact name and ID. Only verified active topics are used. For an exact topic, you can also provide its numeric `hashtagUrls` link.

### Output

Each successful dataset row has `type: "post"`. Comments and replies are nested under that post, with `parentCommentId` identifying the conversation thread. Source failures have `type: "error"` and an `error` message.

| Fields | Meaning |
|---|---|
| `id`, `url`, `title`, `content` | Post identity and readable text preserving paragraphs |
| `postType`, `region`, `publishedAt`, `modifiedAt` | Public post classification and ISO dates |
| `images`, `imageCount`, `ocrText` | Image links and text recognized by Lemon8 |
| `videoUrl`, `videoDurationSeconds`, `videoOcr` | Video metadata when available |
| `hashtags`, `topics` | Structured tags, including verified IDs present in post markup |
| `likes`, `saves`, `views`, `reportedCommentCount` | Public counters at collection time |
| `author` | Creator ID, username, name, followers, avatar and verification flag when exposed |
| `comments` | Main comments and optional replies, with text, author, likes and timestamps |
| `coverage` | Retrieved counts, stop reasons and errors for main comments and each reply thread |

The run's key-value store also contains `SUMMARY`: source requests, discovery coverage, skipped previous posts and billing status. Null or missing values mean the public source did not expose the field; they are not invented zeros. Media links are temporary; download media promptly if you need to keep it.

`coverage` and `SUMMARY` stop reasons (`source_exhausted`, `item_limit`, `page_limit`, `web_search_limit`, `no_new_ids`, `empty_page_limit`, `stalled_cursor`, `source_error`, `time_budget`) show why collection of each source or thread ended.

### Resume without collecting the same posts again

Set `resumeFromDataset` to the 17-character ID of a previous dataset from this Actor. Successful post IDs are skipped before fetching details or comments. Previous error rows are retried. The new dataset contains only newly collected posts; it does not copy the old dataset.

Leave this option empty to refresh engagement or conversations. One prior dataset of up to 100,000 rows is checked per run, with read-only access. When `SUMMARY.stopReason` is `time_budget`, `SUMMARY.pendingPostUrls` lists the queued posts; run again with `resumeFromDataset` and the same inputs to continue.

### Frequently asked questions

**Do I need a Lemon8 account or cookies?** No. The Actor reads publicly accessible web data.

**Can I collect replies?** Yes. Enable `includeReplies`; each reply includes its parent comment ID. Retrieved counts are reported for each thread.

**How many comments are returned?** The comments the public website exposes for each post, up to your configured limits. `reportedCommentCount` keeps Lemon8's displayed counter for reference.

**Can I use this through the API?** Yes. Use the Actor's API tab for authenticated run and dataset endpoints. The same input fields apply in Console and API calls.

**Are errors and duplicates chargeable?** The configured price charges only delivered post rows. Error rows and skipped duplicates have no event charge.

**Can I use results for social listening?** Yes, for qualitative analysis of public conversations. Comments are delivered as raw text, without automatic sentiment scores.

### Chinese Simplified

### 中文说明：Lemon8数据采集工具（Lemon8 Scraper 爬虫 / API）

**Lemon8 Scraper** 批量采集Lemon8公开帖子，支持帖子链接、达人主页、关键词、话题标签（hashtag）和分类频道。一次运行即可导出帖子正文、图片、视频链接、点赞/收藏/浏览等互动数据，并可选采集**评论和回复**，全部整合在同一个数据集中。**每交付1,000条帖子仅1.49美元**，所需的评论和回复已包含在内；无启动费，平台用量已包含。无需Lemon8账号、无需登录、无需Cookie。

适合出海品牌、跨境电商卖家和达人营销团队做内容研究、达人分析，以及查看海外社媒上的公开用户讨论。

#### 为什么选择这款Lemon8爬虫？

- **按帖子计费，评论和回复不额外收费**：每交付1,000条帖子1.49美元，你只为交付的帖子付费，而不是按评论或回复计费。
- **错误和重复不收费**：错误行和跳过的重复帖子不计费；同一帖子ID在不同来源中只采集一次。
- **多种来源组合使用**：帖子链接、达人主页、关键词、话题名称、话题链接和分类频道可在同一次运行中组合。
- **评论与回复结构清晰**：评论和回复嵌套在对应帖子下，回复通过 `parentCommentId` 关联到所属评论，方便还原完整对话。
- **断点续采，不重复采集**：填写上一次运行的数据集ID，已成功采集的帖子会被跳过，此前的错误行会重新尝试。
- **采集情况透明**：每条帖子带有 `coverage` 字段，记录评论和回复的获取数量与停止原因；运行摘要 `SUMMARY` 汇总各来源的采集情况和计费状态。
- **导出方便**：支持导出JSON（完整嵌套对话）或通过Apify导出为表格，也可通过API调用。

#### 适用场景

- **内容选题研究**：按关键词（如 `skincare routine`）或话题标签（如 `skincare`、`#travel`）收集相关帖子，分析热门笔记的标题、正文和图片。
- **达人分析与达人营销**：导出达人主页的帖子，查看粉丝数、点赞、收藏和浏览数据，辅助筛选合作达人。
- **评论区用户声音**：采集帖子下的评论和回复，用于了解海外用户对产品和话题的公开讨论（定性分析）。
- **品类内容观察**：按 `fashion`、`beauty`、`food`、`travel` 等分类频道收集帖子，了解各品类的内容形式。

#### 可以获取哪些数据？

| 字段 | 说明 |
|---|---|
| `id`、`url`、`title`、`content` | 帖子ID、链接、标题和保留段落格式的正文 |
| `postType`、`region`、`publishedAt`、`modifiedAt` | 帖子类型、地区，发布和修改时间（ISO格式） |
| `images`、`imageCount`、`ocrText` | 图片链接、图片数量，以及Lemon8识别出的图片文字 |
| `videoUrl`、`videoDurationSeconds`、`videoOcr` | 视频链接、时长和视频文字（如有） |
| `hashtags`、`topics` | 话题标签及话题ID |
| `likes`、`saves`、`views`、`reportedCommentCount` | 采集时的点赞、收藏、浏览和显示评论数 |
| `author` | 达人ID、用户名、昵称、粉丝数、头像和认证标识（如公开） |
| `comments` | 评论及可选回复，含文本、作者、点赞数和时间 |
| `coverage` | 评论和每个回复线程的获取数量、停止原因和错误信息 |

运行的键值存储中还包含 `SUMMARY`：各来源请求、采集情况、跳过的历史帖子和计费状态。

#### 价格

按交付的帖子付费，平台用量已包含：

| 内容 | 每1,000条帖子 | 100条 | 1,000条 |
|---|---|---|---|
| 帖子（含所需评论和回复） | **1.49美元** | 0.149美元 | 1.49美元 |

- 无启动费。
- 评论和回复不单独计费。
- 错误行和跳过的重复帖子不计费。

#### 使用方法

1. 选择数据来源并填写：**Post URLs**（帖子链接）、**Creator profile URLs**（达人主页）、**Search keywords**（关键词）、**Hashtag names**（话题名称）、**Hashtag URLs**（话题链接）或 **Category feeds**（分类频道），可组合使用，每个列表最多10项。
2. 设置 **Maximum posts in total**（全部来源合计的最大帖子数，1–100，默认5）。
3. 设置 **Maximum main comments per post**（每条帖子的最大评论数，0–100，默认20；设为0只采集帖子详情）。
4. 可选：开启 **Include replies** 采集回复，并设置 **Maximum replies per comment**（每条评论的最大回复数）。
5. 可选：在 **Skip posts from a previous dataset** 中填写上一次运行的数据集ID，跳过已采集的帖子。
6. 点击 **Start**，完成后导出为JSON，或通过API获取。

示例：采集一位达人的2条帖子，每条最多100条评论，并包含回复：

```json
{
  "profileUrls": ["https://www.lemon8-app.com/@addy.h.n"],
  "maxPosts": 2,
  "maxCommentsPerPost": 100,
  "includeReplies": true,
  "maxRepliesPerComment": 10
}
```

**中文示例任务：** [Lemon8种草内容采集：SHEIN在美国的用户笔记与评论](https://apify.com/monkey.d.scraping/lemon8-posts-comments/examples/lemon8-cross-border-brand-seeding-posts-shein-zh)

#### 常见问题

**需要Lemon8账号或Cookie吗？**
不需要。工具读取的是公开可访问的网页数据。

**能采集评论下的回复吗？**
可以。开启 `includeReplies` 即可，每条回复都带有所属评论的ID，每个回复线程的采集情况单独记录。

**支持哪些数据来源？**
支持帖子链接、达人主页、关键词、话题名称、话题链接（`https://www.lemon8-app.com/topic/…`）和分类频道。关键词、话题和频道的发现基于Lemon8美国站公开网页。

**错误和重复的帖子收费吗？**
不收费。只有交付的帖子行才计费，错误行和跳过的重复帖子不计费。

**如何避免重复采集同一批帖子？**
在 `resumeFromDataset` 中填写本工具上一次运行的数据集ID（17位），已成功采集的帖子会在获取详情和评论前被跳过。

**可以通过API调用吗？**
可以。在Actor的API标签页中可以找到运行和数据集接口，Console和API使用相同的输入字段。

**中文说明会翻译采集到的数据吗？**
不会。中文说明只是使用文档；采集到的数据保持来源的原始语言（帖子正文和评论按发布时的原文呈现）。

#### 其他内容和达人数据工具

- [Facebook评论采集工具](https://apify.com/monkey.d.scraping/facebook-comments-scraper)：导出Facebook公开帖子、Reels和视频下的评论与回复，含表情分类和评论语言，每1,000条0.18美元。
- [Instagram评论采集工具](https://apify.com/monkey.d.scraping/instagram-comments-scraper)：导出Instagram公开帖子和Reels下的评论，含作者、点赞和帖子信息，每1,000条0.18美元。
- [B站（哔哩哔哩）数据采集工具](https://apify.com/monkey.d.scraping/bilibili-scraper)：采集Bilibili公开视频、UP主作品列表和一级评论，适合补充视频和达人研究。

### Chinese Traditional

### 中文說明（繁體）：Lemon8資料擷取工具（Lemon8 Scraper 爬蟲 / API）

**Lemon8 Scraper** 批次擷取Lemon8公開貼文，支援貼文連結、創作者頁面、關鍵字、主題標籤（hashtag）與分類頻道，一次匯出貼文內文、圖片、影片連結、按讚／收藏／瀏覽等互動數據，並可選擇擷取**留言與回覆**。**每交付1,000則貼文1.49美元**，所需留言與回覆已包含；沒有啟動費，平台用量已包含。不需要Lemon8帳號，也不必登入。

#### 為什麼選擇這款Lemon8爬蟲？

- **依貼文計費**：留言與回覆不另收費，只為交付的貼文付費。
- **錯誤與重複不收費**：同一貼文ID在不同來源中只擷取一次。
- **續傳不重複**：填入上一次執行的資料集ID，已成功擷取的貼文會被略過。

#### 適用場景

- **內容研究**：依關鍵字或主題標籤收集貼文，分析熱門內容的標題、內文與圖片。
- **網紅行銷**：匯出創作者的貼文與粉絲、按讚、收藏、瀏覽數據，協助篩選合作對象。
- **品牌行銷與市場研究**：擷取貼文留言與回覆，了解用戶對產品與話題的公開討論。

#### 使用方法

1. 填入資料來源：**Post URLs**、**Creator profile URLs**、**Search keywords**、**Hashtag names**、**Hashtag URLs** 或 **Category feeds**，每個清單最多10項。
2. 設定 **Maximum posts in total**（1–100，預設5）與 **Maximum main comments per post**（0–100，預設20）；選填 **Include replies**。
3. 點擊 **Start**，完成後匯出JSON或透過API取得。

```json
{
  "profileUrls": ["https://www.lemon8-app.com/@addy.h.n"],
  "maxPosts": 2,
  "maxCommentsPerPost": 100,
  "includeReplies": true,
  "maxRepliesPerComment": 10
}
```

**中文範例任務：** [Lemon8种草内容采集：SHEIN在美国的用户笔记与评论](https://apify.com/monkey.d.scraping/lemon8-posts-comments/examples/lemon8-cross-border-brand-seeding-posts-shein-zh)

#### 價格

每交付1,000則貼文**1.49美元**（含所需留言與回覆），沒有啟動費，平台用量已包含；錯誤列與略過的重複貼文不計費。

#### 常見問題

**需要Lemon8帳號或Cookie嗎？**
不需要，工具讀取的是公開網頁資料。

**能擷取留言下的回覆嗎？**
可以。開啟 `includeReplies` 即可，每則回覆都帶有所屬留言的ID。

**錯誤和重複的貼文會收費嗎？**
不會，只有交付的貼文列才計費。

**中文說明會翻譯擷取到的資料嗎？**
不會。說明是中文，資料保留來源的原始語言（貼文內文與留言以發布時的原文呈現）。

完整欄位與輸出範例請見[英文說明](#output)或[简体中文说明](#chinese-simplified)。

### Related public-data tools

- [Facebook Comments Scraper | Cheapest $0.18/1K](https://apify.com/monkey.d.scraping/facebook-comments-scraper): export comments and replies of public Facebook posts, reels and videos, with reactions by type and language codes.
- [Instagram Comments Scraper | Cheapest $0.18/1K](https://apify.com/monkey.d.scraping/instagram-comments-scraper): export comments of public Instagram posts and reels, with authors, likes and post details.

For complementary video and creator research, [Bilibili Scraper](https://apify.com/monkey.d.scraping/bilibili-scraper) collects public Bilibili videos, creator catalogs and root comments. It is a separate Actor with its own pricing.

# Actor input Schema

## `postUrls` (type: `array`):

Full public Lemon8 post URLs. Maximum 10.

## `maxPosts` (type: `integer`):

Global maximum across all sources. Duplicate post IDs are skipped. Earlier source lists are processed first and count toward this maximum.

## `profileUrls` (type: `array`):

Optional public profiles, e.g. https://www.lemon8-app.com/@lemon8_us. Posts are enriched with the same details and conversation options.

## `keywords` (type: `array`):

Related posts from the US web search, matched by topic rather than exact wording.

## `hashtags` (type: `array`):

Examples: skincare, #travel. Verifies an exact matching topic from up to eight related posts. If unresolved, use a numeric hashtag URL.

## `hashtagUrls` (type: `array`):

Optional exact topic links, e.g. https://www.lemon8-app.com/topic/7189373472454344709. Use these when a name cannot be resolved.

## `feedCategories` (type: `array`):

US feeds such as fashion, beauty, food or travel. Stops when no new posts are found.

## `maxCommentsPerPost` (type: `integer`):

Set 0 for post details only. Counts main comments, not replies.

## `includeReplies` (type: `boolean`):

Retrieve replies to collected comments. Takes more requests.

## `maxRepliesPerComment` (type: `integer`):

Applies when Include replies is on.

## `resumeFromDataset` (type: `string`):

Optional 17-character Apify dataset ID. Skip successful posts already present. Error rows are retried. Reads up to 100,000 previous rows and scans up to 1,000 posts per discovery source.

## Actor input object example

```json
{
  "postUrls": [
    "https://www.lemon8-app.com/@lemon8_us/7618125167721710094"
  ],
  "maxPosts": 5,
  "maxCommentsPerPost": 5,
  "includeReplies": false,
  "maxRepliesPerComment": 10
}
```

# Actor output Schema

## `posts` (type: `string`):

Public post rows with nested comments and replies; error rows identify unavailable sources.

## `summary` (type: `string`):

Discovery stop reasons, retrieved counts, skipped post IDs count and billing status.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "postUrls": [
        "https://www.lemon8-app.com/@lemon8_us/7618125167721710094"
    ],
    "maxCommentsPerPost": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("monkey.d.scraping/lemon8-posts-comments").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "postUrls": ["https://www.lemon8-app.com/@lemon8_us/7618125167721710094"],
    "maxCommentsPerPost": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("monkey.d.scraping/lemon8-posts-comments").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "postUrls": [
    "https://www.lemon8-app.com/@lemon8_us/7618125167721710094"
  ],
  "maxCommentsPerPost": 5
}' |
apify call monkey.d.scraping/lemon8-posts-comments --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,monkey.d.scraping/lemon8-posts-comments"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GV6YMoTqgE3WTb0VA/builds/waYajEugL1LRBbZ6T/openapi.json
