DEV Community API
Free DEV.to API with no key for public content: articles, tags, users and comments from the developer community platform. Tested curl example and live JSON.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the DEV Community API?
The DEV Community (dev.to) API is a free API providing public access to articles, tags, users and comments. Reading published articles requires no API key; publishing requires one.
DEV.to's API is refreshingly open for reading: article listings, full content, tags and user profiles are all available unauthenticated. That makes it easy to syndicate your own posts onto a personal site.
For that use case specifically, the `username` filter is the key parameter — request articles by your own username and you have a self-updating blog feed without maintaining a CMS. Articles include both `body_html` and `body_markdown` when requested individually.
Quick facts
- Base URL
https://dev.to/api- Authentication
- Reading public articles needs no key. Publishing or reading drafts requires an API key in the `api-key` header.
- Rate limit
- About 3 requests per second for unauthenticated reads.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the DEV Community API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch recent published articles
GET https://dev.to/api/articles?per_page=1
curl 'https://dev.to/api/articles?per_page=1'const res = await fetch("https://dev.to/api/articles?per_page=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://dev.to/api/articles?per_page=1", timeout=20)
res.raise_for_status()
print(res.json())[
{
"type_of": "article",
"id": 4390215,
"title": "It's always Doom https://ood.dev/posts/doom/",
"description": "...",
"readable_publish_date": "Aug 13",
"slug": "its-always-doom-httpsooddevpostsdoom-4fpi",
"path": "/ben/its-always-doom-httpsooddevpostsdoom-4fpi",
"url": "https://dev.to/ben/its-always-doom-httpsooddevpostsdoom-4fpi",
"comments_count": 0,
"public_reactions_count": 4,
"collection_id": null,
"published_timestamp": "2026-08-13T20:04:27Z",
"language": "en",
"subforem_id": 1,
"ai_disclosure_level": "not_disclosed",
"ai_disclosure_label": "Not Disclosed",
"positive_reactions_count": 4,
"cover_image": null,
"social_image": "https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpkholdt4jp2vza6zzqvu.png",
"canonical_url": "https://dev.to/ben/its-always-doom-httpsooddevpostsdoom-4fpi",
"created_at": "2026-08-13T20:04:27Z",
"edited_at": null,
"crossposted_at": null,
"published_at": "2026-08-13T20:04:27Z",
"last_comment_at": "2026-08-13T20:04:27Z",
"reading_time_minutes": 1,
"tag_list": [
"gamedev",
"programming",
"software"
],
"tags": "gamedev, programming, software",
"user": {
"name": "Ben Halpern",
"username": "ben",
"twitter_username": "bendhalpern",
"github_username": "benhalpern",
"user_id": 1,
"website_url": "http://benhalpern.com",
"profile_image": "https://media2.deParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page | integer | Optional | Results per page, max 1000. 30 |
page | integer | Optional | Page number. 2 |
tag | string | Optional | Filter by a single tag. javascript |
username | string | Optional | Articles by a specific user or organisation. ben |
top | integer | Optional | Most popular articles from the last N days. 7 |
Response fields
idinteger- Article identifier.
titlestring- Article title.
descriptionstring- Short summary.
url / canonical_urlstring- DEV URL and the author's canonical URL if set.
cover_imagestring- Header image URL, often null.
tag_listarray- Tags applied to the article.
positive_reactions_countinteger- Reaction count — the engagement signal.
userobject- Author name, username and profile image.
What you can build with the DEV Community API
- Syndicate your DEV articles onto a personal site or portfolio
- Build a curated developer reading list by tag
- Monitor popular posts on a technology for a newsletter
- Analyse which topics get engagement in the developer community
Common errors and how to fix them
Article body missing from the list
List endpoints return metadata only.
Fix: Fetch /articles/{id} for the full body_html and body_markdown.
429
Exceeded roughly 3 requests per second.
Fix: Throttle and cache; article lists change slowly.
401 for drafts
Unpublished articles require authentication.
Fix: Send your DEV API key in the `api-key` header to access drafts.
DEV Community API — frequently asked questions
Is the DEV.to API free?
Yes, reading public articles requires no API key. Publishing or accessing your drafts needs a free API key from your DEV settings.
How do I show my own DEV posts on my website?
Request /api/articles?username=yourname. That returns your published articles as JSON, giving you a self-updating blog feed with no CMS.
How do I get the full article content?
List endpoints return metadata only. Fetch the individual article at /api/articles/{id} to get body_html and body_markdown.
Can I publish to DEV via the API?
Yes, by POSTing to /api/articles with your API key in the `api-key` header. That also supports scheduling and draft creation.
Tools that pair with this API
Markdown to HTML Converter
Convert Markdown to clean HTML with a live preview — headings, emphasis, links, lists, code blocks, tables and blockquotes. 100% in your browser.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Word Counter
Count words, characters, sentences, paragraphs and estimated reading time instantly. Free online word counter for essays, blogs and social media.
DEV Community is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.