canonical: https://jentic.com/apis/dev.to/dev-to-main

# Dev To Forem API V1

The Forem API V1 powers DEV Community (dev.to) and other Forem-based developer communities. Its 58 endpoints cover articles, comments, reactions, tags, follows, organizations, pages, podcast episodes, billboards, segments, and admin operations such as suspending or marking users as trusted. Public reads work anonymously, while write operations and reads of personal content require the api-key request header issued from a user's DEV settings page. Use it to publish technical content programmatically, build dashboards over your own articles, or moderate a Forem instance from external tooling.

## For AI agents

Publish, list, and moderate articles, comments, organizations, and users on DEV Community and other Forem instances through 58 Forem API V1 endpoints.

## Scope

Does not handle direct messaging, payments, full-text search of comments, or write access to comments - use for article publishing, organization, reaction, and moderation operations only.

## Capabilities

- Publish or update an article via POST /api/articles and PUT /api/articles/{id}, then unpublish via PUT /api/articles/{id}/unpublish
- List your own articles by status via /api/articles/me/published, /api/articles/me/unpublished, and /api/articles/me/all
- Manage organizations via POST /api/organizations and read members via GET /api/organizations/{organization_id_or_username}/users
- Toggle a reaction on an article or comment via POST /api/reactions/toggle and POST /api/reactions
- Create and curate user segments and billboards via POST /api/segments and POST /api/billboards
- Read tags, follows, and reading lists via /api/tags, /api/follows/tags, and /api/readinglist
- Moderate users with admin actions via PUT /api/users/{id}/suspend, /api/users/{id}/spam, and /api/users/{id}/trusted

## Use cases

### Cross-posting and content syndication

Authors who write in their own CMS or blog can syndicate to DEV Community by calling POST /api/articles with the article body and canonical_url, then update edits with PUT /api/articles/{id}. The api-key header authenticates the request as the article's author. This is the standard path for cross-posting and keeps the DEV copy in sync with the source.

Example prompt: POST /api/articles with body containing title, body_markdown, canonical_url, and tags to publish a draft, then GET /api/articles/me/all to confirm it appears.

### Personal writing dashboard

Build a private dashboard over your own DEV writing by combining /api/articles/me/published, /api/articles/me/unpublished, and /api/articles/me/all. Pair with /api/users/me to render the author's profile and follower counts. The 58-endpoint surface gives enough coverage to track drafts, edits, and engagement without scraping DEV's web UI.

Example prompt: GET /api/articles/me/published, then for each article id call /api/comments?a_id={id} to render a per-article comment count.

### Forem instance moderation tooling

Operators of Forem-based communities can wire moderation actions (suspend, mark trusted, mark spam) into external tools through the admin endpoints under /api/users/{id}/*. Combine with /api/admin/users to onboard new users and /api/billboards to manage on-site placements. This is the API surface that staff dashboards and bots can build on top of.

Example prompt: PUT /api/users/{id}/suspend with the offending user id from a moderation report, then verify the user state by reading /api/users/{id}.

### Agent-driven publishing assistant

An AI writing assistant can call the Forem API through Jentic to publish drafts, fetch comment threads, and react to mentions. The agent finds the right operation by intent (e.g., 'publish a DEV article'), and Jentic injects the api-key from the vault at execution time, so the user's DEV API key never lives in the agent's prompt or context.

Example prompt: Through Jentic, search 'publish a DEV.to article', load the dev.to /api/articles POST operation, and execute with the title, body_markdown, and tags from the user's draft.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api/articles | List published articles |
| POST | /api/articles | Publish a new article |
| PUT | /api/articles/{id} | Update an existing article |
| GET | /api/articles/me/all | List the authenticated user's articles |
| POST | /api/reactions/toggle | Toggle a reaction on a reactable |
| GET | /api/comments | List comments on an article or podcast |
| POST | /api/organizations | Create an organization |
| PUT | /api/users/{id}/suspend | Suspend a user (admin) |

## Key resources

- **Articles** — Read, publish, update, and unpublish articles via /api/articles and /api/articles/me/*.
- **Comments and Reactions** — List comments and toggle reactions via /api/comments and /api/reactions/toggle.
- **Organizations** — Create and read organizations and their members via /api/organizations and /api/organizations/{id}/users.
- **Tags and Follows** — Read tags, followed tags, and follower lists via /api/tags, /api/follows/tags, /api/followers/users.
- **Admin and Moderation** — Suspend, mark spam, mark trusted, and create users via /api/users/{id}/* and /api/admin/users.
- **Billboards and Segments** — Manage on-site billboards and audience segments via /api/billboards and /api/segments.

## Why Jentic

- **Setup:** Wiring the Forem API by hand means setting the api-key header, tracking which operations write to your DEV account, and paging the article and comment lists yourself. Through Jentic you install once, import the Forem API from the API Directory, store the api-key once, and your agent calls it.
- **Permission scoping:** You choose which Forem operations the agent may call, so you can limit it to the ones it needs, such as listing articles and creating a draft, and leave out state-changing operations like suspending a user or toggling reactions unless you add them. That keeps the agent to reads and publishing without touching moderation.
- **Credential handling:** Your DEV api-key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'publish a DEV article' or 'list my DEV drafts', and Jentic returns the matching Forem operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **DEV Community ChatGPT Plugin API** — Single article search endpoint for LLM article recommendations.
- **GitHub REST API** — Repository, issue, and gist APIs that pair with DEV writing.
- **Product Hunt** — Community for product launches and discussions.

## FAQ

### What authentication does the Forem API V1 use?

Forem authenticates writes and personal reads with an api-key request header issued from your DEV settings page (https://dev.to/settings/extensions). Public read endpoints such as /api/articles work without a key. Through Jentic the api-key is held in the vault and added to the request server-side, so the raw key never reaches the agent.

### Can I publish a DEV article through the Forem API?

Yes. POST /api/articles with title, body_markdown, optional canonical_url, and tags publishes the article. PUT /api/articles/{id} updates it and PUT /api/articles/{id}/unpublish removes it from public listing. The author identity is taken from the api-key header.

### What are the rate limits for the Forem API V1?

DEV does not declare formal rate limits in this OpenAPI spec. Authenticated endpoints are CORS-disabled and intended for non-browser scripts; treat HTTP 429 as a signal to back off and slow your request rate. For sustained high-volume publishing, contact DEV before launching.

### How do I list my own drafts on DEV through Jentic?

Through Jentic, search 'list my DEV unpublished drafts', load the dev.to /api/articles/me/unpublished operation, and execute it. Jentic injects the api-key from the vault and returns your unpublished articles ready to be edited.

### Can I moderate users on a Forem instance with this API?

Yes, with admin privileges. PUT /api/users/{id}/suspend, PUT /api/users/{id}/spam, and PUT /api/users/{id}/trusted toggle moderation states, and DELETE variants reverse them. POST /api/admin/users creates a user. These endpoints require an admin-level api-key on the Forem instance.

### How do I read comments on a specific DEV article?

Use GET /api/comments with the article id query parameter (a_id) to fetch the comment tree, and GET /api/comments/{id} to read a single comment. Comment writes are not exposed through this version of the Forem API.

### Can I limit what my agent is allowed to do with the Forem API?

Yes. Because you run Jentic One yourself, you decide which Forem operations the agent may call, so you can allow read and publish operations like GET /api/articles and POST /api/articles while leaving out state-changing ones. That means you can keep the agent to listing and drafting articles and withhold moderation calls such as PUT /api/users/{id}/suspend and PUT /api/users/{id}/spam, or reaction toggles like POST /api/reactions/toggle, unless you add them. Your own rules also govern which stored api-key credential the agent may use, so an agent scoped to reads never touches admin actions.
