> **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/user>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/dev-to/user.mdx>

---

# Dev.to User API

One Dev.to account by username or id, with the details the account itself carries.

`GET /v1/dev-to/user` takes exactly one of `username` or `id`. A username may be sent as `ben`, `@ben`, `BEN` or a profile URL, and it is folded to lowercase. The response returns `user` with `id`, `username`, `name`, `bio`, `location`, `websiteUrl`, `twitterUsername`, `githubUsername`, `avatarUrl` and `joinedOn`.

`joinedOn` is the date only, in `YYYY-MM-DD` form. Add `/v1/dev-to/user/profile` when you need the exact join time and the page details. A username that does not exist returns `lookupStatus: not_found` with `user` null, including accounts that Dev.to has hidden from its own site.

## Request

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

## FAQ

### Can I pass a profile URL?

Yes. https://dev.to/ben, @ben and ben all resolve to the same account. Usernames are folded to lowercase.

### How many credits does a user lookup 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.

### Why is joinedOn only a date?

The account route carries the date. GET /v1/dev-to/user/profile returns joinedAt with the full timestamp, plus counts and profile fields.

### What does lookupStatus mean?

found means the account was returned. not_found means no account has that username or id. HTTP 200 only means the request finished, so branch on lookupStatus.
