Pikabu Scraper at a glance
Pikabu Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, id, title, text and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 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
- Web data
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 20 options
Scrape Pikabu (Пикабу): keyword search, hot/new/best feeds, communities, tags, full story details with media, all comments, creator profiles. Monitoring (NEW, UPDATED, REAPPEARED, EXPIRED), incremental runs, resume, MCP export.
What Pikabu Scraper can do
- Keyword search. Search by keyword with relevance, rating or newest ordering.
- Mixed inputs. Combine feed links and individual stories in the same collection.
- Full media. Return full-size images and video sources, posters and dimensions.
- Threaded comments. Collect comments with author information, votes and parent IDs.
- Profile data. Read profile counters, registration dates, avatars and awards.
- Cost control. Set shared item limits and individual comment limits.
Choose what to collect
These inputs let you configure Pikabu Scraper - Stories, Comments, Communities, Search. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search runs keyword search. Feed walks hot/new/best feeds, communities, tags or user blogs. Story reads full detail (text, media, comments) for pasted story links. Profile reads creator headers plus their stories. |
searchQuerystring | Search mode: keyword or phrase (Russian or English). Leave empty with Order set to walk the whole site feed. |
searchOrderstring | Search mode: result ordering on the site's own search. |
searchUrlstring | Paste a pikabu.ru search results URL, for example https://pikabu.ru/search?q=iphone&st=3, and it is scraped as a feed link (the st sort and page parameters are kept). When set it replaces Mode, Search query and Order. Leave empty to use the fields above. |
feedLinksarray | Pikabu home/new/best feeds (optionally ?page=N), tags (with /hot|/new|/best), communities, user blogs, search result URLs (q, n, st, page), story links (including m.pikabu.ru) or bare story IDs. Feed and Story modes accept links from either link field; listings are paginated and individual stories receive full detail. Leave the field untouched to scrape one example per shape. |
storyUrlsarray | Pikabu story links or bare numeric story IDs. Feed and Story modes also accept listing links here. Duplicate stories are collected once. |
profileUrlsarray | Profile mode: pikabu.ru/@name links or bare account names. Each entry returns one profile record with stats and recent stories. |
Show 13 more inputs
| Input | What it controls |
|---|---|
fetchDetailsboolean | Feed and search modes: open every collected story for its full text, media and tags. Each successfully returned detailed story has one enrichment event. With Collect comments enabled, additional comment enrichment events use round(returned comments / 10) per story. Off returns cards only. |
fetchCommentsboolean | Collect comments of each opened story as separate records, including author, text, rating, media and parent comment. Every returned comment has the result-item charge. Additional enrichment events per story equal round(returned comments / 10), on top of its story-detail event. For example, 11 returned comments add one enrichment event. Exact halves round to the nearest even integer; suppressed comments are excluded. |
maxCommentsPerStoryinteger | Maximum comment records to return per story; Default 100; 0 is accepted and means the hard cap of 10000 comments per story. Max items still applies. Comment enrichment charges use round(actual returned comments / 10) per story, not this limit. Exact halves round to the nearest even integer. |
maxItemsinteger | Stop after this many records (0 = no limit; the run then stops when listings run out). Comments count towards this cap too. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large pull without returning items already collected there. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns every matching record as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the mode and scope settings. |
emitUnchangedboolean | Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED (each is reported once and counts toward Max items; one that comes back is marked REAPPEARED). Only produced once a run has fully scanned the tracked scope. |
ignoreFieldsForChangesarray | Field names that must not mark a record as UPDATED, for example author or tags. Rating, comment count, pluses, minuses, views and subscribers (including the author's subscriber count and avatar) are always ignored for change detection but still returned. The author is compared on id, name and profile link, the community on name and link. Only used with incremental mode. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap 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.
kindkindididtitletitletexttexturlurlauthorauthorcommunitycommunitytagstagsratingratingcommentsCountcommentsCountpublishedAtpublishedAttimestamptimestampShow 40 more fields
blocksblocksmediamediastoryIdstoryIdparentIdparentIdnamenameavataravatarregisteredAtregisteredAtstatsstatscounterscountersdescriptiondescriptionsubscriberssubscribersstoriesCountstoriesCountrecentStoriesrecentStorieschangeTypechangeTypechangedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtseriesIdseriesIddetailFetcheddetailFetchedchannelchanneltagUrlstagUrlsplusesplusesminusesminusesisLongisLongisPinnedisPinnedimagesimagesvideosvideoslinkslinksdepthdepthisEditedisEditedlikedByStoryAuthorlikedByStoryAuthoruserIduserIdfollowingfollowingbackgroundImagebackgroundImageisVerifiedisVerifiedawardsawardsslugslugviewsviewscreatedAtHumancreatedAtHumanscrapedAtscrapedAtExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "story",
"id": "00000001",
"title": "Sample Story",
"url": "https://pikabu.ru/story/sample_story_00000001",
"author": {
"id": "0000",
"name": "Sample Author",
"url": "https://pikabu.ru/@sample_creator"
},
"community": null,
"tags": [
"Sample tag"
],
"tagUrls": [
"https://pikabu.ru/tag/sample"
],
"rating": 120,
"pluses": 130,
"minuses": 10,
"commentsCount": 11,
"publishedAt": "2026-01-01T00:00:00+03:00",
"timestamp": 1700000000,
"seriesId": null,
"isLong": false,
"isPinned": false,
"blocks": [
{
"type": "text",
"text": "Sample public story text",
"links": []
}
],
"text": "Sample public story text",
"images": [],
"videos": [],
"media": {
"images": 0,
"videos": 0
},
"detailFetched": true
}Ways to use this data
- Content and trend research: track which stories, tags and communities are gaining rating, comments and reposts, sorted by relevance, rating or date.
- Community and sentiment research: collect comments with author, vote and parent-thread data on chosen posts, tags or communities to study discussion patterns.
- Creator and account scouting: pull profile counters, registration dates, awards and recent stories to evaluate an account's history and reach.
- Content aggregation and republishing: feed stories, images and videos from specific tags, communities or user blogs into your own site, bot or digest.
- Recurring monitoring: watch a search, tag or community on a schedule and collect only the new and updated posts since the last run.
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 Pikabu Scraper return?
The documented output for Pikabu Scraper includes kind, id, title, text, url, author, community and tags. Availability of each field depends on the source page and the selected mode.
How much does Pikabu Scraper cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 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 stories and comments on a schedule?
Yes. Schedule the actor from the Schedules tab with the same search, feed, story or profile inputs each time, and turn on Incremental mode. The first scheduled run returns everything as NEW; later runs return only NEW and UPDATED records, and unchanged ones are suppressed, and not billed, unless Emit unchanged is on.
Why does my scheduled run not report expired records?
A run that stopped early (reached Max items, the comment limit with comments left, a refused page) never reports EXPIRED rows, because it cannot tell "removed from the site" from "not reached". Run again with Max items 0 (or high enough to cover the whole scope) on a bounded scope such as a community, tag, user blog or search; EXPIRED rows then appear only for records a complete walk did not find.
Why did my run fail instead of returning an empty dataset?
If every page the run tried to read was refused, the run stops with a clear failure message instead of quietly shipping zero results, so "nothing new today" is never confused with "nothing could be read". Run it again in a few minutes. If only some pages were refused, you still get whatever was read successfully.
Can I use it with AI agents or MCP?
Yes. Call the actor from any Apify integration or MCP client, and use the Send results into your apps field to send a summary of each record into Notion, Linear or Airtable when the run finishes, up to Max items to export per connector.
