# DEV.to Articles Scraper (`parseforge/dev-to-articles-scraper`) Actor

Pull articles from DEV.to (and other Forem communities). Returns title, URL, cover, description, full body markdown, tags, reading time, reactions, comments, author profile (name, twitter, github), publication, canonical URL, published date. Filter by tag, top, latest, username.

- **URL**: https://apify.com/parseforge/dev-to-articles-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, News, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 result items

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## ✍️ Dev.to Articles and Posts Scraper

> 🚀 **Pull Dev.to articles with body, tags, reactions, reading time, author, organization, language, and 32 fields per record.**

> 🕒 **Last updated:** 2026-05-08 · **📊 32 fields** per record · **Dev.to articles** · body markdown + html, tags, reactions, comments, reading time, author + org, language, type · latest, top, by tag, by user

The **Dev.to Articles and Posts Scraper** pulls articles from the Dev.to community blog. Output includes title, slug, URL + canonical URL, description, body markdown + body HTML, reading time minutes, tag list (canonical names + slugs), publish + edit + crosspost + last-comment dates, readable publish date, language, collection ID, type, positive + public reaction counts, comments count, full author profile (name, username, Twitter, GitHub, website, profile image), organization (name, username, slug), and the flare tag.

Four modes in one Actor: latest articles, top articles (top of the week), articles by tag, and articles by user. Set fetchBody to false to skip the body and keep records lighter for high-volume runs.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Dev-content marketers, content aggregators, ML researchers, recruiters tracking dev voices, OSS communities | Tech-content aggregation, developer-marketing analytics, ML training on dev articles, recruiter outreach, community monitoring |

---

### 📋 What the Dev.to Articles and Posts Scraper does

Five filtering workflows in a single run:

- 📰 **Latest feed.** Most recent published articles.
- 🏆 **Top of the week.** Top-7-day articles by reactions.
- 🏷️ **By tag.** Pull every article tagged Python, JavaScript, Rust, etc.
- 👤 **By user.** Pull every article from a specific Dev.to user.
- 📜 **Body markdown + HTML.** Both formats per record (toggle with fetchBody).

> 💡 **Why it matters:** clean, server-side filtering and fresh data on every run.

---
### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan up to 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>string</td><td><code>"latest"</code></td><td>latest, top, tag, user.</td></tr>
<tr><td><code>tag</code></td><td>string</td><td><code>""</code></td><td>Tag slug (tag mode).</td></tr>
<tr><td><code>username</code></td><td>string</td><td><code>""</code></td><td>Dev.to username (user mode).</td></tr>
<tr><td><code>fetchBody</code></td><td>boolean</td><td><code>true</code></td><td>When true, includes full body markdown + html. Set false for lighter records.</td></tr>
</tbody>
</table>

**Example: latest articles.**

```json
{
    "maxItems": 20,
    "mode": "latest",
    "fetchBody": true
}
````

**Example: articles tagged Python.**

```json
{
    "maxItems": 100,
    "mode": "tag",
    "tag": "python",
    "fetchBody": false
}
```

***

### 📊 Output

Each record contains **32 fields**. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `coverImage` | string | `"https://media.dev.to/.../cover.png"` |
| 📛 `title` | string | `"How to Build a CLI in Rust"` |
| 🆔 `articleId` | number | `2348901` |
| 🔗 `url` | string | `"https://dev.to/example/how-to-build-a-cli-in-rust"` |
| 📜 `description` | string | `"A step-by-step guide..."` |
| 📜 `bodyMarkdown` | string | `"### Introduction\n..."` |
| ⏱️ `readingTimeMinutes` | number | `8` |
| 🏷️ `tags` | array | `["rust","cli","tutorial"]` |
| 🏷️ `tagsCanonical` | array | `["rust","cli","tutorial"]` |
| 📅 `publishedAt` | string | `"2026-04-30T15:32:00Z"` |
| 📅 `createdAt` | string | `"2026-04-30T15:32:00Z"` |
| 📅 `lastCommentAt` | string | `"2026-05-02T08:21:00Z"` |
| 🌍 `language` | string | `"en"` |
| 📜 `typeOf` | string | `"article"` |
| 👍 `positiveReactionsCount` | number | `142` |
| 💬 `commentsCount` | number | `9` |
| 👤 `authorUsername` | string | `"developer"` |
| 👤 `authorTwitter` | string | `"developer"` |
| 👤 `authorGithub` | string | `"developer"` |
| 🏢 `organizationName` | string | `"Dev Org"` |
| 🏢 `organizationUsername` | string | `"devorg"` |

#### 📦 Sample records

<details>
<summary><strong>✍️ Article (with body)</strong></summary>

```json
{"articleId":2348901,"title":"How to Build a CLI in Rust","tags":["rust","cli"],"readingTimeMinutes":8,"positiveReactionsCount":142,"authorUsername":"developer","language":"en"}
```

</details>

<details>
<summary><strong>📰 Article (light)</strong></summary>

```json
{"title":"Why Async/Await","tags":["javascript","async"],"positiveReactionsCount":89,"authorUsername":"someone"}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 📜 | **Body markdown + HTML.** Toggle fetchBody to balance richness vs run cost. |
| 👤 | **Full author + org profile.** Twitter, GitHub, website, organization details inline. |
| 🏷️ | **Two tag formats.** Plain tag list + canonical tag list. |
| 📅 | **Five date fields.** Created, published, edited, crossposted, last comment. |
| 🆓 | **No auth.** Dev.to public REST API. |

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ This Actor** | $5 free credit | **Dev.to** | Live per run | 4 modes | ⚡ 2 min |
| Dev.to RSS | Free | Limited | Live | Limited | 🐢 Code |
| Forem API direct | Free | Same | Live | DIY | 🐢 Code |
| Manual scraping | Free | All | Live | DIY | 🐢 Days |

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Find the Dev.to Articles and Posts Scraper on the Apify Store.
3. 🎯 **Set input.** Pick filters and `maxItems`.
4. 🚀 **Run it.** Click **Start**.
5. 📥 **Download.** Grab results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📰 Content + Marketing

- Tech-content aggregation
- Developer-marketing analytics
- Newsletter source feeds
- Trending-topic detection

</td>
<td width="50%" valign="top">

#### 🤖 ML + Research

- Train dev-content embeddings
- Tag-classification models
- Author-profile graphs
- Reading-time calibration

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 👥 Community + Recruiting

- Find experts on a topic
- Track community voices
- Discover dev influencers
- Outreach lead generation

</td>
<td width="50%" valign="top">

#### 🎓 Learning + Curation

- Tutorial discovery
- Best-of-week digests
- Hobbyist learning
- Community curation

</td>
</tr>
</table>

***

### 🔌 Automating Dev.to Articles and Posts Scraper

Control the scraper programmatically:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Dev-content corpora
- Community-dynamics studies
- Reproducible blog snapshots
- Cross-platform comparison

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal blog dashboards
- Curated reading lists
- Side projects with article data
- Newsletter backbones

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Free dev-content directories
- Educational tutorial collections
- Civic-tech blog aggregation
- Mentor-discovery resources

</td>
<td width="50%">

#### 🧪 Experimentation

- Train trend detectors
- Prototype recommendation
- Build summary-bots
- Test classification pipelines

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Dev.to%20Articles%20and%20Posts%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Dev.to%20Articles%20and%20Posts%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Dev.to%20Articles%20and%20Posts%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Dev.to%20Articles%20and%20Posts%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick mode (latest, top, tag, user). The Actor pages the public Dev.to API and returns each article.

#### 📊 How many fields per record?

32, including body markdown + HTML, tags, reactions, dates, author + organization profile.

#### 📜 Can I skip the body?

Yes. Set fetchBody to false to drop body markdown + body HTML. Records become much lighter.

#### 🏷️ How are tags returned?

Two formats: plain `tags` array + canonical `tagsCanonical` array. Slug-style strings.

#### 👤 Can I scrape a specific user?

Yes. Use mode=user with the username field.

#### 📅 What's the difference between createdAt and publishedAt?

Created is the original creation timestamp; published is when it went live (often the same).

#### 🆓 Do I need an API key?

No. Dev.to has a public API.

#### 🔁 Can I schedule runs?

Yes. Schedule hourly for trending content.

#### ⚖️ Is this data free to use?

Articles are publicly available. Reuse depends on each author's licensing.

#### 💳 Do I need a paid Apify plan?

No. The free plan covers preview runs (10 records).

***

### 🔌 Integrate with any app

Dev.to Articles and Posts Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets to Sheets

***

### 🔗 Recommended Actors

- [**📦 npm Package Registry**](https://apify.com/parseforge/npm-packages-scraper) - Pull npm packages with version, downloads, dependencies, integrity
- [**📝 Hashnode Articles**](https://apify.com/parseforge/hashnode-articles-scraper) - Pull Hashnode articles with body, author bio, tags, reactions
- [**📊 Stack Exchange Questions**](https://apify.com/parseforge/stackexchange-questions-scraper) - Search 170+ Stack Exchange Q\&A sites
- [**📚 Wikipedia Article Summary**](https://apify.com/parseforge/wikipedia-rest-summaries-scraper) - Pull Wikipedia summaries with thumbnail, extract, geo and Wikidata link
- [**🌐 Wikidata Entity Search**](https://apify.com/parseforge/wikidata-entity-search-scraper) - 100M+ open knowledge-graph entities

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Dev.to, Forem, or any individual article author. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `mode` (type: `string`):

latest = recent feed; top = ranked by reactions; tag = filter by tag; user = articles by username.

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

Dev.to tag slug to filter by (e.g. javascript, python, rust). Empty = ignored. Used only when mode=tag.

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

DEV.to username (without the @).

## `fetchBody` (type: `boolean`):

If checked, fetches full body markdown per article (1 extra API call per article).

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "latest",
  "tag": "",
  "username": "ben",
  "fetchBody": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "maxItems": 10,
    "mode": "latest",
    "tag": "",
    "username": "ben"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/dev-to-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 = {
    "maxItems": 10,
    "mode": "latest",
    "tag": "",
    "username": "ben",
}

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

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "mode": "latest",
  "tag": "",
  "username": "ben"
}' |
apify call parseforge/dev-to-articles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/dev-to-articles-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "DEV.to Articles Scraper",
        "description": "Pull articles from DEV.to (and other Forem communities). Returns title, URL, cover, description, full body markdown, tags, reading time, reactions, comments, author profile (name, twitter, github), publication, canonical URL, published date. Filter by tag, top, latest, username.",
        "version": "1.0",
        "x-build-id": "23GhzEIcz13oTJBVH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~dev-to-articles-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-dev-to-articles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~dev-to-articles-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-dev-to-articles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~dev-to-articles-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-dev-to-articles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "latest",
                            "top",
                            "tag",
                            "user"
                        ],
                        "type": "string",
                        "description": "latest = recent feed; top = ranked by reactions; tag = filter by tag; user = articles by username.",
                        "default": "latest"
                    },
                    "tag": {
                        "title": "Tag",
                        "enum": [
                            "",
                            "100daysofcode",
                            "100daysofdatascience",
                            "100daysofsolana",
                            "12monthsofmakes",
                            "3dprinting",
                            "418challenge",
                            "a11y",
                            "abotwrotethis",
                            "actionshackathon",
                            "activitypub",
                            "adventofai",
                            "adventofcode",
                            "aem",
                            "agentaichallenge",
                            "agenticpostgreschallenge",
                            "agents",
                            "agentskills",
                            "agile",
                            "agriculture",
                            "ai",
                            "aiops",
                            "algoliachallenge",
                            "algorithms",
                            "alibabachallenge",
                            "ama",
                            "analyst",
                            "analytics",
                            "android",
                            "androiddev",
                            "angular",
                            "animation",
                            "anonymous",
                            "ansible",
                            "antigravity",
                            "api",
                            "apigateway",
                            "appconfig",
                            "appsync",
                            "appwritehack",
                            "architecture",
                            "archlinux",
                            "arduino",
                            "artificialintelligence",
                            "asp",
                            "aspdotnet",
                            "aspnet",
                            "assembly",
                            "assemblyaichallenge",
                            "astro",
                            "atlashackathon",
                            "atlashackathon22",
                            "atproto",
                            "atprotocol",
                            "auth0challenge",
                            "authjs",
                            "automation",
                            "automaton",
                            "aws",
                            "awsbigdata",
                            "awschallenge",
                            "awsdatalake",
                            "awsiot",
                            "azure",
                            "azureapril",
                            "azureeventgrid",
                            "azurefunctions",
                            "babel",
                            "backend",
                            "backenddevelopment",
                            "basecs",
                            "bash",
                            "basic",
                            "beginner",
                            "beginners",
                            "bestofdev",
                            "bigdata",
                            "bitbucket",
                            "bitcoin",
                            "blacklivesmatter",
                            "blockchain",
                            "bluesky",
                            "bolt",
                            "books",
                            "bootstrap",
                            "braziliandevs",
                            "brightdatachallenge",
                            "browser",
                            "buildinpublic",
                            "buildozer",
                            "bunjs",
                            "c",
                            "career",
                            "careerdevelopment",
                            "certification",
                            "challenge",
                            "changelog",
                            "chatgpt",
                            "cheatsheet",
                            "choosetochallenge",
                            "ci",
                            "cicd",
                            "circuitpython",
                            "cisco",
                            "civictech",
                            "claude",
                            "cleancode",
                            "cleancoding",
                            "cli",
                            "clojure",
                            "cloud",
                            "cloudcomputing",
                            "cloudflarechallenge",
                            "cloudnative",
                            "cloudnextchallenge",
                            "cloudpractitioner",
                            "cloudskills",
                            "cloudstorage",
                            "clr",
                            "cnc2018",
                            "code",
                            "codenewbie",
                            "codepen",
                            "codequality",
                            "codereview",
                            "coding",
                            "coinbase",
                            "community",
                            "competativeprogramming",
                            "compiling",
                            "computerscience",
                            "computervision",
                            "container",
                            "containerapps",
                            "containers",
                            "contentwriting",
                            "contributorswanted",
                            "convex",
                            "core",
                            "cosmosdb",
                            "couchbase",
                            "cozechallenge",
                            "cpp",
                            "cryptocurrency",
                            "crystal",
                            "cschallenge",
                            "csharp",
                            "css",
                            "cuda",
                            "culture",
                            "cybersecurity",
                            "dapr",
                            "darklang",
                            "dart",
                            "data",
                            "database",
                            "dataengineering",
                            "datascience",
                            "datastructures",
                            "debian",
                            "deeplearning",
                            "deepseek",
                            "deno",
                            "dependencyinversion",
                            "design",
                            "designpatterns",
                            "designsystem",
                            "devbugsmash",
                            "devchallenge",
                            "devcyclechallenge",
                            "devdiscuss",
                            "deved",
                            "developer",
                            "developers",
                            "development",
                            "devex",
                            "devgrad2020",
                            "devimpact2023",
                            "devjournal",
                            "devlive",
                            "devmeme",
                            "devops",
                            "devplusplus",
                            "devpride",
                            "devrel",
                            "devresolutions2024",
                            "devto",
                            "devwrapped",
                            "digitalworkplace",
                            "discord",
                            "discuss",
                            "distributedsystems",
                            "diversity",
                            "django",
                            "djangocms",
                            "docker",
                            "documentation",
                            "dohackathon",
                            "dotnet",
                            "dotnetcore",
                            "dotnetframework",
                            "drupal",
                            "dsa",
                            "dynamodb",
                            "elasticsearch",
                            "electron",
                            "elixir",
                            "elm",
                            "ember",
                            "emberjs",
                            "employeeexperience",
                            "erlang",
                            "esp32",
                            "esp8266",
                            "espanol",
                            "español",
                            "ethereum",
                            "etherjs",
                            "eventdriven",
                            "eventsinyourcity",
                            "explainlikeimfive",
                            "express",
                            "extensions",
                            "extranet",
                            "fastapi",
                            "fauna",
                            "fediverse",
                            "firebase",
                            "firstpost",
                            "firstyearincode",
                            "flask",
                            "flutter",
                            "forem",
                            "foremfest",
                            "freelance",
                            "french",
                            "frontend",
                            "frontendchallenge",
                            "frontenddevelopment",
                            "fsharp",
                            "fullstack",
                            "functional",
                            "functionalreactiveprogramming",
                            "futurechallenge",
                            "gamechallenge",
                            "gamedev",
                            "gatsby",
                            "gc",
                            "gcp",
                            "gdscript",
                            "gear",
                            "gemini",
                            "gemma",
                            "gemmachallenge",
                            "gftwhackathon",
                            "git",
                            "github",
                            "githubactions",
                            "githubbrasil",
                            "githubchallenge",
                            "githubcopilot",
                            "githubhack23",
                            "githunt",
                            "gitlab",
                            "go",
                            "godot",
                            "godotengine",
                            "google",
                            "googleaichallenge",
                            "googlecloud",
                            "googleiochallenge",
                            "gpt3",
                            "gradle",
                            "grails",
                            "graphql",
                            "gratitude",
                            "groovy",
                            "gsap",
                            "hackathon",
                            "hacktoberfest",
                            "hacktoberfest23",
                            "hacktoberfestchallenge",
                            "halloween",
                            "haskell",
                            "healthydebate",
                            "help",
                            "heroku",
                            "herokuchallenge",
                            "hibernate",
                            "hiring",
                            "hotwire",
                            "howto",
                            "howtofix",
                            "html",
                            "htmx",
                            "http",
                            "hugo",
                            "icymi",
                            "identity",
                            "inclusion",
                            "indonesia",
                            "infosec",
                            "infrastructure",
                            "infrastructureascode",
                            "interfacesegregation",
                            "interview",
                            "inthirtyseconds",
                            "intranet",
                            "ionic",
                            "ios",
                            "iot",
                            "ipad",
                            "ipfs",
                            "jakarta",
                            "jamstack",
                            "java",
                            "javascript",
                            "javascriptlibraries",
                            "jee",
                            "jellyfin",
                            "jenkins",
                            "jest",
                            "jokes",
                            "jpa",
                            "jquery",
                            "json",
                            "julialang",
                            "jupyter",
                            "jvm",
                            "kafka",
                            "kaggle",
                            "kamal",
                            "kendoreactchallenge",
                            "knative",
                            "kotlin",
                            "kubernetes",
                            "lambda",
                            "land",
                            "langchain",
                            "laravel",
                            "latam",
                            "leadership",
                            "learngoogleaistudio",
                            "learning",
                            "leetcode",
                            "lego",
                            "lgbtq",
                            "linodehackathon",
                            "linux",
                            "liskov",
                            "livewire",
                            "llm",
                            "localhackday",
                            "logicapps",
                            "lowcode",
                            "machinelearning",
                            "magneto",
                            "majorleaguehacking",
                            "management",
                            "mariadb",
                            "markdown",
                            "marketing",
                            "marko",
                            "mastodon",
                            "mattermost",
                            "mcp",
                            "mentalhealth",
                            "mentorship",
                            "mern",
                            "meta",
                            "meteor",
                            "microbit",
                            "micronaut",
                            "micropython",
                            "microservices",
                            "microsoft",
                            "microsoft365",
                            "microsoftcloud",
                            "microsoftgraph",
                            "midnightchallenge",
                            "minimicro",
                            "miniscript",
                            "mixedreality",
                            "mlh",
                            "mlhgrad",
                            "mobile",
                            "mojo",
                            "mojolicious",
                            "mongodb",
                            "mongoose",
                            "monitoring",
                            "motivation",
                            "mqtt",
                            "mrsk",
                            "msbuild",
                            "mscreate",
                            "mulesofthackathon",
                            "multiplatform",
                            "music",
                            "muxchallenge",
                            "mysql",
                            "n8nbrightdatachallenge",
                            "nanobanana",
                            "neonchallenge",
                            "neovim",
                            "nestjs",
                            "netlify",
                            "netlifychallenge",
                            "network",
                            "networking",
                            "newbie",
                            "newrelic",
                            "news",
                            "newyearchallenge",
                            "nextjs",
                            "nginx",
                            "nim",
                            "nlp",
                            "nocode",
                            "node",
                            "nodejs",
                            "nosql",
                            "notionchallenge",
                            "npm",
                            "nuxt",
                            "nuxtjs",
                            "nvidia",
                            "nvidiachallenge",
                            "nylaschallenge",
                            "oauth",
                            "ocaml",
                            "octograd2020",
                            "octopusdeploy",
                            "offers",
                            "oop",
                            "openai",
                            "openapi",
                            "openclaw",
                            "openclawchallenge",
                            "openclosed",
                            "openclosedprinciple",
                            "opendata",
                            "opensource",
                            "operations",
                            "oracle",
                            "osdc",
                            "oss",
                            "performance",
                            "perl",
                            "permitchallenge",
                            "pgaichallenge",
                            "photoshop",
                            "php",
                            "pihole",
                            "pinatachallenge",
                            "playwright",
                            "podcast",
                            "podcasts",
                            "polymer",
                            "portfolio",
                            "postgres",
                            "postgressql",
                            "postman",
                            "postmanapi",
                            "powerapps",
                            "powerautomate",
                            "powerfuldevs",
                            "powerplatform",
                            "prisma",
                            "privacy",
                            "procurement",
                            "product",
                            "productivity",
                            "programmers",
                            "programming",
                            "projectbenatar",
                            "prolog",
                            "promptengineering",
                            "psychology",
                            "publicinbox",
                            "pubsub",
                            "pulumichallenge",
                            "puppet",
                            "purescript",
                            "pushercontest",
                            "pwa",
                            "pwabuilder",
                            "pwl",
                            "pybricks",
                            "python",
                            "quarkus",
                            "qwik",
                            "rag",
                            "rails",
                            "raspberrypi",
                            "react",
                            "reactjs",
                            "reactjsdevelopment",
                            "reactnative",
                            "reason",
                            "redis",
                            "redishackathon",
                            "redux",
                            "refactoring",
                            "refactorit",
                            "refinehackathon",
                            "regex",
                            "remix",
                            "remote",
                            "replit",
                            "requestforpost",
                            "resources",
                            "rest",
                            "restapi",
                            "resume",
                            "riot",
                            "riotjs",
                            "robotics",
                            "role",
                            "rpa",
                            "rss",
                            "ruby",
                            "runnerhchallenge",
                            "rust",
                            "rxjs",
                            "saas",
                            "safari",
                            "sass",
                            "scala",
                            "science",
                            "scrum",
                            "scss",
                            "scylladb",
                            "security",
                            "selenium",
                            "serverless",
                            "sharepoint",
                            "sharepointframework",
                            "shecoded",
                            "shecodedally",
                            "shell",
                            "showdev",
                            "sideprojects",
                            "siliconvalley",
                            "singleresponsibility",
                            "sitereliabilityengineering",
                            "smartcontract",
                            "socialmedia",
                            "software",
                            "softwaredevelopment",
                            "softwareengineering",
                            "solidity",
                            "solidjs",
                            "solidprinciples",
                            "sorbet",
                            "sotwsurvey",
                            "spanish",
                            "speaking",
                            "spfx",
                            "spring",
                            "springboot",
                            "springsecurity",
                            "sql",
                            "sqlserver",
                            "sre",
                            "startup",
                            "staticwebapps",
                            "statuscodes",
                            "stellarchallenge",
                            "stepfunctions",
                            "storyblokchallenge",
                            "stripe",
                            "surfaceduodev",
                            "svelte",
                            "sveltekit",
                            "swift",
                            "symfony",
                            "systemdesign",
                            "systems",
                            "tailwind",
                            "tailwindcss",
                            "tdd",
                            "techtalks",
                            "tensorflow",
                            "terminal",
                            "terraform",
                            "test",
                            "test2",
                            "test4",
                            "testdev",
                            "testing",
                            "tfhdailystandup",
                            "themes",
                            "theycoded",
                            "tigerdata",
                            "timescalechallenge",
                            "todayilearned",
                            "todayisearched",
                            "tooling",
                            "top7",
                            "trans",
                            "tutorial",
                            "twilio",
                            "twiliochallenge",
                            "twiliohackathon",
                            "twilioquest",
                            "twitter",
                            "typescript",
                            "typo3",
                            "ubuntu",
                            "ui",
                            "uidesign",
                            "uiweekly",
                            "unittest",
                            "unity3d",
                            "unoplatformchallenge",
                            "unsplash",
                            "util",
                            "ux",
                            "uxdesign",
                            "vectordatabase",
                            "vercel",
                            "vertexai",
                            "vertx",
                            "vibecoding",
                            "vim",
                            "virtualmachine",
                            "visier",
                            "vite",
                            "vscode",
                            "vue",
                            "vuejs",
                            "vulnerabilities",
                            "watercooler",
                            "wcf",
                            "web",
                            "web3",
                            "webassembly",
                            "webcomponents",
                            "webdev",
                            "webmonetization",
                            "webpack",
                            "webperf",
                            "webr",
                            "webrtc",
                            "webscraping",
                            "website",
                            "webstorm",
                            "webtesting",
                            "wecoded",
                            "weekendchallenge",
                            "weeklyretro",
                            "weeklyui",
                            "welcome",
                            "whisper",
                            "whoishiring",
                            "wixstudiochallenge",
                            "womenintech",
                            "woocommerce",
                            "wordpress",
                            "workplace",
                            "workstations",
                            "writing",
                            "xamarin",
                            "xamarinforms",
                            "xanochallenge",
                            "yearinreview",
                            "zig"
                        ],
                        "type": "string",
                        "description": "Dev.to tag slug to filter by (e.g. javascript, python, rust). Empty = ignored. Used only when mode=tag.",
                        "default": ""
                    },
                    "username": {
                        "title": "Username (user mode)",
                        "type": "string",
                        "description": "DEV.to username (without the @)."
                    },
                    "fetchBody": {
                        "title": "Fetch full body markdown",
                        "type": "boolean",
                        "description": "If checked, fetches full body markdown per article (1 extra API call per article).",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
