DEV Scraper | dev.to Articles, Full Text and Author Profiles ยท Apify
DEV Scraper | Articles, Full Text and Authors avatar

DEV Scraper | Articles, Full Text and Authors

Pricing

from $0.13 / 1,000 articles

Go to Apify Store
DEV Scraper | Articles, Full Text and Authors

DEV Scraper | Articles, Full Text and Authors

DEV Scraper for dev.to: search DEV Community articles by keyword, tag, author or organization and get each one with its full text in Markdown, likes, unicorns, saves and comments, plus the author bio, location, GitHub, LinkedIn and public email. 20 articles in 17 seconds, 41 fields each. No login.

Pricing

from $0.13 / 1,000 articles

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Features

Limited permissions

Share

DEV Scraper | dev.to Articles with Full Text, Reactions and Author Profiles (2026)

DEV articles, 41 fields each, from any search.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for โ€œjd scraperโ€ in Apify Store search), with 950,000+ combined lifetime runs.

Turn DEV Community (dev.to) into a dataset you can read, rank and act on: search any keyword, tag, author or organization, and get each article with its full text in Markdown, every reaction type and its saves, and the author's public profile. 20 articles about AI agents in 17 seconds in our test, 37,526 words of full text, 18 of them with the author's bio.

Why choose this actor?

Copying DEV articles into a doc one by one to feed a newsletter or a model? Only getting titles and a single reaction count when what you need is the text and who wrote it? Searching DEV for a topic and getting a tag feed instead?

  • Search DEV by keyword, not only by tag. Type what you would type in DEV's search box, such as ai agents, kubernetes or a product name, and the run reads the matching articles across the 870,000+ articles DEV's search holds. Our default run returned the 20 most reacted "ai agents" articles of the week in 17 seconds; newest first, it took 15 seconds. Tag and author feeds are there too, but a topic rarely fits in one tag.
  • Get the whole article, ready for a model or a reader. Every row carries the full article in clean Markdown, with headings, lists, links, images and code blocks in their language, plus its word count. The 20 rows of our default run held 37,526 words of text, a median of 1,763 words per article; 25 top JavaScript articles of the week held 36,384 words. No row stops at the description.
  • See how readers reacted, saves included. DEV shows five reaction types and a save button; each row has the count of likes, unicorns, exploding heads, raised hands, fire, and saves. On our organization run, 13 of 15 articles had been saved, 111 saves in all, and the most reacted one had 237 reactions. Saves tell you what developers keep to read again, which a single reaction total hides.
  • Know who wrote it, and how to reach them. Each row adds the author's public profile: bio, location, work, education, join date, the email they show publicly, GitHub, X, LinkedIn and website, and how many posts and comments they wrote. On our default run, 18 of 20 rows had the author's bio, 14 a location and 13 a GitHub profile; on the DEV Team run, 13 of 15 had the author's public email.

Try DEV Scraper free

Try your first article

Paste this input and press Start. It searches DEV for "ai agents", keeps the articles of the last 7 days, and returns the 20 with the most reactions, each with its full text, reaction counts and author profile.

{
"searchQueries": ["ai agents"],
"sort": "top_week",
"maxItems": 20,
"includeDetails": true
}

The Apify Free plan is enough to try it: this run took 17 seconds in our test and gives you a table you can download as JSON, CSV or Excel, or open in Google Sheets.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor so it knows how to use this actor:

You have access to the DEV Scraper on Apify: silentflow/dev-scraper
What it does: reads articles from DEV Community (dev.to), the developer blogging platform,
by keyword, tag, author or organization, link, or the main feed. One dataset row per article,
with its full text in Markdown, reaction counts by type, saves, and the author's public profile.
Input (all optional; with no keyword, tag, author or link it reads DEV's newest articles):
- searchQueries (array of strings): keywords as typed in DEV's search box ("rust", "ai agents").
- tags (array of strings): DEV tags ("javascript", "webdev"), "#JavaScript" or https://dev.to/t/javascript.
- usernames (array of strings): users or organizations ("ben", "devteam", "@aws-builders",
https://dev.to/ben).
- startUrls (array of {"url": "..."}): article, profile, tag (with /top/week|month|year|infinity),
search (https://dev.to/search?q=...) or main feed (https://dev.to/top/week, /latest) links.
- maxItems (integer, default 50): total articles for the run.
- sort (string, default "newest"): newest, top_week, top_month, top_year, top_all, rising, relevance.
- publishedAfter (string): "2026-11-01" or a span such as "24 hours", "7 days", "1 month".
- minReactions (integer, default 0): keep articles with at least this many reactions.
- includeDetails (boolean, default true): full text, reaction breakdown and author profile.
Output per article (48 fields):
- id (integer), url, slug, title (strings)
- description, language, canonicalUrl, aiDisclosure (strings or null), tags (array of strings),
bodyMarkdown (string or null), wordCount (integer or null), isCrosspost (boolean)
- authorId (integer), authorName, authorUsername, authorUrl (strings)
- authorBio, authorLocation, authorWork, authorEducation, authorJoinedAt (RFC 3339),
authorGithubUrl, authorTwitterUrl, authorWebsite, authorLinkedinUrl, authorEmail,
authorImage (strings or null), authorPostsCount, authorCommentsCount (integers or null)
- organizationName, organizationUsername, organizationUrl (strings or null)
- reactionsCount, commentsCount, readingTimeMinutes (integers)
- likesCount, unicornsCount, explodingHeadsCount, raisedHandsCount, fireCount, savesCount
(integers or null when details are off)
- publishedAt (RFC 3339 UTC), editedAt, lastCommentAt (RFC 3339 or null)
- coverImage, socialImage (strings or null)
- source (string: "search:ai agents", "tag:javascript", "author:ben", "url", "feed"),
scrapedAt (RFC 3339)
Use apify-client for Python or JavaScript, or the Apify API, to run it and read the dataset.

How to scrape DEV articles

Get this week's top JavaScript articles for your newsletter

A tag and a sort are enough. "Top of the week" is the same view DEV shows on its Top tab for the tag. Our run returned 25 articles in 6 seconds, all tagged javascript, each with its full text.

{
"tags": ["javascript"],
"sort": "top_week",
"maxItems": 25
}

Follow everything an organization published this month

An organization username gives the articles every member published under its name, newest first. Add an article link and it is read first, so the limit never leaves it out. Our run returned the linked article and the 14 newest DEV Team articles of the last 30 days, 15 rows in 4 seconds.

{
"usernames": ["devteam"],
"startUrls": [{"url": "https://dev.to/sylwia-lask/were-building-ai-to-replace-ourselves-whats-the-plan-4oll"}],
"publishedAfter": "30 days",
"maxItems": 15
}

Combine keywords, tags and filters in one run

Every source runs in the same run, and an article found by two of them is delivered once. Here: articles about Kubernetes or tagged devops, from the last two weeks, with at least 10 reactions.

{
"searchQueries": ["kubernetes"],
"tags": ["devops"],
"publishedAfter": "14 days",
"minReactions": 10,
"maxItems": 100
}

Input parameters

ParameterTypeDefaultWhat it does
searchQueriesarray of stringsnone (prefilled with ai agents)Keywords as typed in DEV's search box. Matches titles, tags, authors and article text.
tagsarray of stringsnoneDEV tags such as javascript, python, webdev. #JavaScript and tag links work too.
usernamesarray of stringsnoneDEV users or organizations, newest article first: ben, devteam, @aws-builders or a profile link.
startUrlsarray of linksnoneArticle, profile, tag, search and main feed pages of dev.to.
maxItemsinteger50Total articles for the run, across every keyword, tag, author and link.
sortstringnewest (prefilled with top_week)Newest first, top of the week, month, year or all time, rising, or best match.
publishedAfterdate or spannoneKeep articles published from this date: 2026-11-01, 24 hours, 7 days, 1 month.
minReactionsinteger0Keep articles with at least this many reactions.
includeDetailsbooleantrueAdd the full text in Markdown, the reaction breakdown with saves, and the author's public profile.

With every field empty, the actor reads DEV's newest articles, the Latest feed of the home page.

How each sort works

  • Newest first follows publication date. On the main feed and author pages it is strict, and a run with "published after" stops as soon as it passes your date.
  • Top of the week, month, year or all time is DEV's own Top view for tags and the main feed. For an author or an organization, the run reads the whole period and orders it by reactions. For a keyword, the run reads the period's 1,000 best matches and orders them by reactions.
  • Rising is DEV's rising view: recent articles gaining reactions fast. The main feed gave 20 of them in our check.
  • Best match orders keyword results by relevance, as DEV's search does. On tags and authors it keeps DEV's own featured order.
  • A link that carries its own view, such as https://dev.to/t/rust/top/month, keeps that view whatever the sort field says.
  • Articles: https://dev.to/ben/my-article-1abc. Read in full, always before every other source.
  • Profiles of users and organizations: https://dev.to/ben, https://dev.to/devteam.
  • Tags: https://dev.to/t/rust, https://dev.to/t/rust/latest, https://dev.to/t/rust/top/month.
  • Searches: https://dev.to/search?q=kubernetes, with sort_by=published_at for newest first.
  • The main feed: https://dev.to/, https://dev.to/latest, https://dev.to/top/week, https://dev.to/top/infinity.

A link from another site is refused at the start of the run with a message that names it, before anything is read.

Dates and limits

publishedAfter takes a day (2026-11-01), a date and time in RFC 3339, today, yesterday, or a span back from now: 24 hours, 7 days, 2 weeks, 3 months, 1 year. A date in the future is refused with a clear message. maxItems counts articles across the whole run; an article found by two sources counts once.

What data can you extract from DEV?

Each row is one article, 48 fields, in the same order every time:

  • Identity: id (DEV's article number, stable), url (permanent link), slug, title.
  • Content: description, tags, language, bodyMarkdown (the full article), wordCount, canonicalUrl and isCrosspost (true when the article was first published on another site, such as the author's blog or Medium), aiDisclosure (the label the author chose: Not Disclosed, AI-assisted or Fully Autonomous).
  • Author: 17 fields. authorId, authorName, authorUsername, authorUrl, authorImage, and from the public profile authorBio, authorLocation, authorWork, authorEducation, authorJoinedAt, authorEmail, authorGithubUrl, authorTwitterUrl, authorLinkedinUrl, authorWebsite, authorPostsCount, authorCommentsCount.
  • Organization: organizationName, organizationUsername, organizationUrl when the article was published under an organization.
  • Measures: 9 counts. reactionsCount (the total DEV shows), likesCount, unicornsCount, explodingHeadsCount, raisedHandsCount, fireCount, savesCount, commentsCount, readingTimeMinutes.
  • Time: publishedAt, editedAt, lastCommentAt, all RFC 3339 in UTC.
  • Media: coverImage, socialImage.
  • Meta: source (which keyword, tag, author or link found the article) and scrapedAt.

Fields DEV leaves empty come back as null, never as an empty text. The dataset has three views: Articles (title, author, tags, reactions, saves, comments, date, link), Authors (name, location, work, email, GitHub, LinkedIn, posts, profile) and Content (title, description, tags, words, reading time, full text, link).

Output example

One row of our default run, with the article text cut for this page:

{
"id": 5002635,
"url": "https://dev.to/therealmrmumba/how-to-use-jira-rovo-for-free-1m1g",
"slug": "how-to-use-jira-rovo-for-free-1m1g",
"title": "How to Use Jira Rovo for Free",
"description": "Atlassian Rovo is the AI layer built into Jira and Confluence. It can search across your work, answer...",
"tags": ["ai", "webdev", "productivity", "programming"],
"language": "en",
"bodyMarkdown": "Atlassian Rovo is the AI layer built into Jira and Confluence. It can search across your work, answer questions in chat, and run agents that draft, triage, and summarize for you.\n\nThe question I keep seeing is simple: **can you use it for free?**\n\n...",
"wordCount": 1763,
"canonicalUrl": "https://dev.to/therealmrmumba/how-to-use-jira-rovo-for-free-1m1g",
"isCrosspost": false,
"aiDisclosure": "Not Disclosed",
"authorId": 2096147,
"authorName": "Emmanuel Mumba",
"authorUsername": "therealmrmumba",
"authorUrl": "https://dev.to/therealmrmumba",
"authorBio": "๐Ÿ‘จโ€๐Ÿ’ป Emmanuel Mumba | Tech Innovator | SEO Specialist | Expert in web development, graphic design, and tech-driven innovations.",
"authorLocation": null,
"authorWork": null,
"authorEducation": null,
"authorJoinedAt": "2024-09-19T09:28:11Z",
"authorGithubUrl": null,
"authorTwitterUrl": null,
"authorWebsite": "https://www.mrmumba.com/",
"authorLinkedinUrl": null,
"authorEmail": null,
"authorPostsCount": 151,
"authorCommentsCount": 213,
"authorImage": "https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2096147%2Fcfb04d29-bd0a-4f15-9e93-594834b52f6b.jpg",
"organizationName": null,
"organizationUsername": null,
"organizationUrl": null,
"reactionsCount": 40,
"likesCount": 10,
"unicornsCount": 9,
"explodingHeadsCount": 9,
"raisedHandsCount": 6,
"fireCount": 6,
"savesCount": 10,
"commentsCount": 0,
"readingTimeMinutes": 7,
"publishedAt": "2026-11-09T06:24:15Z",
"editedAt": "2026-11-09T06:52:32Z",
"lastCommentAt": "2026-11-09T06:24:15Z",
"coverImage": "https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjoyg9sk7bfmrn90o9hzd.png",
"socialImage": "https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjoyg9sk7bfmrn90o9hzd.png",
"source": "search:ai agents",
"scrapedAt": "2026-11-10T16:30:47Z"
}

id and url stay the same for the life of the article, so they are the keys to use when you compare runs. Image links point to DEV's image service and keep working as long as the article is online. Counts and the author profile are read live on each run, so a weekly run shows how an article's reactions and saves grow.

Advanced usage

Build an AI training set of human-written Python tutorials

Read a tag with full text, keep articles that readers liked, and drop the ones whose author disclosed AI help using the aiDisclosure column. In our runs, 4 of 20 and 7 of 25 rows carried an AI-assisted or Fully Autonomous label, so the column matters.

{
"tags": ["python", "tutorial"],
"sort": "top_month",
"minReactions": 20,
"maxItems": 500,
"includeDetails": true
}

Find writers to invite as speakers or ambassadors

Search the topic your product serves over the last three months, sorted by reactions. Then open the Authors view: location, work, GitHub, LinkedIn and the public email are side by side, with how many posts each author wrote.

{
"searchQueries": ["observability"],
"sort": "top_month",
"publishedAfter": "3 months",
"maxItems": 200
}

Watch every new mention of your product, every day

Schedule a daily run on your product's name, newest first, from the last 24 hours. Each run returns only what was published since the day before, with its full text, so a webhook or a Slack message can pick it up.

{
"searchQueries": ["supabase"],
"sort": "newest",
"publishedAfter": "24 hours",
"maxItems": 100
}

Export a large tag archive fast, card data only

Turn details off to keep the card data (title, tags, author, counts, dates, cover) and skip the text and profiles. In our test, 1,000 python articles came back in 2 seconds this way. Turn details back on for the rows you want to read in full.

{
"tags": ["python"],
"includeDetails": false,
"maxItems": 5000
}

Benchmark the all-time classics of several tags

Top of all time on several tags in one run gives you the articles that defined each community, deduplicated across tags, with saves to see which ones readers keep.

{
"tags": ["rust", "go", "elixir"],
"sort": "top_all",
"maxItems": 150
}

FAQ

What is DEV? DEV Community (dev.to) is a blogging and discussion platform for software developers, built on the open-source Forem software. Developers publish tutorials, opinion pieces and project write-ups there, often cross-posted from their own blog, and readers react, save and comment. Think of it as Medium for programmers.

Do I need a DEV account or an API key? No. The actor reads what DEV shows to any visitor. No login, no API key, nothing to set up on DEV.

What exactly does one row contain? One article: its identity and link, description, tags, language, full text in Markdown with its word count, canonical address, AI label, author and organization, the author's public profile, nine counts (reactions by type, saves, comments, reading time), three dates and two images. 48 fields in all, listed above.

Is the full text the real article? Yes. It is the article as DEV displays it, turned into Markdown: headings, paragraphs, lists, quotes, tables, links, images, and code blocks with their language. Embedded videos become a link. Comments are not part of the text.

Why are some author fields empty? Authors fill their profile as they like. Many leave location, work or education blank, and only some show an email. When a field is not on the profile, the row says null. In our runs the author's bio was on 18 of 20 rows of a keyword run, the location on 16 of 25 rows of a tag run, and the public email on 4 of 25 to 13 of 15 rows depending on the authors. The email is only the one the author chose to show on their profile.

How do "Top" sorts and minimum reactions combine? They stack. tags: ["rust"] with sort: "top_month" and minReactions: 50 returns the Rust articles DEV ranks on its Top of the month, keeping only those with 50 reactions or more. Add publishedAfter and the date applies too.

Can I run several keywords, tags and authors at once? Yes. Every source runs in the same run, in this order: article links, keywords, tags, authors, then other links. An article found by two sources is delivered once, under the first source that found it, and maxItems counts across the whole run.

How fresh is the data, and how far back does it go? Every run reads DEV live, so reactions, saves and profiles are those of the moment of the run. Keyword search covers the 870,000+ articles of DEV's search. Big tags list more than 10,000 articles (the go tag did in our check); newest first goes back through them page by page.

How many articles can I get in one run? There is no fixed limit in the actor: set maxItems to what you need. With details on, our runs read 20 to 25 articles in 4 to 17 seconds; with details off, 1,000 articles took 2 seconds. Best match and Top on a keyword read at most its 1,000 best matches; newest first on a keyword keeps going past that.

Are the links permanent? url and authorUrl are permanent while the article and the account exist. If an author unpublishes an article between the search and the read, it is skipped and counted in the log. Image links stay valid while the article is online.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐ŸŽฌ Video

๐Ÿ“ฐ News

๐Ÿงฐ More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from DEV Community (dev.to). It does not bypass any login, paywall or CAPTCHA, and reads only what any visitor sees. Users are responsible for complying with DEV's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). The output contains personal data about authors (names, profiles, and the public email some authors show): handle it accordingly, for example by keeping a lawful basis for outreach and honouring opt-out requests. Article texts belong to their authors; check the license an author gives before republishing. The data returned is informational; verify accuracy for regulated use cases.

Built by SilentFlow for developer relations teams, newsletter editors, AI teams and recruiters who read DEV every week.