Dev.to Profile API
Everything on a Dev.to profile: counts, badges, pinned posts and the repositories the user lists.
GET /v1/dev-to/user/profile1 credit Failed requests are free
About this endpoint
GET /v1/dev-to/user/profile?username=heyitsjem returns profile with postsPublished, commentsWritten and tagsFollowed, plus isSubscriber and isCommunityCurator. The same object carries badges, pinnedPosts, organizations and githubRepositories, each as a list, and the profile text fields work, education, skills, currentlyLearning, currentlyHackingOn, availableFor and pronouns. Each badge carries title, description, imageUrl and timesAwarded.
pinnedPosts is in the order the user chose and is empty when none are pinned. Each pinned post includes title, url, tags, reactionsCount, commentsCount, readingTimeMinutes and publishedAt. A profile Dev.to hides comes back as lookupStatus: found with listedOnSite: false and only the basic account fields, so check listedOnSite before relying on the counts.
Dev.to Profile API FAQ
What is listedOnSite?
It is true when Dev.to shows the profile page, false when the account exists but its page is hidden. On a hidden profile the counts, badges and pinned posts are null or empty, and lookupStatus is still found.
How many credits does a profile 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.
What does githubRepositories contain?
The public repositories the user chose to show, each with name, url, description, language and stars. It is not a full GitHub listing.
Why can a count be null?
Counts are optional on a Dev.to profile. A pinned post with no reaction or comment count returns 0, and a repository that shows a language but no star count returns 0. Null means the value was not available. Check for null before doing arithmetic.