Pebble Appstore API

RESTful API for accessing Pebble watchfaces and apps

Upload and manage your Pebble apps

Public Archive Available

A freely available public archive of Pebble apps and watchfaces hosted on this appstore feed is available at archive.org/details/pebble-appstore-archive

The archive contains 100 zip files (pebble-apps-batch-000.zip through pebble-apps-batch-099.zip), each containing ~150 apps with metadata, icons, screenshots, and PBW files. A daily backup syncs any updated apps to the affected batch files.

Base URL

https://appstore-api.repebble.com

Common Query Parameters

hardware

Platform filter: aplite, basalt, chalk, diorite, emery, flint
Default: basalt

limit

Number of results per page (max 100)
Default: 20

offset

Pagination offset
Default: 0

sort

Sort order: hearts, updated
Default: updated

API Endpoints

GET/api/v1/apps/id/{id}

Get a specific app by ID

curl "https://appstore-api.repebble.com/api/v1/apps/id/52f52af23f5d4600c5000946?hardware=basalt"
Example Response
{
  "data": [{
    "author": "legend",
    "capabilities": [],
    "category": "Faces",
    "category_id": "528d3ef2dc7b5f580700000a",
    "compatibility": {
      "aplite": { "supported": true, "firmware": { "major": 3 } },
      "basalt": { "supported": true, "firmware": { "major": 3 } },
      ...
    },
    "hardware_platforms": [
      {
        "sdk_version": null,
        "pebble_process_info_flags": null,
        "name": "aplite",
        "description": "Chinese Calendar",
        "images": { "icon": "...", "list": "...", "screenshot": "..." }
      },
      ...
    ],
    "description": "Chinese Calendar",
    "hearts": 115,
    "id": "52f52af23f5d4600c5000946",
    "latest_release": {
      "id": "52f52b2814d68cdfe900090c",
      "pbw_file": "https://...",
      "version": "1.0.0"
    },
    "list_image": { "144x144": "...", "80x80": "..." },
    "screenshot_images": [{ "144x168": "..." }],
    "title": "农历 Chinese Calendar",
    "type": "watchface",
    "uuid": "024f4029-2cb8-472e-8419-64c0694c82bb"
  }],
  "limit": 1,
  "offset": 0,
  "links": { "nextPage": null }
}
POST/api/v1/apps/bulk

Get multiple apps by IDs in a single request (max 500 IDs)

Request Body (JSON):

ids: string[]hardware?: string

Response:

Returns data (array of apps) and missing (array of unfound IDs)

curl -X POST "https://appstore-api.repebble.com/api/v1/apps/bulk" \
-H "Content-Type: application/json" \
-d '{"ids": ["52f52af23f5d4600c5000946", "5299cdf7e627ce114700006f"], "hardware": "basalt"}'
Example Response
{
  "data": [
    { "id": "52f52af23f5d4600c5000946", "title": "农历 Chinese Calendar", ... },
    { "id": "5299cdf7e627ce114700006f", "title": "Another App", ... }
  ],
  "missing": ["invalid-id-here"]
}
GET/api/v1/apps/dev/{developerId}

Get all apps by a specific developer

Parameters:

hardwarelimitoffsetsort
curl "https://appstore-api.repebble.com/api/v1/apps/dev/52aa4bf57314cae60a000004?hardware=basalt&limit=20"
Example Response
{
  "data": [
    { "id": "...", "title": "App 1", "author": "Developer Name", ... },
    { "id": "...", "title": "App 2", "author": "Developer Name", ... }
  ],
  "limit": 20,
  "offset": 0,
  "links": { "nextPage": "/api/v1/apps/dev/...?limit=20&offset=20" }
}
GET/api/v1/apps/category/{slug}

Get all apps in a category

Parameters:

hardwarelimitoffsetsort
curl "https://appstore-api.repebble.com/api/v1/apps/category/health-and-fitness?hardware=basalt&limit=20"
Example Response
{
  "data": [
    { "id": "...", "title": "Fitness App", "category": "Health & Fitness", ... },
    { "id": "...", "title": "Step Counter", "category": "Health & Fitness", ... }
  ],
  "limit": 20,
  "offset": 0,
  "links": { "nextPage": "/api/v1/apps/category/health-and-fitness?limit=20&offset=20" }
}
GET/api/v1/apps/collection/{slug}/{typeString}

Get apps from a collection

Collection Slugs:

  • most-loved - Most hearted apps
  • all - All apps
  • all-generated - Generated watchfaces

Type Strings:

  • watchfaces
  • watchapps-and-companions

Parameters:

hardwarelimitoffset
curl "https://appstore-api.repebble.com/api/v1/apps/collection/most-loved/watchfaces?hardware=basalt&limit=20"
curl "https://appstore-api.repebble.com/api/v1/apps/collection/all/watchapps-and-companions?hardware=basalt"
Example Response
{
  "data": [
    { "id": "...", "title": "Popular Watchface", "hearts": 1234, ... },
    { "id": "...", "title": "Another Favorite", "hearts": 987, ... }
  ],
  "limit": 20,
  "offset": 0,
  "links": { "nextPage": "/api/v1/apps/collection/most-loved/watchfaces?limit=20&offset=20" }
}
GET/api/v1/home/{typeString}

Get home page data including banners, categories, collections, and featured apps

Type Strings:

watchfaceswatchapps-and-companionsall

Parameters:

hardwarelimitoffset
curl "https://appstore-api.repebble.com/api/v1/home/watchfaces?hardware=basalt"
curl "https://appstore-api.repebble.com/api/v1/home/watchapps-and-companions?hardware=basalt"
Example Response
{
  "banners": [],
  "categories": [
    { "id": "...", "name": "Faces", "slug": "faces", "color": "ffffff" },
    { "id": "...", "name": "Tools & Utilities", "slug": "tools-and-utilities", "color": "..." }
  ],
  "collections": [
    {
      "slug": "most-loved",
      "name": "Most Loved",
      "application_ids": ["...", "..."],
      "links": { "apps": "/api/v1/apps/collection/most-loved/watchfaces" }
    }
  ],
  "data": [
    { "id": "...", "title": "Featured App", ... }
  ],
  "limit": 20,
  "offset": 0,
  "links": { "nextPage": null }
}

Copyright and Complaints

For copyright infringement claims, content removal requests, or other complaints regarding apps or content hosted on this platform, please contact us at appstore@repebble.com. We will review and respond to all legitimate requests in a timely manner.