# DEV / Forem Intel: Articles, Dev Leads & Tags (`obsidian937/devto-intel`) Actor

Turn DEV (dev.to) into structured B2B data. Monitor articles by tag, author or top window, build developer and author lead lists with socials and location, or browse the tag catalog. Official public Forem API, no proxy, no auth. Delta mode for recurring monitoring.

- **URL**: https://apify.com/obsidian937/devto-intel.md
- **Developed by:** [Obsidian IT Consulting SRL](https://apify.com/obsidian937) (community)
- **Categories:** Developer tools, Lead generation, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## DEV / Forem Intel: Articles, Dev Leads & Tags

Turn **DEV (dev.to)** into structured, exportable B2B data. Built on the official public **Forem API** (`dev.to/api`): no proxy, no login, no scraping of rendered HTML. Pick a mode, get clean JSON / CSV / Excel.

### What it does

Three modes, one actor:

#### 1. Monitor articles (`articles`)

List posts by **tag**, by **author/organization username**, or by the **top window** (most-reacted posts of the last N days). Each row is flattened to title, description, tag list, reactions, comments, reading time, publish date, URL, and a compact author pointer (name, username, Twitter, GitHub, website).

Use it for: dev-rel and content competitive intel, tracking who publishes about your product or a rival's, finding the week's top posts in a technology.

#### 2. Developer leads (`users`)

Give a **tag** and the actor collects the authors writing about that technology, then enriches each one through the public profile endpoint into a lead row: name, location, website, Twitter handle, GitHub handle, bio, and join date. People who *publish* about a stack are high-intent, pre-qualified leads. Or pass a single **username** for a one-off profile lookup.

Use it for: developer recruiting, dev-tool and SaaS lead generation, community and influencer mapping.

#### 3. Tags (`tags`)

The DEV tag catalog in popularity order, with each tag's short summary and URL.

Use it for: technology market sizing and trend discovery.

### Delta / monitor mode

Turn on **Delta mode** and every run emits only what is new since the previous run (per-account state): new articles, newly appearing authors, or newly surfaced tags. Pair it with an Apify **schedule + webhook** and the actor becomes a recurring change feed instead of a one-shot scrape.

### Input

| Field | Applies to | Description |
|-------|-----------|-------------|
| `mode` | all | `articles`, `users`, or `tags` |
| `tag` | articles, users | A dev.to tag (e.g. `react`, `rust`, `ai`) |
| `username` | articles, users | A dev.to username (author/org posts, or a single profile) |
| `top` | articles, users | Most-reacted window in days (`7`, `30`); `0` = newest |
| `apiKey` | all | Optional free DEV key: raises the rate budget only, reads stay public |
| `deltaMode` | all | Emit only entries new since the last run |
| `maxItems` | all | Cap on records returned |

### Output sample (developer lead)

```json
{
  "source": "user",
  "username": "ben",
  "name": "Ben Halpern",
  "location": "NY",
  "websiteUrl": "http://benhalpern.com",
  "twitterUsername": "bendhalpern",
  "githubUsername": "benhalpern",
  "summary": "A Canadian software developer who thinks he is funny.",
  "joinedAt": "Dec 27, 2015",
  "profileUrl": "https://dev.to/ben",
  "foundViaTag": "react"
}
```

### Notes

- Data is read from public DEV endpoints. Article content on DEV is licensed by its authors; reuse responsibly and keep the source URL for attribution.
- The optional API key is **not** authentication. It only lifts the unauthenticated rate budget; every endpoint this actor calls is public.

### Part of the B2B data suite

Pairs with the rest of the founder / VC / sales / recruiting data suite:

- **GitHub Intel** and **npm Registry Intel** and **PyPI Intel** for developer-ecosystem leads and package intel
- **Stack Exchange Intel** for developer leads by technology
- **Hacker News Intel** for hiring and launch signals
- **Y Combinator** and **IndieHackers** and **BetaList** scrapers for startup and founder data
- **SEC EDGAR Intel** for public-company filings and financials

# Actor input Schema

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

What to extract: monitor articles (by tag, author, or top window), build developer/author lead lists with socials, or browse the platform tag catalog.

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

A single dev.to tag, e.g. "react", "rust", "ai". In articles mode it filters posts; in users mode it discovers the authors writing about that technology (high-intent dev leads).

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

A dev.to username. In articles mode, list that author's or organization's posts; in users mode, do a single profile lookup. Leave blank to use Tag/Top instead.

## `top` (type: `integer`):

Articles mode: return the most-reacted posts of the last N days (e.g. 7 = top of the week, 30 = top of the month). 0 = newest first. In users mode it scopes tag-based author discovery to that window.

## `apiKey` (type: `string`):

Optional free key from your dev.to Settings > Extensions. NOT authentication: it only raises the unauthenticated rate budget. All data read stays public. Leave blank to run keyless.

## `deltaMode` (type: `boolean`):

Only emit entries new since the previous run (per-account state): new articles (articles mode), newly appearing authors (users mode), or newly surfaced tags (tags mode). Pair with a schedule + webhook for recurring alerts.

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

Cap on records to return.

## Actor input object example

```json
{
  "mode": "articles",
  "tag": "javascript",
  "username": "",
  "top": 0,
  "deltaMode": false,
  "maxItems": 50
}
```

# 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 = {
    "tag": "javascript"
};

// Run the Actor and wait for it to finish
const run = await client.actor("obsidian937/devto-intel").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 = { "tag": "javascript" }

# Run the Actor and wait for it to finish
run = client.actor("obsidian937/devto-intel").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 '{
  "tag": "javascript"
}' |
apify call obsidian937/devto-intel --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=obsidian937/devto-intel",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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