Dzen.ru Scraper icon

Dzen.ru Scraper

Scrape Dzen.ru (ex Yandex.Zen): articles, videos and channels. Full article text with likes and comment counts, channel subscriber counts with their…

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

Dzen.ru Scraper at a glance

Dzen.ru Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes id, type, title, link and published, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.30 per 1,000 results on the Apify Free plan and from $1.80 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
Region
Europe
Pricing
$2.30 per 1,000 results (Free plan), from $1.80 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
24 options
Run success
99.4% of completed public runs in the last 30 days

Scrape Dzen.ru (ex Yandex.Zen): articles, videos and channels. Full article text with likes and comment counts, channel subscriber counts with their on-page publications, video metadata. Paste any Dzen link; incremental mode reports only new and changed content.

What Dzen.ru Scraper can do

  • Two lanes in one actor. Feed mode walks Dzen's discovery feed page by page; URL mode deep-dives pasted article, video and channel links.
  • Channel monitoring. Paste channel links and get the channel record (subscriber count included) plus its articles, newest first, as far back as Max records allows - incremental mode reports only the new ones on scheduled runs.
  • Full article records. Title, description, body text, images, author channel, like and comment counts.
  • Comments included. Turn on Include comments to get each article's and video's comments (text, author, date, likes, dislikes, emoji reactions and reply count) inside its record, plus a separate Comments output with one row per comment. Sort by popularity, newest or oldest.
  • Built for schedules. Incremental mode returns only new and changed content on recurring runs, and a refused run fails loudly instead of returning an empty dataset.

Choose what to collect

These inputs let you configure Dzen.ru Scraper - Articles, Videos, Channels & Comments. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestringChoose 'feed' to walk Dzen's discovery feed page by page, 'url' to scrape pasted Dzen links (article, video, channel), or 'search' to search Dzen by keyword.

Choices: feed, url, search

searchQueriesarrayKeywords or phrases to search Dzen for, one per row (Russian works best). Each query's results are returned until Max records or Max pages is reached.
searchTypestringWhich kind of results to return: everything, only articles, only videos (including shorts), or only channels. Channels found by search carry a rounded subscriber count (for example 15.3K).

Choices: all, articles, videos, channels

urlsarrayURL mode only. Paste article links (dzen.ru/a/...), video links (dzen.ru/video/watch/...), channel links (dzen.ru/, with an optional ?tab=videos?tab=shorts or ?tab=articles), search pages (dzen.ru/search?query=..., optionally &type=videos or &type=channels) or the section pages dzen.ru/video and dzen.ru/news. The m.dzen.ru and zen.yandex.ru hosts work too. Mixed sets are fine.
startUrlsarraySame as Dzen URLs: extra links merged into the list above (duplicates dropped). One link per row. URL mode only.
channelSortstringFor channel links: which publications come first. Most popular first is the channel's own top list.

Choices: newest, popular, oldest

channelContentstringFor channel links: return the channel's articles (each read in full), its videos, or its shorts (both returned straight from the channel's listing, which makes them much faster).

Choices: articles, videos, shorts

Show 17 more inputs
More input fields
InputWhat it controls
fetchArticleTextbooleanOff (default): a channel's articles come from the channel's listing: title, lead paragraph, comment count, read time, date and cover image. That is fast and costs only the record. On: each article is read in full (complete text and all its images), charged as Full page read on top of the record. Pasted article and video links are always read in full and charged the same way.
includeCommentsbooleanTurn on to collect each article's and video's comments (text, author, date, likes, dislikes, reactions, reply count). Channels have no comments. Replies to comments are counted in commentReplies but not returned.
maxCommentsPerPostintegerUpper limit of comments per article or video. Does not count toward Max records. With Most popular first, Dzen returns at most 20 comments per post.
commentsSortstringWhich comments come first. Most popular first returns at most 20 per post; Newest first and Oldest first can return all of them.

Choices: top, newest, oldest

maxItemsintegerMaximum number of records to return across the whole run. This is the run's cap. Use 0 for the largest allowed run (1,000,000 records).
maxPagesintegerMaximum number of result pages read per feed or search query. 0 means no limit: the run then stops only at Max records.
maxConcurrencyintegerHow many pages and comment threads are read in parallel (1-10). Lower it if the site starts refusing reads.
engagementScorebooleanAdds authorMedianViews, viewsVsAuthorMedian and engagementVsAuthorMedian to every row, computed from the records collected in this run for the same channel. Needs several posts per channel to be meaningful.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large pull without returning records already collected there. For recurring monitoring instead, use Incremental changes below (the two are mutually exclusive once Incremental has saved state).
incrementalModebooleanTurn 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, which is how a like-count jump or a new channel publication is spotted. Compared: every output field except the excluded ones. Excluded from the comparison (still returned): views, scrapedAt and the comments list; a new comment still counts through commentsCount, and you can exclude more fields below. EXPIRED rows appear only after a run that scanned every link to the end (never after a Max records cap, a spending-limit stop or a resumed run). Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed).
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 link set.
emitUnchangedbooleanOff 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, so leave it off unless you want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned every link, so never when Max records capped it or when Resume was used.
ignoreFieldsForChangesarrayOutput field names that should NOT make a record count as UPDATED. views is always ignored, because view counts rise on almost every run. Add likes, commentsCount or subscribers here if you only want to hear about new content, not engagement changes. Ignored fields are still returned in the output.
mcpConnectorsarrayOptional. Each selected connector receives a condensed summary per record; the full record always stays in the dataset. Leave empty to skip.
notionParentPageUrlstringURL (or id) of the Notion page under which record pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on records 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
dzenTypeType (text)
titleTitle
urlLink (link)
publicationDatePublished (text)
textPreviewPreview (text)
textContenttextContent
imagesimages
authorNameChannel (text)
authorUrlauthorUrl
subscribersSubscribers (number)
likesLikes (number)
Show 45 more fields
commentsCountComments (number)
viewsViews (number)
videoUrlvideoUrl
coverImagecoverImage
verifiedverified
collectionContextcollectionContext
detailFetchedDetail fetched (boolean)
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (text)
firstSeenAtFirst seen (incremental mode) (text)
lastSeenAtLast seen (incremental mode) (text)
dislikesDislikes (number)
repostsReposts (number)
favoritesFavorites (number)
categoryCategory (text)
engagementRateEngagement rate (number)
authorIdauthorId
authorSubscribersauthorSubscribers
authorAuthor (alias) (text)
contentIdcontentId
contentTypecontentType
contentUrlcontentUrl
publishedAtpublishedAt
inputUrlinputUrl
platformplatform
scrapedAtScraped at (text)
statusStatus (text)
errorError (text)
authorMedianViewsauthorMedianViews
viewsVsAuthorMedianviewsVsAuthorMedian
engagementVsAuthorMedianengagementVsAuthorMedian
commentscomments
commentIdcommentId
commentTextComment
commentAuthorCommenter
commentAuthorUrlCommenter channel (link)
commentAuthorAvatarcommentAuthorAvatar
commentAuthorVerifiedcommentAuthorVerified
commentDateDate (date)
commentLikesLikes (number)
commentDislikesDislikes (number)
commentRepliesReplies (number)
commentPinnedPinned (boolean)
commentReactionscommentReactions
commentImagescommentImages

Example output

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

{
  "id": "article:arjYU4pA7HGwblbw",
  "dzenType": "article",
  "title": "Article headline",
  "url": "https://dzen.ru/a/arjYU4pA7HGwblbw",
  "publicationDate": "2026-09-29T10:00:00Z",
  "textPreview": "Short description from the page",
  "textContent": "Full article body text...",
  "images": [
    "https://avatars.dzeninfra.ru/get-zen-pub/..."
  ],
  "authorName": "Channel Name",
  "subscribers": null,
  "likes": 124,
  "commentsCount": 44,
  "comments": [],
  "views": null,
  "collectionContext": null,
  "detailFetched": true,
  "changeType": null,
  "changedFields": [],
  "firstSeenAt": null,
  "lastSeenAt": null
}

Ways to use this data

  • Media analytics: track subscriber counts, like counts and comment counts across Dzen channels on a schedule.
  • Content monitoring: walk the discovery feed daily and get only the new publications.
  • Journalism and research: pull full article text and metadata for RU-media datasets.
  • Competitive tracking: monitor specific channels' publication cadence and engagement.

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 Dzen.ru Scraper return?

The documented output for Dzen.ru Scraper includes id, type, title, link, published, preview, textcontent and images. Availability of each field depends on the source page and the selected mode.

How much does Dzen.ru Scraper cost?

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

How do comments work?

Comments sit inside their article or video record, in the comments list, so each post stays one record. The Comments output (next to the default output on the run page, or ?view=comments through the API) shows one row per comment next to the post's title and link, ready for CSV or Excel. Only top-level comments are returned; commentReplies tells you how many replies each has. With Most popular first, Dzen shows at most 20 comments per post; choose Newest first or Oldest first to get more. In incremental mode a post's comments are returned (and charged) again only when the post itself is NEW, UPDATED or REAPPEARED. A new comment changes commentsCount, which counts as a change.

What is the difference between feed, URL and search mode?

Feed mode walks Dzen's discovery feed and returns a broad, paginated stream of publications. URL mode deep-dives specific links: full article text, channel subscriber counts and their articles, videos or shorts in newest, most popular or oldest order, and video metadata. Search mode returns Dzen's search results for your queries, optionally only articles, only videos or only channels. Channels found by search carry a rounded subscriber count (for example 15.3K); paste the channel link in URL mode for the exact figure.

Can I monitor a channel for new publications?

Yes. Paste the channel link, turn on Incremental mode, and schedule the run. Each run then returns only new and updated records, and unchanged ones are not billed.

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.

Ready to collect with Dzen.ru Scraper?

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