Dribbble API βββeta

This is a first draft. The API is subject to change. When we have a stable release, we'll announce it. We plan to expand the read-only operations below and eventually add write operations (e.g. publishing a shot).

Comments, questions and feedback can be posted on the API Feedback page.

Overview

All API access is over HTTP. All responses are returned as JSON. The API is (mostly) RESTful.

API calls are limited to 60 per minute. We may change the limit or require a user key in the future. Exceeding the limit will result in "access denied" errors.

Before you get started, please read our API rules.

GET /shots/:id

Returns details for a shot specified by :id.

Example

$ curl http://api.dribbble.com/shots/21603
---
{
  "id": 21603,
  "title": "Moon",
  "url": "http://dribbble.com/shots/21603-Moon",
  "image_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082.png",
  "image_teaser_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082_teaser.png",
  "width": 400,
  "height": 300,
  "views_count": 1693,
  "likes_count": 15,
  "comments_count": 4,
  "rebounds_count": 0,
  "created_at": "2010/05/21 16:34:42 -0400",
  "player": {
    "id": 1,
    "name": "Dan Cederholm",
    "url": "http://dribbble.com/players/simplebits",
    "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
    "location": "Salem, MA",
    "twitter_screen_name": "simplebits",
    "drafted_by_player_id": null,
    "shots_count": 147,
    "draftees_count": 103,
    "followers_count": 2027,
    "following_count": 354,
    "created_at": "2009/07/07 21:51:22 -0400"
  }
}

GET /shots/:list

Returns the specified list of shots where :list has one of the following values: debuts, everyone, popular

Parameters: Supports pagination

Example

$ curl http://api.dribbble.com/shots/everyone
---
{
  "page": 1,
  "pages": 50,
  "per_page": 15,
  "total": 750,
  "shots": [
    {
      "id": 21603,
      "title": "Moon",
      "url": "http://dribbble.com/shots/21603-Moon",
      "image_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082.png",
      "image_teaser_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082_teaser.png",
      "width": 400,
      "height": 300,
      "views_count": 1693,
      "likes_count": 15,
      "comments_count": 4,
      "rebounds_count": 0,
      "created_at": "2010/05/21 16:34:42 -0400",
      "player": {
        "id": 1,
        "name": "Dan Cederholm",
        "url": "http://dribbble.com/players/simplebits",
        "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
        "location": "Salem, MA",
        "twitter_screen_name": "simplebits",
        "drafted_by_player_id": null,
        "shots_count": 147,
        "draftees_count": 103,
        "followers_count": 2027,
        "following_count": 354,
        "created_at": "2009/07/07 21:51:22 -0400"
      }
    },
    ...
  ]
}

GET /players/:id/shots

Returns the most recent shots for the player specified by :id.

Parameters: Supports pagination

Example

$ curl http://api.dribbble.com/players/simplebits/shots
---
{
  "page": 1,
  "pages": 50,
  "per_page": 15,
  "total": 750,
  "shots": [
    {
      "id": 21603,
      "title": "Moon",
      "url": "http://dribbble.com/shots/21603-Moon",
      "image_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082.png",
      "image_teaser_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082_teaser.png",
      "width": 400,
      "height": 300,
      "views_count": 1693,
      "likes_count": 15,
      "comments_count": 4,
      "rebounds_count": 0,
      "created_at": "2010/05/21 16:34:42 -0400",
      "player": {
        "id": 1,
        "name": "Dan Cederholm",
        "url": "http://dribbble.com/players/simplebits",
        "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
        "location": "Salem, MA",
        "twitter_screen_name": "simplebits",
        "drafted_by_player_id": null,
        "shots_count": 147,
        "draftees_count": 103,
        "followers_count": 2027,
        "following_count": 354,
        "created_at": "2009/07/07 21:51:22 -0400"
      }
    },
    ...
  ]
}

GET /players/:id/shots/following

Returns the most recent shots published by those the player specified by :id is following.

Parameters: Supports pagination

Example

$ curl http://api.dribbble.com/players/frogandcode/shots/following
---
{
  "page": 1,
  "pages": 50,
  "per_page": 15,
  "total": 750,
  "shots": [
    {
      "id": 21603,
      "title": "Moon",
      "url": "http://dribbble.com/shots/21603-Moon",
      "image_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082.png",
      "image_teaser_url": "http://dribbble.com/system/users/1/screenshots/21603/shot_1274474082_teaser.png",
      "width": 400,
      "height": 300,
      "views_count": 1693,
      "likes_count": 15,
      "comments_count": 4,
      "rebounds_count": 0,
      "created_at": "2010/05/21 16:34:42 -0400",
      "player": {
        "id": 1,
        "name": "Dan Cederholm",
        "url": "http://dribbble.com/players/simplebits",
        "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
        "location": "Salem, MA",
        "twitter_screen_name": "simplebits",
        "drafted_by_player_id": null,
        "shots_count": 147,
        "draftees_count": 103,
        "followers_count": 2027,
        "following_count": 354,
        "created_at": "2009/07/07 21:51:22 -0400"
      }
    },
    ...
  ]
}

GET /players/:id

Returns profile details for a player specified by :id.

Example

$ curl http://api.dribbble.com/players/simplebits
---
{
  "id": 1,
  "name": "Dan Cederholm",
  "url": "http://dribbble.com/players/simplebits",
  "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
  "location": "Salem, MA",
  "twitter_screen_name": "simplebits",
  "drafted_by_player_id": null,
  "shots_count": 147,
  "draftees_count": 103,
  "followers_count": 2027,
  "following_count": 354,
  "created_at": "2009/07/07 21:51:22 -0400"
}

GET /players/:id/followers

Returns the list of followers for a player specified by :id.

Example

$ curl http://api.dribbble.com/players/simplebits/followers
---
{
  "page": 1,
  "pages": 100,
  "per_page": 15,
  "total": 1500,
  "players": [
    {
      "id": 2,
      "name": "Rich Thornett",
      "url": "http://dribbble.com/players/frogandcode",
      "avatar_url": "http://dribbble.com/system/users/2/avatars/thumb/headshot.jpg",
      "location": "Salem, MA",
      "twitter_screen_name": "frogandcode",
      "drafted_by_player_id": 1,
      "shots_count": 10,
      "draftees_count": 36,
      "followers_count": 254,
      "following_count": 309,
      "created_at": "2009/07/07 21:51:50 -0400"
    },
    ...
  ]
}

GET /players/:id/following

Returns the list of players followed by the player specified by :id.

Example

$ curl http://api.dribbble.com/players/simplebits/following
---
{
  "page": 1,
  "pages": 100,
  "per_page": 15,
  "total": 1500,
  "players": [
    {
      "id": 2,
      "name": "Rich Thornett",
      "url": "http://dribbble.com/players/frogandcode",
      "avatar_url": "http://dribbble.com/system/users/2/avatars/thumb/headshot.jpg",
      "location": "Salem, MA",
      "twitter_screen_name": "frogandcode",
      "drafted_by_player_id": 1,
      "shots_count": 10,
      "draftees_count": 36,
      "followers_count": 254,
      "following_count": 309,
      "created_at": "2009/07/07 21:51:50 -0400"
    },
    ...
  ]
}

GET /players/:id/draftees

Returns the list of players drafted by the player specified by :id.

Example

$ curl http://api.dribbble.com/players/simplebits/draftees
---
{
  "page": 1,
  "pages": 100,
  "per_page": 15,
  "total": 1500,
  "players": [
    {
      "id": 2,
      "name": "Rich Thornett",
      "url": "http://dribbble.com/players/frogandcode",
      "avatar_url": "http://dribbble.com/system/users/2/avatars/thumb/headshot.jpg",
      "location": "Salem, MA",
      "twitter_screen_name": "frogandcode",
      "drafted_by_player_id": 1,
      "shots_count": 10,
      "draftees_count": 36,
      "followers_count": 254,
      "following_count": 309,
      "created_at": "2009/07/07 21:51:50 -0400"
    },
    ...
  ]
}

Values for :id in /players/:id

Where a path contains /players/:id to specify a player, :id may be a player id or username, e.g. '1' or 'simplebits'.

Pagination

API calls that return a pageable list share standard paging parameters. Paging may be limited, both in the total number of pages and the number of results per page.

Parameters

page
[optional] Page of results to retrieve.
per_page
[optional] Number of results retrieved per page. Maximum value allowed is currently 30. Default value returned is 15.

JSONP

JSONP is supported. Simply send a :callback parameter naming a function to which the json data is passed.

Parameters

callback
[optional] Name of function call in which to wrap the json data.

Example

$ curl http://api.dribbble.com/players/simplebits?callback=dishAndSwish
---
dishAndSwish({
  "id": 1,
  "name": "Dan Cederholm",
  "url": "http://dribbble.com/players/simplebits",
  "avatar_url": "http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg",
  "location": "Salem, MA",
  "twitter_screen_name": "simplebits",
  "drafted_by_player_id": null,
  "shots_count": 147,
  "draftees_count": 103,
  "followers_count": 2027,
  "following_count": 354,
  "created_at": "2009/07/07 21:51:22 -0400"
})

Rules

Our team of lawyers has taken the summer off. Fortunately, we happen to like Twitter's API terms quite a bit - our intentions and values are similar to theirs. So to get a sense of how the Dribbble API may (and may not) be used, it would help to review their excellent Developer Rules of the Road.

Having said that, here's the abridged rule book:

  • If you're using Dribbble data or content, you're acting as our partner. Be a good partner.
  • Don't abuse the API or use it excessively. If you're unsure whether your planned use of the API is excessive, ask us.
  • Don't use the name Dribbble or Dribbble artwork in your application. Riffs and references are welcome, but be unique in your branding. (Note: We have plans to publish artwork that CAN be used to link to and promote your account on Dribbble.)