Lemon8 Search Scraper: Posts, Comments & Media avatar

Lemon8 Search Scraper: Posts, Comments & Media

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Lemon8 Search Scraper: Posts, Comments & Media

Lemon8 Search Scraper: Posts, Comments & Media

Scrape Lemon8 posts by keyword across multiple regions. Extract posts, images, videos, comments, engagement metrics, and detailed post analytics, with support for high-quality media downloads. Ideal for market research, content analysis, and trend monitoring.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

3

Bookmarked

86

Total users

11

Monthly active users

15 hours ago

Last modified

Share

Lemon8 Scraper: Discovery Posts, Engagement, Comments & Media Links

Lemon8 Scraper turns Lemon8's keyword discovery feed into structured data. Search any keyword and region, or paste discovery links directly, and get post text, images, video links, author profiles, engagement counts, hashtags and full comment threads with nested replies. Export the dataset as JSON, CSV or Excel, or read it straight through the API.

Why This Scraper?

  • Two ways to target content. Search by keyword and region, or paste one or more Lemon8 discovery links; each link's keyword and region are parsed automatically.
  • Full post detail on demand. Turn on Get Detailed Post Data for untruncated post text, hashtags, related topics, edit history and real engagement counts.
  • Complete comment threads. Expand every comment and its replies for a post, with a running total of comments and replies collected.
  • 10 regional storefronts. United States, Australia, New Zealand, Japan, Thailand, Indonesia, Vietnam, Malaysia, Singapore and Canada.
  • Built for schedules. Incremental mode returns only new, updated and reappeared posts on recurring runs, and a run that could not read the discovery page fails loudly instead of quietly returning an empty dataset.
  • Resume large pulls. Continue an interrupted run from its run or dataset ID to pick up where it left off.
  • Send results onward. Pipe scraped posts into Notion, Linear, Airtable or Apify through MCP connectors.

Use Cases

  • Content and trend research: track which topics, hashtags and post formats are performing on Lemon8 right now.
  • Creator and influencer analysis: monitor a creator's posting cadence, engagement and comment sentiment over time.
  • Brand and competitor monitoring: watch how a product, campaign or hashtag is discussed across regions.
  • Regional market research: compare topic popularity for lifestyle, beauty or fashion content across storefronts.
  • Dataset building: collect posts, images and comment threads for archives, reports or model training data.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id"7412987407534162437"
title"Weekend Outfit Ideas"
content"A quick roundup of what I wore this weekend..." (preview, truncated)
postUrl"https://www.lemon8-app.com/@sample_creator/7412987407534162437?region=us"
author.name"Sample Creator"
author.profileUrl"https://www.lemon8-app.com/@sample_creator?region=us"
author.profileImageUrlavatar image URL
author.followerCountnull (not exposed by the discovery card)
statistics.likesCount"482"
statistics.savedCount / statistics.commentsCountalways "0" here; the real counts are in details.statistics (see FAQ)
imagesarray of { src, alt } image URLs
comments[], reserved preview slot (see FAQ)
isVideotrue or false
videoDataposter image and type for video posts; the playable file appears under details.videoData
searchQuery"fashion"
details.fullContentuntruncated post text, when Get Details is on
details.hashtags["#fashion", "#ootd", "#weekendstyle"]
details.editTime"9/28" (month/day last edited)
details.statisticsreal savedCount / likesCount / commentsCount, when Get Details is on
details.galleryImagesfull resolution images, when Get Details is on
details.relatedTopics["outfit ideas", "fall fashion"]
allCommentsfull comment thread with nested replies, when Get Details is on
commentStatstotalComments, totalReplies and previewCommentCount collected for the post

In incremental mode, every record also carries changeType, changedFields, firstSeenAt and lastSeenAt (see How to Use).

How to Use

  1. Pick how to target Lemon8: fill in Search Term and Region, or paste one or more links into Start URLs (Start URLs win when both are set).
  2. Set Post Limit, and turn on Get Detailed Post Data for full text, hashtags and comments, or leave it off for a faster shallow pass over the discovery feed.
  3. If you will run this actor on a schedule against the same search, turn on Incremental mode so later runs return only new and changed posts; otherwise leave that section alone.
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword and region:

{
"searchTerm": "skincare",
"region": "us",
"limit": 20,
"getDetails": true
}

Paste a discovery link instead:

{
"searchTerm": "fashion",
"startUrls": ["https://www.lemon8-app.com/discover/coffee?region=jp"],
"limit": 15
}

Recurring monitoring of the same search:

{
"searchTerm": "streetwear",
"region": "sg",
"limit": 50,
"getDetails": false,
"incrementalMode": true,
"stateKey": "streetwear-sg-daily"
}

Resume an interrupted run:

{
"searchTerm": "travel",
"region": "au",
"limit": 200,
"resumeFromRunId": "abcDEF123xyz"
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/lemon8-discover-scraper").call(run_input={"searchTerm": "fashion", "region": "us", "limit": 20})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(post["title"], post["statistics"]["likesCount"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/lemon8-discover-scraper').call({ searchTerm: 'fashion', region: 'us', limit: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID to pick up where it left off.
  • Incremental mode (incrementalMode) is for scheduling this actor against the same search. State is tracked by stateKey, or an automatic key derived from Search Term or Start URLs, Region and Get Detailed Post Data, so unrelated searches never share state. Each record is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED, or EXPIRED (only after a run that scanned every tracked target to its natural end, and only with emitExpired). With incremental mode off, output is exactly as before.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
searchTermstringfashionKeyword to search for on Lemon8. Used only when Start URLs is empty.
startUrlsarray[]Lemon8 discovery links to scrape instead of Search Term; each link's keyword and region are parsed automatically. Takes precedence over Search Term when set.
regionstringusTarget region: us, au, nz, jp, th, id, vn, my, sg or ca.
limitinteger2Maximum number of posts to extract per target (1 to 5000).
getDetailsbooleantrueNavigate to each post's page for full content, hashtags, related topics and all comments.
detailsLimitinteger2Maximum number of posts, out of Post Limit, to fetch detailed data for (1 to 3000).
commentExpansionTimeoutinteger30Seconds to spend expanding one post's comments before moving on (10 to 300).
resumeFromRunIdstring(none)Continue one interrupted run or dataset, picking up where it left off.
incrementalModebooleanfalseTurn on for recurring runs: classify each post as NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED against the previous run.
stateKeystring(none)Name or share an incremental-mode monitoring campaign; otherwise a key is derived automatically from the search scope.
emitUnchangedbooleanfalseAlso return (and bill) UNCHANGED posts every run.
emitExpiredbooleanfalseAlso return (and bill) posts no longer found, once a run fully scans every tracked target.
saveImagesbooleanfalseReserved; has no effect in the current version. Image links are always returned in images (and details.galleryImages when Get Detailed Post Data is on).
saveVideosbooleanfalseReserved; has no effect in the current version. The playable video link is returned in details.videoData.videoUrl when Get Detailed Post Data is on.
proxyobjectprefill: Apify Proxy (US)Connection settings. Left completely empty (for example, via a bare API call), the actor connects directly.
dev_transform_fieldsarray[]Return only the listed fields per post. Use a dot path for nested objects and a numeric index for arrays.
dev_dataset_namestringdefaultSave results into a custom named dataset instead of the default one. Supports {ACTOR}, {DATE} and {TIME} masks.
dev_dataset_clearbooleanfalseClear the target dataset before this run inserts new items.
mcpConnectorsarray(none)Optional: send a summary of each post to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which post pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": "7412987407534162437",
"author": {
"name": "Sample Creator",
"followerCount": null,
"profileUrl": "https://www.lemon8-app.com/@sample_creator?region=us",
"profileImageUrl": "https://p16-sign-va.tiktokcdn.com/sample-avatar.jpg"
},
"title": "Weekend Outfit Ideas",
"content": "A quick roundup of what I wore this weekend, from brunch to a night out...",
"postUrl": "https://www.lemon8-app.com/@sample_creator/7412987407534162437?region=us",
"statistics": {
"savedCount": "0",
"likesCount": "482",
"commentsCount": "0"
},
"images": [
{ "src": "https://p16-sign-va.tiktokcdn.com/sample-image-1.jpg", "alt": "" },
{ "src": "https://p16-sign-va.tiktokcdn.com/sample-image-2.jpg", "alt": "" }
],
"comments": [],
"isVideo": false,
"videoData": null,
"searchQuery": "fashion",
"details": {
"title": "Weekend Outfit Ideas",
"fullContent": "A quick roundup of what I wore this weekend, from brunch to a night out. Full untruncated post text goes here.",
"hashtags": ["#fashion", "#ootd", "#weekendstyle"],
"editTime": "9/28",
"statistics": {
"savedCount": "312",
"likesCount": "482",
"commentsCount": "37"
},
"galleryImages": [
{ "src": "https://p16-sign-va.tiktokcdn.com/sample-image-1.jpg", "alt": "" },
{ "src": "https://p16-sign-va.tiktokcdn.com/sample-image-2.jpg", "alt": "" }
],
"searchQuery": null,
"relatedTopics": ["outfit ideas", "fall fashion"],
"isVideo": false,
"videoData": null
},
"allComments": [
{
"author": "Sample Commenter",
"authorTag": null,
"content": "Love this look!",
"time": "9/27",
"likes": "12",
"replies": [
{ "author": "Sample Creator", "content": "Thank you!", "time": "9/27", "tag": null }
]
}
],
"commentStats": {
"totalComments": 37,
"totalReplies": 9,
"previewCommentCount": 0
}
}

Plan Requirement

The default connection setting works out of the box. For large or frequent runs, choose the residential proxy group under the proxy field for more headroom. No other plan-specific configuration is required.

FAQ

How much does it cost?

You pay per record returned. The Pricing tab shows the current rates. Use Post Limit and Details Post Limit to cap the cost of any run.

This actor collects only publicly available discovery-feed data. You are responsible for how you use it: follow Lemon8's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Post text and counts are generally facts, but images, video and profile photos may be subject to third-party rights.

Can I get only new or changed posts on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared posts, and unchanged ones are not returned or billed unless you turn on Emit unchanged.

Why do a post's saved and comment counts show 0?

The discovery feed itself only reports a like count, so statistics.savedCount and statistics.commentsCount are always "0" at the top level. Turn on Get Detailed Post Data and the real saved, like and comment counts appear in details.statistics for each detailed post (up to Details Post Limit).

Why did my run fail instead of returning an empty dataset?

If Start URLs is set but none of its entries is a recognizable Lemon8 discovery link, or if every request to the discovery page was refused or timed out, the run fails with a specific, actionable message and no dataset item is billed. A search or region that genuinely has no matching posts is a different case: the run still succeeds, and simply returns nothing.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 Want more Lemon8 data?

Pair this actor with these related scrapers from the same team:

👗 Lemon8 Feed Scraper
Scrape Lemon8 feeds across 22 categories and 10+ regions. Extract posts, images, videos...
📱 Lemon8 Profile Scraper
Scrape Lemon8 user profiles with automated multi-profile discovery. Extract profile data...
📱 Lemon8 Media Scraper
Lightweight Lemon8 scraper for extracting image and video URLs from posts, with optional...
📱 Truth Social Scraper
Scrape public Truth Social profiles, posts, media, metrics, author data, and complete...
📱 Reddit [
From $1/1K. Scrape Reddit posts, comments, and media from any subreddit or user profile -...
🎬 Twitch ALL IN ONE URL
From $1/1K. Scrape Twitch data at scale, including channels, live streams, clips, VODs...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.