Lemon8 Scraper
Pricing
from $1.25 / 1,000 posts
Lemon8 Scraper
Collect public Lemon8 posts, creator profiles, and follower or following profiles. Choose one surface per run and save post text, authors, engagement, media links, and source details in an Apify dataset. Leave the item limit empty to collect all available results until the source is exhausted.
Pricing
from $1.25 / 1,000 posts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
🍋 Find public Lemon8 posts and profiles
For social media researchers, marketers, and creator teams, Lemon8 Scraper collects public Lemon8 posts, creator profiles, and follower or following profiles. It saves post text, authors, engagement counts, media links, profile details, and source context in a structured Apify dataset, so you can review Lemon8 data in one place.
- Check access questions with Lemon8 APK before you choose a source.
- Read Download Lemon8 for PC guidance when you need computer access.
- Review Lemon8 App Available Countries when comparing regional access.
- Find How to Login to Lemon8 Without TikTok guidance for account access.
- Check Lemon8 App Banned information when access is limited.
📦 Lemon8 rows in your dataset
Each row is a public result from the retrieval surface you choose. The dataset has three row types:
postrows with post identity, text, author data, engagement, media links, hashtags, optional details, and source context.creatorProfilerows with public profile details, links, images, counts, and source context.profileRelationshiprows with a public profile, its follower or following relationship, the source profile, and source context.
Optional values stay absent when Lemon8 does not expose them. Media is returned as direct source URLs.
▶️ Choose one Lemon8 collection surface
Set Target to one surface for each run: keyword discovery, category feed, creator profiles, creator posts, individual post details, followers, or following. Only inputs for the selected surface are read. Use a separate run for each keyword or surface you need.
The Actor saves the first eligible occurrence of each source item as it finds it. If the same source item appears again from another keyword, URL, handle, ID, or similar submitted value, later matches are ignored. The saved row describes only the first match.
Use public Lemon8 pages only. Private or login-only pages are outside this Actor's scope. Set Maximum items when you want a smaller run. Leave it empty to return all available results until the source is exhausted. Maximum items only stops collection. It does not filter by date or engagement.
Turn on Add post details and comments when you need slower post details plus comments and replies for keyword discovery, category feeds, creator posts, or individual post details. Leave it off when you do not need those fields.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
target | string | Chooses one retrieval surface: keyword, category, creator_profiles, creator_posts, post_details, followers, or following. |
keyword | string | One keyword for public Lemon8 post discovery. Use a separate run for another keyword. |
category | string | One supported Lemon8 category, such as For You, for a public category feed. |
postUrls | array of objects | Public post URL entries for the post_details target. |
postUrls[].url | string | One public Lemon8 post URL. |
creatorProfiles | array of strings | Public creator handles or profile URLs for creator_profiles or creator_posts. Use one kind of identifier in a run. |
creatorProfiles[] | string | One public creator handle or profile URL. |
sourceProfiles | array of strings | Public creator handles or profile URLs used as sources for followers or following. |
sourceProfiles[] | string | One public source profile handle or profile URL. |
region | string | Optional supported Lemon8 region for the selected surface. Leave it empty to use the source's default region. |
maxItems | integer | Optional work limit. Stops after this many records. Leave it empty to return all available results until the source is exhausted. It does not filter by date or engagement. |
includePostEnrichment | boolean | For keyword discovery, category feed, creator posts, or individual post details, requests slower post details with comments and replies. Extra fields appear when the source provides them. |
Example input
This public input came from a successful run using the default input values:
{"target": "keyword","keyword": "travel","maxItems": 20,"includePostEnrichment": false}
🧾 Output
Dataset link
| Field | Type | What it does |
|---|---|---|
dataset | string | Link to the successful Lemon8 results saved from this run. |
Each dataset row follows one of the three shapes below. Fields can be absent when the selected Lemon8 source does not provide them.
Post rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Always post for a post row. |
postId | string | Stable Lemon8 post ID. |
postUrl | string | Direct link to the Lemon8 post. |
title | string | Title shown on the post. |
caption | string | Text or caption published with the post. |
author | object | Public details for the post author. |
author.id | string | Stable author ID. |
author.handle | string | Public author handle. |
author.name | string | Public author display name. |
author.profileUrl | string | Direct link to the author's public profile. |
author.avatarUrl | string | Direct link to the author's avatar image. |
author.followerCount | integer | Author follower count shown by the source. |
author.followingCount | integer | Number of accounts followed by the author when shown. |
engagement | object | Engagement counts shown for the post. |
engagement.likeCount | integer | Post like count. |
engagement.saveCount | integer | Post save count. |
engagement.commentCount | integer | Post comment count. |
media | object | Direct source links for post media. |
media.mediaType | string | Media kind: image, video, or mixed. |
media.imageUrls | array of strings | Direct image URLs in source order. |
media.videoUrls | array of strings | Direct video URLs in source order. |
hashtags | array of strings | Hashtags attached to the post. |
relatedTopics | array of strings | Related topics shown by the source. |
edit | object | Edit details shown by the source. |
edit.isEdited | boolean | Whether the source marks the post as edited. |
edit.editedAt | date-time string | Time when the source says the post was edited. |
comments | array of objects | Comments and replies from optional post enrichment. |
comments[].commentId | string | Stable comment or reply ID. |
comments[].author | object | Public author details for the comment or reply. |
comments[].author.id | string | Stable comment author ID. |
comments[].author.handle | string | Public comment author handle. |
comments[].author.name | string | Public comment author display name. |
comments[].author.profileUrl | string | Direct link to the comment author's public profile. |
comments[].author.avatarUrl | string | Direct link to the comment author's avatar image. |
comments[].text | string | Text of the comment or reply. |
comments[].createdAt | date-time string | Time when the comment or reply was published. |
comments[].likeCount | integer | Like count shown for the comment or reply. |
comments[].parentCommentId | string | ID of the comment that this reply belongs to. |
source | object | Retrieval surface and submitted value that led to the row. |
source.retrievalSurface | string | Surface used to find the row. |
source.keyword | string | Keyword that caused the post row to be saved, when used. |
source.category | string | Category feed that caused the post row to be saved, when used. |
source.region | string | Lemon8 region used for the result, when selected. |
changeType | string | Monitoring state when recurring monitoring is used: new, updated, unchanged, reappeared, or expired. |
Example post row
This complete row came from a successful individual post details run:
{"recordType": "post","postId": "7582911139047080465","postUrl": "https://www.lemon8-app.com/@thetravelintern/7582911139047080465","title": "Save this guide before heading to Hanoi, Vietnam!🇻🇳","caption": "Heading to Hanoi for the first time? Here are some travel tips for you to keep in mind! ✈️ 1) Check the weather before you go Unlike most of Southeast Asia, Hanoi (and Vietnam in general), experiences distinct seasons, ranging from cool winters to humid summers. So make sure to check the forecast before your trip and pack accordingly! 🌦️🧥 2) Get around like a local The most common and convenient way to travel is by motorbike. Download ride-hailing apps like Grab to make getting around easier. It’s affordable, quick, and the best way to experience the city like a local 🛵💨 3) Don't panic when crossing the street! Hanoi’s traffic can look chaotic, but there’s a rhythm to it. Follow locals when crossing, walk at a steady pace, and keep an eye on oncoming bikes. Most drivers will slow down or weave around you, so just remain calm and go! 🚶♀️🚦 Follow @thetravelintern for more travel inspiration! #sgtravel #hanoiitinerary #hanoitravel #hanoi #vietnam","author": {"id": "6664509095087030273","handle": "thetravelintern","name": "thetravelintern","profileUrl": "https://www.lemon8-app.com/@thetravelintern","avatarUrl": "https://p16-lemon8-cross-sign.tiktokcdn-us.com/user-avatar-alisg/326c4e92188a71abfa4c1110482dca93~tplv-sdweummd6v-shrinkf:120:0:q75.webp?lk3s=66c60501&source=feed_user&x-expires=1788458400&x-signature=LfC%2FAHuryKXwjqREyZW6bIhupUk%3D","followerCount": 5565},"engagement": {"likeCount": 69,"saveCount": 86,"commentCount": 0},"media": {"mediaType": "image","imageUrls": ["https://p16-lemon8-sg-sign.tiktokcdn-us.com/tos-alisg-v-a3e477-sg/oAEa7T6AivNiv6BIB0WpAbPAqY3OAXAZcliAl~tplv-sdweummd6v-wap-logo-v1:QHRoZXRyYXZlbGludGVybg==:1080:0.webp?lk3s=66c60501&source=wap_large_logo_image&x-expires=1790445600&x-signature=MAcH%2Fgs2OVlnfBD9ocrCpBPp6fw%3D","https://p16-lemon8-sg-sign.tiktokcdn-us.com/tos-alisg-v-a3e477-sg/oAOWYAliav4bABZiAXqlnBI370TAEAvdP6iqp~tplv-sdweummd6v-wap-logo-v1:QHRoZXRyYXZlbGludGVybg==:1080:0.webp?lk3s=66c60501&source=wap_large_logo_image&x-expires=1790445600&x-signature=3%2BjFjUQ3dkBho2smByjNBIMSqL4%3D"],"videoUrls": []},"hashtags": ["#hanoi","#sgtravel","#hanoiitinerary","#hanoitravel","#vietnam"],"relatedTopics": ["best time to visit hanoi"],"source": {"retrievalSurface": "post_details","region": "sg"},"edit": {"isEdited": false,"editedAt": "2025-12-12T10:13:05.000Z"},"comments": []}
Creator profile rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Always creatorProfile for a creator profile row. |
profile | object | Public creator profile details. |
profile.id | string | Stable creator profile ID. |
profile.handle | string | Public creator handle. |
profile.name | string | Public creator display name. |
profile.biography | string | Biography shown on the creator profile. |
profile.profileUrl | string | Direct link to the public creator profile. |
profile.avatarUrl | string | Direct link to the profile avatar image. |
profile.coverImageUrl | string | Direct link to the profile cover image. |
profile.links | array of strings | Links shown on the creator profile. |
profile.postCount | integer | Number of posts shown for the profile. |
profile.followerCount | integer | Number of followers shown for the profile. |
profile.followingCount | integer | Number of accounts followed by the profile when shown. |
source | object | Retrieval surface and submitted value that led to the row. |
source.retrievalSurface | string | Surface used to find the profile. |
source.keyword | string | Keyword that led to the row, when relevant. |
source.category | string | Category feed that led to the row, when relevant. |
source.region | string | Lemon8 region used for the result, when selected. |
changeType | string | Monitoring state when recurring monitoring is used: new, updated, unchanged, reappeared, or expired. |
Example creator profile row
This genuine row came from a successful creator profile run:
{"recordType": "creatorProfile","profile": {"id": "6664509095087030273","handle": "thetravelintern","name": "thetravelintern","biography": "Travel inspo | guides | itineraries | hacks 🇸🇬✈️🌍","profileUrl": "https://www.lemon8-app.com/@thetravelintern","avatarUrl": "https://p16-lemon8-cross-sign.tiktokcdn-us.com/user-avatar-alisg/326c4e92188a71abfa4c1110482dca93~tplv-sdweummd6v-shrinkf:1200:0:q75.webp?lk3s=d32e6450&source=ui_avatar&x-expires=1788458400&x-signature=VNpaX%2FlpWFLU29WZvra28b56c98%3D","links": ["https://www.instagram.com/thetravelintern/","https://thetravelintern.com"],"postCount": 74,"followerCount": 5565,"followingCount": 1},"source": {"retrievalSurface": "creator_profiles"}}
Profile relationship rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Always profileRelationship for a follower or following row. |
profile | object | Public profile details for the listed account. |
profile.id | string | Stable listed profile ID. |
profile.handle | string | Public listed profile handle. |
profile.name | string | Public listed profile display name. |
profile.biography | string | Biography shown for the listed profile. |
profile.profileUrl | string | Direct link to the listed public profile. |
profile.avatarUrl | string | Direct link to the listed profile avatar. |
profile.coverImageUrl | string | Direct link to the listed profile cover image. |
profile.links | array of strings | Links shown on the listed profile. |
profile.postCount | integer | Number of posts shown for the listed profile. |
profile.followerCount | integer | Number of followers shown for the listed profile. |
profile.followingCount | integer | Number of accounts followed by the listed profile when shown. |
relationship | string | Relationship to the source profile: follower or following. |
sourceProfile | object | Public profile used as the follower or following source. |
sourceProfile.id | string | Stable source profile ID. |
sourceProfile.handle | string | Public source profile handle. |
sourceProfile.name | string | Public source profile display name. |
sourceProfile.profileUrl | string | Direct link to the source profile. |
source | object | Retrieval surface and submitted value that led to the row. |
source.retrievalSurface | string | Surface used to find the relationship. |
source.keyword | string | Keyword that led to the row, when relevant. |
source.category | string | Category feed that led to the row, when relevant. |
source.region | string | Lemon8 region used for the result, when selected. |
changeType | string | Monitoring state when recurring monitoring is used: new, updated, unchanged, reappeared, or expired. |
Example profile relationship row
This genuine row came from a successful followers run:
{"recordType": "profileRelationship","profile": {"id": "7064457970561909762","handle": "msbald_10ismyuser","name": "🎵adiah","biography": "","profileUrl": "https://www.lemon8-app.com/@msbald_10ismyuser","avatarUrl": "https://p19-lemon8-cross-sign.tiktokcdn-us.com/tos-alisg-i-0000/4e33379e42d2474999b05b263ade0dfb~tplv-sdweummd6v-shrinkf:1200:0:q75.webp?lk3s=d32e6450&source=ui_avatar&x-expires=1788458400&x-signature=rT08mvwV9iYf%2FvQKdE8I%2B82HniA%3D","links": [],"followerCount": 0},"relationship": "follower","sourceProfile": {"id": "6778452273708188673","handle": "dailyvanity","name": "Daily Vanity","profileUrl": "https://www.lemon8-app.com/@dailyvanity"},"source": {"retrievalSurface": "followers","region": "sg"}}
💳 Pricing
This Actor uses pay-per-event pricing. The buyer-facing event is Post. One successfully retrieved post saved to your dataset creates one event. Check the pricing panel for the current tier price.
🔌 Integrations
Open the dataset link after a run, or use the Apify API to read the same rows. Media stays at Lemon8 and is returned through direct source URLs.
For a walkthrough, watch this video:
❓ FAQ
Can I search more than one keyword in one run?
No. Choose the keyword target and enter one keyword. Start another run for another keyword.
Can I mix post URLs with creator profiles?
No. Choose one target for a run. Only the fields used by that target are read, so use separate runs for post URLs and creator profiles.
How do I get comments and replies?
Turn on Add post details and comments for keyword discovery, category feed, creator posts, or individual post details. This path can take longer, and the extra fields appear when Lemon8 provides them.
Can I collect followers and following in one run?
No. Choose either Followers or Following as the target. Add the source profile handles or URLs in Source profiles.
Why is an optional field missing?
Lemon8 does not show every field for every post or profile. The Actor keeps source omissions instead of making up values.
What happens when the same post appears twice?
The first eligible match is saved as soon as it is found. A later match for the same source item is ignored, and the saved row keeps the first match.
What does leaving Maximum items empty do?
It returns all available results until the source is exhausted. Maximum items only stops collection. It does not filter by date or engagement.
Does the Actor access private Lemon8 pages?
No. It works with publicly reachable Lemon8 pages and does not use source-account setup to open private or login-only pages.
Does the Actor store media files?
No. It returns direct source URLs for available media. It does not archive or transform those files.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- TikTok Search Scraper: Search public TikTok videos or creator profiles by keyword.
- Influencer Scraper: Build public creator profile lists across TikTok, Instagram, and YouTube.
- Instagram User Search: Find public Instagram accounts from keywords and profile data.
- TikTok Creator Analytics: Review public TikTok creator totals and recent post metrics.
- Social Media Stats Checker: Compare public profile stats across several social platforms.
Made with ❤️ by Maxime Dupré