# Dev.to Scraper - Articles by Tag & Author (`logiover/devto-articles-scraper`) Actor

Scrape Dev.to articles by tag or author. A no-API-key Dev.to API alternative; export article data to CSV and JSON. Forem articles scraper, no login.

- **URL**: https://apify.com/logiover/devto-articles-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** News, Developer tools, AI
- **Features:** Limited permissions
- **Stats:** 48 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Dev.to Scraper — Articles by Tag & Author, Reactions & Tags (No API Key)

![Dev.to Articles Scraper](https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/GjS6nQ8qauOdq9KGy-actor-lw4xE0XwxOAwPGidu-uPHQbV1eOX-https---dev-to-uploads.s3.amazonaws.com-uploads-organization-pro)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Category](https://img.shields.io/badge/Category-Developer%20Content-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

Bulk-scrape developer articles and blog posts from **Dev.to (Forem)** by **tag, author username, or the latest feed across all tags.** This **Dev.to articles scraper** paginates the official public Forem REST API and returns clean, flat rows with **title, description, tags, author handle, reactions, comment counts, reading time and cover image** — ready for a spreadsheet, BI tool or content pipeline. **No login, no API key, no proxy.**

> ### 🏆 Why this Dev.to scraper?
>
> **13 fields per article** · **thousands of articles per run** · tag + author filtering · flat, spreadsheet-ready schema · export to JSON / CSV / Excel. The ready-made **Dev.to API alternative** for developer-content research, DevRel monitoring and building technical-writing datasets — with **no API key** and **no rate-limit plumbing** to write yourself.

***

### ✨ What this Actor does / Key features

- 🏷️ **Scrape by tag** — filter by any topic (`javascript`, `ai`, `webdev`, `rust`, `python`, `devops`…) and walk the entire public feed for that tag.
- 👤 **Scrape by author** — pull every published article from a specific Dev.to handle to study their output and engagement.
- 🔀 **Combine tag + author** — scope one writer's posts on a single topic in a single run.
- 📰 **Latest feed** — leave the tag empty to collect the newest articles across all of Dev.to.
- 📊 **Engagement metrics** — `reactionsCount` (hearts, unicorns, bookmarks) and `commentsCount` for every article, ready to rank and trend.
- ⏱️ **Reading time & cover image** — `readingTimeMinutes` and `coverImage` come along for content curation.
- 🗂️ **Flat, clean schema** — 13 fields per row that drop straight into Sheets, a database or a RAG pipeline.
- ⚡ **Direct API pagination** — reads Dev.to's anonymous public Forem endpoints; no browser, no DOM parsing.
- 🟢 **No account, no key, no proxy** — works entirely against public endpoints.

### 🚀 Quick start (3 steps)

1. **Configure** — set a **Tag** (e.g. `ai`) to filter by topic, or a **Username** to collect one author's posts (or both, or neither for the latest feed).
2. **Run** — click **Start**. The Actor paginates the Dev.to feed and streams articles into your dataset until it hits your `maxArticles` cap or the feed is exhausted.
3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel, HTML or XML**, or pull it via the Apify API.

### 📥 Input

Everything is optional — an empty input pulls the latest articles across all tags.

#### Example — trending AI articles

```json
{
  "tag": "ai",
  "maxArticles": 200
}
```

#### Example — every article from one author

```json
{
  "username": "ben",
  "maxArticles": 0
}
```

#### Example — one author's posts on a single topic

```json
{
  "tag": "webdev",
  "username": "ben",
  "maxArticles": 100
}
```

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `tag` | string | Filter by tag, e.g. `javascript`, `ai`, `webdev`. Leave empty for the latest articles across all tags. | `""` |
| `username` | string | Filter to a specific author's articles. Optional; combine with `tag` to scope by topic. | `""` |
| `maxArticles` | integer | Maximum articles to save. `0` = all available for your filter (paginates the full feed). | `100` |

> **Tip:** Set `maxArticles: 0` with a tag to snapshot an entire topic feed, or schedule a small daily run (e.g. `maxArticles: 50`) to build a rolling trending-content digest.

#### Additional input fields

These optional fields are also available in the input form and API:

| Field | Type | Default | Description |
|---|---|---|---|
| `sort` | string | `"latest"` | Which feed to pull. 'Latest' returns the newest articles (default). 'Top (week/month/year/all time)' returns the most-reacted articles for that window. 'Relevant' is Dev.to's default home-feed ranking. |
| `customTag` | string | `""` | Optional. Any Dev.to tag not in the dropdown above (e.g. 'astro', 'supabase'). If set, this overrides the Tag dropdown. |

### 📤 Output

One row per article — **13 fields**, exportable to JSON, CSV, Excel, HTML or XML. Here is a trimmed sample record:

```json
{
  "id": 1937482,
  "title": "Building an AI Agent from Scratch in TypeScript",
  "description": "A hands-on walkthrough of tool-calling, memory and planning loops without a framework.",
  "url": "https://dev.to/ben/building-an-ai-agent-from-scratch-in-typescript-1a2b",
  "author": "Ben Halpern",
  "authorUsername": "ben",
  "tags": ["ai", "typescript", "webdev", "tutorial"],
  "reactionsCount": 342,
  "commentsCount": 27,
  "readingTimeMinutes": 9,
  "coverImage": "https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cover.png",
  "publishedAt": "2026-07-04T08:15:32Z",
  "scrapedAt": "2026-07-06T12:00:00.000Z"
}
```

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|-------|-------------|
| `id` | Dev.to article ID (stable numeric identifier) |
| `title` | Article headline |
| `description` | Short summary / meta description |
| `url` | Canonical link to the article |
| `author` | Author display name |
| `authorUsername` | Author's Dev.to handle |
| `tags` | List of tags (e.g. `javascript`, `ai`, `webdev`, `react`, `python`) |
| `reactionsCount` | Total public reactions (hearts, unicorns, bookmarks) |
| `commentsCount` | Number of comments |
| `readingTimeMinutes` | Estimated reading time in minutes |
| `coverImage` | Cover image URL |
| `publishedAt` | Publish timestamp (ISO 8601) |
| `scrapedAt` | When the row was collected (ISO 8601) |

</details>

### 💡 Use cases

- **Content & trend research** — track which dev topics (`ai`, `rust`, `webdev`, `devops`) are gaining traction by reactions and comments.
- **Developer-content newsletters** — auto-build a fresh digest of trending articles for a tag every morning.
- **DevRel & tool-adoption monitoring** — follow how often your product, framework or language is written about, and by whom.
- **Author / influence tracking** — pull every post from specific writers to study output cadence and engagement.
- **LLM / NLP training corpora** — assemble large, well-tagged technical-writing datasets for fine-tuning or RAG.
- **Competitive content intelligence** — benchmark your tag's top posts against a competitor's ecosystem.

### 👥 Who uses it

DevRel & developer-marketing teams · technical content marketers & bloggers · newsletter and digest curators · data scientists building NLP/LLM corpora · community managers tracking topic momentum · founders monitoring how their tool is discussed.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — you pay for the articles you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Do I need a Dev.to account or API key?**
No. This scraper uses Dev.to's public Forem REST API, which serves articles anonymously. No login, no token, no proxy required — only an Apify account.

**Is this a Dev.to API alternative?**
Yes. It wraps the public Forem REST API and paginates it for you, so it works as a ready-made **Dev.to API alternative** — no API key, no token, and no rate-limit plumbing to write yourself.

**Can I scrape all articles for a specific tag?**
Yes. Set the **Tag** field and `maxArticles: 0` to paginate the entire public feed for that tag. The Actor walks pages automatically until the feed is exhausted.

**Can I scrape every article from one Dev.to author?**
Yes. Enter the author's **Username** to pull all of their published Dev.to posts with titles, tags, reactions and comment counts. Combine it with a tag to scope by topic.

**Can I scrape Dev.to without an API key or login?**
Yes. This Forem articles scraper reads anonymous public endpoints, so you can scrape Dev.to without an API key, account or proxy.

**Can I track trending content over time?**
Yes. Schedule the Actor (daily or hourly) on a tag of interest; each run captures `reactionsCount` and `commentsCount`, so you can rank and trend posts by engagement across snapshots.

**How much data can I get?**
You can scrape thousands of articles per run. Use `maxArticles: 0` to pull the full feed for your filter, or set a cap to keep runs small and frequent.

**How do I export Dev.to articles to CSV or JSON?**
Run the Actor on a tag or username, then open the **Output** tab and download the results as CSV, JSON, JSONL, Excel, HTML or XML — or pull the same dataset via the Apify API.

**Is it legal to scrape Dev.to?**
The Actor only collects publicly available article metadata served by Dev.to's own public API. You are responsible for using the data in compliance with Dev.to's terms and applicable laws.

### 🔗 More content & social scrapers by logiover

Building a developer-content or social-intelligence dataset? Pair Dev.to with the rest of the suite:

| Actor | What it does |
|---|---|
| [Hacker News Search Scraper](https://apify.com/logiover/hacker-news-historical-archive-scraper) | Search and export Hacker News stories, comments and points |
| [Stack Exchange Questions Scraper](https://apify.com/logiover/stack-exchange-questions-scraper) | Pull questions, answers and tags from Stack Overflow & Stack Exchange |
| [Substack Newsletter Scraper](https://apify.com/logiover/substack-newsletter-scraper) | Scrape newsletter posts, authors and metadata from Substack |
| [Reddit Subreddit Scraper](https://apify.com/logiover/reddit-search-scraper) | Collect posts, scores and comments from any subreddit |
| [Product Hunt Daily Launches Scraper](https://apify.com/logiover/product-hunt-daily-launches-scraper) | Track daily product launches, votes and makers |
| [GitHub Repository Scraper](https://apify.com/logiover/github-repository-scraper) | Extract repo metadata, stars, topics and activity |
| [Wikipedia Category Scraper](https://apify.com/logiover/wikipedia-category-scraper) | Walk Wikipedia categories and export page metadata |
| [YouTube Channel Scraper](https://apify.com/logiover/youtube-channel-scraper) | Pull a channel's videos, views and metadata |
| [Discogs Scraper](https://apify.com/logiover/discogs-scraper) | Music release, artist and label data from Discogs |
| [Letterboxd Film Review Scraper](https://apify.com/logiover/letterboxd-film-review-scraper) | Scrape film reviews, ratings and lists from Letterboxd |
| [Threads Scraper](https://apify.com/logiover/threads-scraper) | Collect posts and profiles from Threads |
| [Meetup Scraper](https://apify.com/logiover/meetup-scraper) | Extract events, groups and attendee counts from Meetup |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to capture trending developer content daily or hourly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to auto-build content digests and DevRel dashboards.

### 🤖 AI Agents, MCP & RAG Integration

**Dev.to Scraper** works natively as an on-demand data tool for AI assistants and autonomous workflows.

Connect this Actor directly to **Apify AI**, **Claude Desktop**, **Cursor**, **VS Code**, **Windsurf**, **LangChain**, or **LlamaIndex** via the official **Apify MCP Server** — no custom wrapper code needed:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=logiover/devto-articles-scraper"
    }
  }
}
```

- **Schema-typed inputs & outputs:** Clean JSON records with explicit `.actor/input_schema.json` and `.actor/output_schema.json` definitions so LLM agents infer parameters and parse fields accurately without HTML noise.
- **Bounded & predictable runs:** Built-in volume caps and pay-per-result budget guards prevent runaway agent tool loops.
- **RAG & automation ready:** Stream run datasets straight into vector stores, n8n, Make, Zapier, or webhook pipelines.

### 💬 Support, Issues & Reviews

- **Bug reports & target-site changes:** Hit an unexpected empty result or selector change? [Open a ticket in the Issues tab](https://apify.com/logiover/devto-articles-scraper/issues) with your **Run ID** or sample input — we actively monitor issues and ship fixes fast.
- **Feature & field requests:** Need an additional data attribute or filter? [Request it in the Issues tab](https://apify.com/logiover/devto-articles-scraper/issues).
- **Enjoying this Actor?** If it saved you engineering time, please consider leaving an honest [review on Apify Store](https://apify.com/logiover/devto-articles-scraper/reviews) or bookmarking [logiover/devto-articles-scraper](https://apify.com/logiover/devto-articles-scraper) — organic developer feedback helps others discover reliable tools and keeps maintenance prioritized.

### ⚖️ Legal

This Actor extracts only publicly available data served by Dev.to's own public API and is intended for legitimate research, analytics and content-curation use. You are responsible for complying with Dev.to's terms of service and any applicable local laws.

***

This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by Dev.to; Dev.to and all other trademarks mentioned here are the property of their respective owners.

### Dev.to scraping — frequently asked questions

#### Do I need a Dev.to API key, account or login?

No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.

#### How do I export Dev.to data to CSV, Excel, JSON or Google Sheets?

Open the **Storage** tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.

#### Can I schedule this Dev.to scraper to run daily or hourly?

Yes. Use the **Schedules** tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the articles you care about really do change that fast.

#### How many articles can I get, and what does it cost?

See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.

#### Is scraping Dev.to legal?

This Actor collects only information that Dev.to publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.

#### What happens if Dev.to blocks the run or changes its layout?

A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run **fails with the reason** instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".

#### Can I use this with an AI agent, LangChain or an MCP client?

Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.

### 📝 Changelog

#### 2026-11-11

- Added reliable terminal run status telemetry and structured Apify AI / MCP Server (`mcp.apify.com`) tool configuration.
- Added direct Issues & Reviews support links and refreshed live maintenance verification.

#### 2026-11-01

- Monthly health check (2026-11-01): a live run on the current build completed successfully and returned data. Input options, output fields and pricing are unchanged.
- README refreshed: 2 links to renamed Actors updated; independence disclaimer added; documented 2 additional input fields.

#### 2026-10-15

- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Runs with a short timeout (API and AI-agent calls) now finish inside it with what they collected, instead of being cut off.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
- The prefilled example for `maxArticles` is now 285 (was 100).
- The default used when the field is left out for `maxArticles` is now 5,714 (was 100).

#### 2026-09-23

- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 16 columns returned, 87.5% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
- Noted that 1 column(s) came back empty in this sample (`organization`); these are under review.

#### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

#### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

#### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.

#### 2026-07-06

- ✨ README overhaul: richer output sample, full field reference, ready-to-run example scenarios, developer-content cross-promo grid, and a clearer quick-start.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-15

- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.

#### 2026-06-07

- Docs: added coverage for Dev.to API alternative, exporting articles to CSV/JSON, and scraping Dev.to without an API key.

***

**Dev.to API alternative · Dev.to articles to CSV · Scrape Dev.to without API key · Forem articles scraper**

***

\*Maintained: last verified 2026-11-11 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).

# Changelog

This Actor's version history is a separate document: https://apify.com/logiover/devto-articles-scraper/changelog.md

# Actor input Schema

## `sort` (type: `string`):

Which feed to pull. 'Latest' returns the newest articles (default). 'Top (week/month/year/all time)' returns the most-reacted articles for that window. 'Relevant' is Dev.to's default home-feed ranking.

## `tag` (type: `string`):

Filter by a single Dev.to tag. Leave empty for articles across ALL tags. Pick a popular tag from the list, or use 'Tag (custom)' below for any other tag.

## `customTag` (type: `string`):

Optional. Any Dev.to tag not in the dropdown above (e.g. 'astro', 'supabase'). If set, this overrides the Tag dropdown.

## `username` (type: `string`):

Optional. Filter to a specific author's articles (their Dev.to username, without the @).

## `maxArticles` (type: `integer`):

Maximum articles to save. Leave at 100 for a fast, cheap run; raise it to pull more. 0 = all available.

## Actor input object example

```json
{
  "sort": "latest",
  "tag": "",
  "customTag": "",
  "username": "",
  "maxArticles": 285
}
```

# Actor output Schema

## `results` (type: `string`):

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxArticles": 285
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/devto-articles-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxArticles": 285 }

# Run the Actor and wait for it to finish
run = client.actor("logiover/devto-articles-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxArticles": 285
}' |
apify call logiover/devto-articles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/devto-articles-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/lw4xE0XwxOAwPGidu/builds/uhCHTOFLNVnNeMkUU/openapi.json
