Dribbble Story API
One Dribbble story as JSON: body, author, category, date and views.
GET /v1/dribbble/stories/{slug}1 credit Failed requests are free
About this endpoint
GET /v1/dribbble/stories/{slug} returns data.story with slug, path, url, storyId, title, description, imageUrl, author.handle, author.name, category.slug, category.name, publishedAt, views, bodyHtml and bodyText.
The slug is the story path after /stories/, for example 2026/10/31/ai-and-robotics-branding. In the URL the slashes are encoded as %2F; a full Dribbble story URL is also accepted. The body is returned as HTML and as readable text. A story that does not exist is lookupStatus: not_found with a null story.
Dribbble Story API FAQ
How do I get the story path?
Read data.stories[].path from GET /v1/dribbble/stories, or take it from the story URL. Pass the path as the slug parameter, with the slashes URL-encoded.
Does the story include the full body?
Yes. bodyHtml is the story body as markup and bodyText is the readable text. A story is never returned with an empty body; if the body is unavailable the request fails and is not charged.
Are view counts exact?
views is the number Dribbble shows on the story, or null when it shows none. The API does not estimate it.
How many credits does a story 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.
Other Dribbble endpoints
- ProfileGET /v1/dribbble/profiles/{handle}
- Profile shotsGET /v1/dribbble/profiles/{handle}/shots
- Team membersGET /v1/dribbble/profiles/{handle}/members
- ReviewsGET /v1/dribbble/profiles/{handle}/reviews
- Profile collectionsGET /v1/dribbble/profiles/{handle}/collections
- CollectionGET /v1/dribbble/profiles/{handle}/collections/{collectionId}
- Profile servicesGET /v1/dribbble/profiles/{handle}/services
- ServiceGET /v1/dribbble/services/{serviceId}