DEV.to Article Scraper avatar

DEV.to Article Scraper

Pricing

$2.00 / 1,000 article returneds

Go to Apify Store
DEV.to Article Scraper

DEV.to Article Scraper

Scrape DEV.to articles via the public Forem API — by tag, author, or sort (top/latest/rising). Get clean structured data: title, author, tags, reactions, comments, reading time, cover image, and optional full body. No key, no login.

Pricing

$2.00 / 1,000 article returneds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape DEV.to articles via the public Forem API — no API key, no login, no anti-bot. Filter by tag or author, choose how results are sorted, and optionally pull the full article body.

What you get per article

id, title, description, url, author, authorUsername, tags, reactions, comments, readingTimeMinutes, coverImage, publishedAt. Turn on Include full body to also get body (markdown/HTML).

Nullable fields: coverImage and publishedAt are null when DEV.to does not supply them. When Include full body is on, body can be null for an article whose full-body fetch fails or is empty; the row is still returned (with ok: true) so you can see which articles were affected.

Input

FieldNotes
tagOnly articles with this tag, e.g. javascript, react, webdev. Optional.
usernameOnly articles by this author, e.g. ben. Optional.
sortBytop (most reactions in the last N days), latest (newest), or rising. Default top.
topDaysWindow for top sorting, e.g. 7 = top of the week, 365 = top of the year. Default 7.
includeBodyFetch the full article body per result (extra API call each). Default off.
maxItemsHow many articles to return. The actor paginates until it has this many. Default 50.

Output

One dataset row per article, each with ok: true. Empty/no-match inputs return a single diagnostic row with ok: false and an errorCode (e.g. NO_RESULTS) — that diagnostic row is not charged, it is just an explanation that the tag/username/sort combination matched no articles.

Pricing

Pay-per-result: you are charged once per article row returned. Diagnostic rows (ok: false, such as NO_RESULTS, BLOCKED, RATE_LIMITED, NETWORK) are never charged, so empty or failed runs cost you nothing.

Proxy

No proxy is needed. The Forem API (https://dev.to/api) is a public, no-auth, no-anti-bot endpoint, so the default is no proxy and runs work fine without one. Only enable Apify Proxy if you hit IP-based rate limits on very large runs.

Troubleshooting

If you get a single NO_RESULTS diagnostic row instead of articles, the tag/username/sort combination matched nothing — double-check the spelling of the tag or username (DEV.to tags are lowercase, e.g. javascript not JavaScript), or widen topDays. A RATE_LIMITED or NETWORK row means the API throttled or a transient network error occurred; re-run, or enable Apify Proxy for large runs. None of these diagnostic rows are charged.

Examples

Top JavaScript articles of the last month:

{ "tag": "javascript", "sortBy": "top", "topDays": 30, "maxItems": 50 }

Latest articles from a specific author:

{ "username": "ben", "sortBy": "latest", "maxItems": 30 }

Notes

Built on the documented Forem API (https://dev.to/api). The top window selects the highest-reaction articles published within the last topDays days. latest returns the newest articles; rising returns currently rising posts. Results are deduplicated by article id.