> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/dev-to/articles>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/dev-to/articles.mdx>

---

# Dev.to Articles API

The front page, one tag, one user, one series or the most-reacted posts of the last N days.

`GET /v1/dev-to/articles` returns a page of posts in `articles`. With no filter it returns the front page, ranked by recent engagement; `sort=latest` switches to strictly newest first and is accepted only on that unfiltered feed. `tag` lists one tag, `username` one user or organization, `top` the most-reacted posts of the last N days (1 to 3650), `state` the `fresh` or `rising` posts, and `seriesId` the parts of a series oldest first.

Dev.to applies only one of these filters and ignores the rest, so Social Fetch refuses combinations that would silently drop one. The single exception is `tag` with `top`. Every row has `id`, `url`, `title`, `tags`, `reactionsCount`, `commentsCount`, `readingTimeMinutes`, `publishedAt`, `coverImage` and the `author`. Use `page` and `limit` to walk the list, up to 1000 rows per request.

## Request

- **Endpoint:** `GET /v1/dev-to/articles`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by tag, user or series
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/dev-to/articles/get)
- **Platform page:** [/platforms/dev-to](https://www.socialfetch.dev/platforms/dev-to)

## FAQ

### Which filters can I combine?

Only tag with top. username, state and seriesId each stand alone, and sort=latest is only for the unfiltered feed. A combination that Dev.to would ignore is refused with a validation message instead of returning unfiltered posts.

### How many posts can one page hold?

limit accepts 1 to 1000 and defaults to 30. page accepts 1 to 1000. The page block returns page, hasMore and nextPage so you can follow the list.

### How many credits does a page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.

### What does top do?

top=N keeps posts from the last N days and ranks them by reactions. It can be combined with tag. Without top, the unfiltered feed is ranked by recent engagement, not by date.

### What happens with an unknown tag or user?

An unknown tag or username returns an empty list, the same as a tag or user with no posts, and is billed as a normal request. Call `/v1/dev-to/tag` or `/v1/dev-to/user` first when you need to know whether it exists.
