Dribbble hub

Dribbble Services Search API

Search service listings with Dribbble's own filters and page through the cards as JSON.

GET /v1/dribbble/services/search

1 credit Failed requests are free

About this endpoint

GET /v1/dribbble/services/search takes the service filters: query, categories, budgetMin, budgetMax, location, minimumRating, duration, instantCheckout, proOnly, agenciesOnly and respondsQuickly. The response carries data.services, data.total and data.page.

Each service card has id, slug, path, url, title, owner, priceText, fromPriceAmount, currency, duration, description, imageUrl and imageUrls. budgetMin and budgetMax are whole US dollars, and the minimum must not exceed the maximum. minimumRating is in whole stars from 0 to 5, and any value limits results to services that have a rating. duration accepts P3D, P1W or P1M (and 3d, 1w, 1m); categories accepts the form labels Branding, Web Design, Illustration, App & Product Design, Animation & Motion Graphics, Typography and Print Design. A search card leaves duration and description null because the card does not show them; the service route returns both. Page sizes vary, with no limit parameter; page with page or with cursor from data.page.nextCursor. The site stops the walk at page 42; a later page is a public 400, not an empty result. An empty services array is a valid search result.

Dribbble Services Search API FAQ

Which filters can I combine?

Query, categories, a budget range in whole US dollars, location, a minimum rating in whole stars, duration and the instant checkout, Pro, agency and responds-quickly flags. Send categories as a comma list or repeated query values, using the form labels.

What does data.total mean?

It is the number of results Dribbble shows, 0 when there are none and null when it shows no total. A large total with cards on the page is normal even for an odd keyword.

How far can I page a service search?

The site caps the walk at page 42. Keep going while data.page.hasMore is true. A page past 42 is a public 400, so read page.totalPages where it is set.

How many credits does a service search page 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. Each paginated page is a separate billed request.