Lemon8 Feed Scraper icon

Lemon8 Feed Scraper

Scrape Lemon8 feeds across 22 categories and 10+ regions. Extract posts, images, videos, comments, engagement metrics, and post analytics with support…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Lemon8 Feed Scraper at a glance

Lemon8 Feed Scraper is a ready-to-run Apify actor from abotapi for collecting social media data. Its documented output includes id, title, content, author and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.40 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Social Media, Developer Tools, Automation
Pricing
$2.00 per 1,000 results (Free plan), from $1.40 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
22 options

Scrape Lemon8 feeds across 22 categories and 10+ regions. Extract posts, images, videos, comments, engagement metrics, and post analytics with support for infinite scrolling and high-quality media downloads. Ideal for content monitoring, research, and trend analysis.

What Lemon8 Feed Scraper: Posts, Comments, Analytics & Media can do

  • 37 feed categories, 10 regions. For You, Outfits, Skincare, Recipes, Fitness, Travel and 31 more, each available for the US, Australia, Japan and 7 other regions.
  • Two ways in. Pick a category (by number or by name) and region, or paste Lemon8 feed, post or profile links and let the actor work out the rest.
  • Full post data. Title, preview text, engagement counts, images and hashtags from the feed listing, with the complete post body, related topics and edit time available when full details are turned on.
  • Comment threads. Top-level comments plus their replies, expanded until the Comment Expansion Timeout (30 seconds per post by default). Max Comments per Post keeps the first 20 comments per post by default (0 to 1000; also the cap on replies per comment); raise it for deeper threads, or set 0 to skip comments.
  • Optional media downloads. Save a post's images and its video straight into the key-value store.
  • Built for schedules. Incremental mode returns only new and changed posts on recurring runs, and a refused run fails loudly instead of quietly returning an empty dataset.

Choose what to collect

These inputs let you configure Lemon8 Feed Scraper: Posts, Comments, Analytics & Media. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
categoryinteger · requiredFeed category: 0=ForYou, 1=Outfits, 2=Skincare, 3=Nails, 4=Home, 5=Recipes, 6=Makeup, 7=Hair, 8=Fitness, 9=Accessories, 10=Perfume, 11=MentalHealth, 12=Relationship, 13=Wellness, 14=Baking, 15=Music, 16=Shoes, 17=Travel, 18=Tattoo, 19=Drinks, 20=Dining, 21=HomeSkills, 22=Bags, 23=Reading, 24=Photography, 25=Movie, 26=Outdoors, 27=Tech, 28=Art&Design, 29=Gardening, 30=Career, 31=Games, 32=Education, 33=Cars, 34=Wedding, 35=Maternity, 36=Pets
categoryNamestringOptional category by name, for example Outfits, Skincare or Mental Health. When set it replaces the numeric Category. An unknown name stops the run with a clear message.
startUrlsarrayLemon8 links to scrape: a feed (/feed/outfits?region=au), a post (/@user/) or a profile (/@user). Tracking parameters such as share_token are ignored and the same post pasted twice is scraped once. When provided, these take precedence over Category. The Console form pre-fills one example of each shape; clear it to scrape by Category instead. An API call that omits this field scrapes by Category.
regionstringRegion: us=United States, au=Australia, nz=New Zealand, jp=Japan, th=Thailand, id=Indonesia, vn=Vietnam, my=Malaysia, sg=Singapore, ca=Canada
limitintegerMaximum number of posts to extract (max 5000)
getDetailsbooleanNavigate to individual post pages to extract full content and all comments
detailsLimitintegerMaximum number of posts to get detailed data for
Show 15 more inputs
More input fields
InputWhat it controls
commentExpansionTimeoutintegerMaximum time in seconds to spend expanding comments on each post. Posts with many comments may timeout.
maxCommentsPerPostintegerMaximum top-level comments kept per post, and maximum replies kept per comment. 0 skips comments. Lower values finish faster and keep runs small.
saveImagesbooleanDownload post images locally and store in key-value store
saveVideosbooleanDownload videos from video posts and store in key-value store
dev_transform_fieldsarrayTransform output to include only specified fields. Use dot notation for nested objects.
dev_dataset_namestringSave results into a custom named Dataset. Placeholders: {ACTOR}, {DATE}, {TIME}
dev_dataset_clearbooleanClear the dataset before inserting new data
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large pull of posts without returning or charging for posts already collected there. Use this after an interrupted run, or when continuing a feed pull in another run. For recurring daily monitoring of the same feed, use Incremental mode below instead.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the category/Start URLs, region, and Get Detailed Post Data setting, different feed setups then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return posts that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return posts that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned every tracked category/Start URL, not when Post Limit capped it, or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayOptional. Field names to leave out of UPDATED change detection (they stay in the output). Use it when a field is noisy in your setup, e.g. statistics to ignore like and comment counters. Dotted names reach nested fields: statistics.likesCount, details.videoData.posterUrl, allComments.time. Ignoring a whole parent such as details or allComments hides every change inside it.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (text)
titleTitle (text)
contentContent (text)
author.nameAuthor (text)
postUrlURL (link)
statistics.likesCountLikes (text)
isVideoIs Video (boolean)
categoryCategory (text)
categoryIdCategory ID (text)
likesLikes (flat) (number)
savesSaves (number)
commentCountComments (number)
Show 18 more fields
authorFollowersAuthor Followers (number)
regionRegion (text)
sourceModeSource (text)
imagesImages (json)
details.videoDataVideo Data (json)
author.profileUrlProfile URL (link)
author.profileImageUrlProfile Image (image)
allCommentsAll Comments (json)
details.fullContentFull Content (text)
details.hashtagsHashtags (json)
details.editTimeLast Edited (text)
details.relatedTopicsRelated Topics (json)
details.statisticsDetailed Stats (json)
changeTypeChange (text)
changedFieldsChanged Fields (array)
firstSeenAtFirst Seen (text)
lastSeenAtLast Seen (text)
urlURL (link)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "7412987407534162437",
  "author": {
    "name": "Sample Creator",
    "followerCount": null,
    "profileUrl": "https://www.lemon8-app.com/@sample_creator?region=us",
    "profileImageUrl": "https://p16-lemon8-sign.byteimg.com/sample-avatar.jpg"
  },
  "title": "5 Skincare Steps I Swear By",
  "content": "Here's my short daily routine that actually works for me...",
  "postUrl": "https://www.lemon8-app.com/@sample_creator/7412987407534162437?region=us",
  "statistics": {
    "savedCount": "0",
    "likesCount": "6437",
    "commentsCount": "0"
  },
  "images": [
    {
      "src": "https://p16-lemon8-sign.byteimg.com/sample-image-1.jpg",
      "alt": ""
    }
  ],
  "isVideo": false,
  "category": "Skincare",
  "categoryId": 2,
  "details": {
    "title": "5 Skincare Steps I Swear By",
    "fullContent": "Here's my full daily skincare routine, step by step, with the products I use.",
    "hashtags": [
      "#skincare",
      "#glowup"
    ],
    "editTime": "7/30",
    "statistics": {
      "savedCount": "312",
      "likesCount": "6437",
      "commentsCount": "148"
    },
    "galleryImages": [
      {
        "src": "https://p16-lemon8-sign.byteimg.com/sample-image-1.jpg",
        "alt": ""
      }
    ],
    "relatedTopics": [
      "Skincare Routine",
      "Glass Skin"
    ],
    "isVideo": false,
    "videoData": null
  },
  "allComments": [
    {
      "author": "Sample Fan",
      "authorTag": null,
      "content": "This actually worked for me too!",
      "time": "7/30",
      "likes": "12",
      "replies": null
    }
  ],
  "commentStats": {
    "totalComments": 42,
    "totalReplies": 9,
    "previewCommentCount": 0
  },
  "groupId": "7412987407534162437",
  "url": "https://www.lemon8-app.com/@sample_creator/7412987407534162437?region=us",
  "likes": 6437,
  "saves": 312,
  "commentCount": 148,
  "authorUsername": "sample_creator",
  "authorNickname": "Sample Creator",
  "hashtags": [
    "#skincare",
    "#glowup"
  ],
  "topComments": [
    {
      "author": "Sample Fan",
      "content": "This actually worked for me too!",
      "likes": 12,
      "time": "7/30"
    }
  ],
  "articleClass": "Image",
  "region": "us",
  "sourceMode": "feed",
  "scrapedAt": "2026-10-30T00:00:00+00:00",
  "keyword": null
}

Ways to use this data

  • Trend and content research: track what is trending inside a category, from Skincare to Outfits to Recipes, across 10 regions.
  • Creator discovery: collect author names, profile links and like counts to find creators worth reaching out to.
  • Community and sentiment analysis: pull full comment threads with replies to see how an audience reacts to a topic.
  • Competitive or brand monitoring: schedule the actor with Incremental mode to see only new and changed posts for a category over time.
  • Media archiving: save post images and videos into the key-value store alongside the text data.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Lemon8 Feed Scraper return?

The documented output for Lemon8 Feed Scraper includes id, title, content, author, url, likes, is video and category. Availability of each field depends on the source page and the selected mode.

How much does Lemon8 Feed Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.40 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

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 for the same category or Start URLs, region and Get Detailed Post Data setting. Unchanged posts are not billed unless you also turn on Emit unchanged.

What is the difference between Resume and Incremental mode?

Resume reads the post IDs from ONE specific interrupted run so a follow-up run can continue that large pull, it is for finishing a large pull, not for daily monitoring. Incremental mode is for scheduling the SAME feed again and again and getting only what changed; it remembers state itself, keyed by category or Start URLs, region and Get Detailed Post Data, or a State key you choose. Turning both on together against an incremental state that already has tracked posts fails fast with a message asking you to remove one.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the "Pipe results into your apps" field to push a summary of each post into Notion, Linear or Airtable.

Ready to collect with Lemon8 Feed Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.