Skip to content
DappStoreSign in
Developers

Marketplace API

Read-only JSON endpoints for embedding DappStore search and listings in your own site. CORS is open for these endpoints; they never use cookies.

EndpointAuthDescription
GET/api/appsPublicList published apps. Query: category, chain, price (free|freemium|paid), type, verified=1, rating (3|4|4.5), tag, sort (trending|popular|newest|updated|rating|name), page, pageSize (≤60).
GET/api/apps/{id-or-slug}PublicOne published app with chains, tags, screenshots, versions, permissions and trust labels.
GET/api/apps/{id}/reviewsPublicPublished reviews. Query: sort (helpful|newest|highest|lowest), page, pageSize (≤50).
GET/api/searchPublicNatural-language search with synonyms and chain/category intent. Query: q plus the /api/apps filters, sort=relevance.
GET/api/search/suggestPublicTypeahead suggestions (apps, categories, developers, tags). Query: q.
GET/api/categoriesPublicAll categories with published app counts.
GET/api/developers/{username}PublicPublic developer profile and their published apps.

Example

curl "https://YOUR-DAPPSTORE/api/search?q=monitor+whale+wallets&pageSize=5"

{
  "items": [{ "slug": "tidewatch", "name": "Tidewatch",
              "rating": 4.3, "trustLabels": ["dappstore_reviewed"], … }],
  "total": 36, "page": 1, "pageSize": 5, "pageCount": 8,
  "intent": { "chains": [], "categories": ["on-chain-analytics"] }
}

Rules

  • Rate limit: 300 requests per minute per IP (HTTP 429 with Retry-After when exceeded).
  • Errors use one shape: { "error": { "code", "message", "requestId", "details?" } }.
  • Listings marked isDemo are sample data; filter them out in production integrations.
  • Usage metrics (launches30d) count opens through DappStore only — not installs or users of the app.
  • API keys for higher limits are planned; the public endpoints will stay free.