All platforms21 Dev.to endpoints

Dev.to API. Developer writing as JSON.

Posts, full article bodies, comments, profiles, organizations, tags and the home feed from Dev.to, in one JSON shape with one API key.

No credit card requiredRead the API docs
  • 21 routes
  • Full post bodies
  • 1 credit per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

Dev.to data as JSON. You build the product.

Live Dev.to data in one response shape, with platform changes handled for you.

Dev.to, plus every other platform

One key and one response envelope for Dev.to and 56 more platforms.

Pricing you can reason about

One request, one credit. Know how far your balance will go before you run your next batch.

Live data on every request

Fetch public data when you ask for it.

Nothing to maintain

We handle platform changes and breakages.

Built for production jobs

Run concurrent workloads with explicit statuses and request IDs.

Regular jobs. Better rates.

Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.

Never expires

What Dev.to data can you get?

21 endpoints, one API key. Every response comes back as live JSON in the same envelope.

Browse all 21 Dev.to endpoints
Use cases

What teams build with Dev.to data

Monitoring, enrichment, research and content workflows on Dev.to data, on the same API as every other platform.

What you can build

Follow topics

Watch tags, trends and the feed for what developers publish.

Find technical writers

Check profiles, post counts and pinned posts.

Read the conversation

Pull comment threads, organizations and communities.

How it works

Your first request in three steps.

Use TypeScript or your automation tool of choice.

Sources

+ 51 more platforms

One request

Social Fetch API

GET/v1/tiktok/profiles/charlidamelio

x-api-key: sk_live_••••••••

1 request · 1 credit

Same JSON shape

response.json200 OK
{
  "data": {
    "lookupStatus": "found",
    "profile": {
      "platform": "tiktok",
      "handle": "charlidamelio",
      "displayName": "charli d’amelio",
      "verified": true
    },
    "metrics": {
      "followers": 160263648
    }
  }
}
  1. Step 1

    Create your free account

    Get an API key with 100 requests included.

  2. Step 2

    Choose an endpoint

    Pass a username, URL, keyword, or post ID.

  3. Step 3

    Get clean JSON

    Use the response immediately or send it into your pipeline.

Works with your stack

Code, automate, or connect your AI.

Explore integrations

Pricing

Social data, priced simply.

Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.

Starter

$29.00

18,000credits

  • Top up from $1.61 / 1k if you run out
  • Up to 25 monitors
Most popular

Growth

$79.00

50,000credits

  • Top up from $1.58 / 1k if you run out
  • 5 team seats
  • Up to 100 monitors

Scale

$225.00

150,000credits

  • Top up from $1.50 / 1k if you run out
  • 25 team seats
  • Up to 250 monitors
  • Cancel anytime
  • 30-day money-back guarantee
  • Price locked while you stay

Need 1M+ credits, invoicing, or volume rates? Talk to us

Trust signals

DevHunt

Product Hunt

Uneed

Customers

Teams building on Social Fetch.

“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”

Daniel Reeve · Founder, Social Crow
  • “Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”

    Marcus Lin · Founder, Voice Gecko
  • “Live profile data on every request. We never flag accounts from a stale cache.”

    Hannah Webb · Founder, Scam Finder
  • “Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”

    Owen Pritchard · Founder, IP Flare

Dev.to API: common questions

What can I do with the Dev.to API?

Read posts and their full bodies, search posts, collect comment threads, look up users and organizations, list tags and tag details, follow trends, read the home and popular feeds, list video posts and podcast episodes, list events, and list communities. There are 21 routes under /v1/dev-to.

How do I fetch one post by URL or id?

Send exactly one of id or url to GET /v1/dev-to/article, for example id=207638 or url=https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif. The response has lookupStatus and, when found, article with bodyHtml and bodyMarkdown.

How far can I page and how many rows can I ask for?

page is 1 to 1000 on the list routes and 1 to 2000 on the feed; limit is 1 to 1000, with a default of 30. Each page is billed as its own request, so a large limit is one request rather than many. The page block returns page, hasMore and nextPage; a page past the end is an empty list with hasMore false.

How do comment threads work?

GET /v1/dev-to/article/comments returns a flat list in reading order: each top-level comment followed by its replies. Use parentId and depth to rebuild the tree. topLevelCount counts the top-level comments in the response, and replies are not counted against limit.

What is the difference between article and article/details?

GET /v1/dev-to/article returns the post with its full body. GET /v1/dev-to/article/details returns page-only extras: isPublished, isScheduled, coAuthorIds, the series and its parts, and commentsOnPage with numeric ids and reaction counts. Add details only when you need those fields.

Can I combine article filters?

Only tag with top. Dev.to applies one of tag, username, state or seriesId and ignores the rest, so Social Fetch refuses combinations that would silently drop a filter. sort=latest is accepted only on the unfiltered feed.

How do I get a user's posts?

Send username to GET /v1/dev-to/articles, for example username=ben. The list is newest first and cannot be combined with other filters. Use GET /v1/dev-to/user for the account and GET /v1/dev-to/user/profile for the page details.

Why is a field sometimes null?

Some fields are optional on Dev.to. Organization memberCount, postsPublished and isVerified are null when the count is unavailable, profile counts are null when the profile page is hidden, and a podcast audioUrl can be null when the episode has no audio file. A pinned post with no reaction or comment count, and a repository that shows a language but no star count, return 0. Null means unavailable, not zero.

Does HTTP 200 mean the post exists?

No. HTTP 200 means the request finished. For lookups, check data.lookupStatus: not_found means the post, user, tag, organization, episode or trend does not exist. Lists use an empty array with the same rule where the contract says so.

Can I use Dev.to routes from agents or MCP?

Yes. Every Dev.to route is available through the hosted MCP server and through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs, where lookupStatus and the page block are explicit.

The Dev.to API in detailHow the Dev.to routes work, what they cost, and how they differ from the official API.

Why teams use Social Fetch for Dev.to

Social Fetch covers Dev.to with 21 routes under /v1/dev-to, all on the same { data, meta } envelope. /v1/dev-to/articles lists the front page, a tag, a user, a series or the most-reacted posts of the last N days. /v1/dev-to/articles/search searches titles, tags and bodies with a query, and /v1/dev-to/article returns one post with bodyHtml and bodyMarkdown.

People have their own routes. /v1/dev-to/user gives the basic account, /v1/dev-to/user/profile adds postsPublished, commentsWritten, tagsFollowed, badges, pinnedPosts and githubRepositories, while /v1/dev-to/organization and /v1/dev-to/organization/members cover teams. Comments come back in reading order with parentId and depth, so you can rebuild a thread from one flat list, and /v1/dev-to/comment returns one comment with its replies.

The catalog routes help you decide what to read next: /v1/dev-to/tags, /v1/dev-to/tag, /v1/dev-to/trends, /v1/dev-to/trend, /v1/dev-to/feed, /v1/dev-to/videos, /v1/dev-to/podcast/episodes, /v1/dev-to/podcast/episode, /v1/dev-to/events and /v1/dev-to/communities. Lookups answer HTTP 200 with data.lookupStatus set to found or not_found, and every list carries a page block with page, hasMore and nextPage.

How to call the Dev.to API

  1. 1. Create an API key

    Sign up at Social Fetch and copy a key (sfk_...). New accounts get 100 free credits, enough to try every Dev.to route several times.

  2. 2. Pick a route and send it

    Use GET /v1/dev-to/article?id=207638 for one post, GET /v1/dev-to/articles?tag=rust for a tag, or GET /v1/dev-to/user/profile?username=heyitsjem for a profile. Send x-api-key on every request.

  3. 3. Branch and page

    For a lookup, check data.lookupStatus before storing a row. For a list, read data.page.nextPage while hasMore is true. meta.creditsCharged on each response is the billing record.

What each Dev.to route returns

  • Posts with title, tags, reactionsCount, commentsCount, readingTimeMinutes, publishedAt and the author.
  • Full post bodies as bodyHtml and bodyMarkdown from the single-post route.
  • Keyword search with query, an optional top window, and limit up to 1000.
  • Flat comment lists in reading order with parentId, depth and topLevelCount.
  • Profiles with counts, badges, pinned posts and the public repositories the user chose to show.
  • Organizations with memberCount, postsPublished, techStack, location and contactEmail.

How much does the Dev.to API cost?

Every Dev.to route charges a flat credit amount per completed request, shown on each endpoint page. Each page of a list is its own request and its own credit. Credits do not expire on pay-as-you-go packs, and meta.creditsCharged on every response is the billing source of truth.

Social Fetch vs the official Dev.to API

Dev.to publishes its own API. Social Fetch adds one response envelope shared with every other platform, typed lookupStatus results, page blocks on lists, and consistent field names across routes. The extras that live outside the plain post payload, such as profile counts, pinned posts, tag guidelines, series navigation, comment reaction counts and the home feed with its top comments, arrive in the same shape as the rest, so a job that mixes them does not need a second parser. A missing post, user, tag, organization, episode or trend comes back as not_found data, not as an HTTP error.

Pull your first Dev.to data.

Run a live Dev.to request in the playground. 100 free credits, no card, JSON back in seconds.

No credit cardSign up in 30 seconds withGoogleGitHub