Skip to content

Catalog API

Query the plugin catalog as JSON from your own tools.

The catalog exposes the same query the listing page runs, as JSON, for tools that want to build on it. No API key, no locale prefix: plugin data is never translated, so one endpoint answers everyone.

GET /api/plugins?q=&category=&author=&web=1&sort=stars&page=1&per_page=50
Param Meaning
q Full-text search over name, description and README
category A tag from the catalog (the categories list on the site; the value is an npm keyword)
author A creator login across npm / GitHub / Gitee
web 1 to keep only plugins with a web UI
sort stars (default), recent, name
page 1-based page number, default 1
per_page 1–100, default 50

Response

{
  "total": 2307,
  "page": 1,
  "perPage": 50,
  "pages": 47,
  "plugins": [
    {
      "slug": "upstream-radar",
      "npmName": "upstream-radar",
      "name": "upstream-radar",
      "description": "watch upstream repos for new releases",
      "version": "0.1.0",
      "license": "MIT",
      "homepage": null,
      "totalStars": 12,
      "totalForks": 0,
      "hasWebUi": false,
      "publishedAt": "2026-08-20T07:17:36.155Z",
      "updatedAt": "2026-08-22T02:00:00.000Z",
      "tags": ["agent", "dsh"]
    }
  ]
}

totalStars is the sum across all source mirrors (a plugin published on both GitHub and Gitee counts both); tags are the package's npm keywords. There is no next/prev link object β€” compute them from page and pages.

Example

curl -s 'https://plugins.example.com/api/plugins?q=memory&sort=stars&per_page=10'

The catalog refreshes daily at 02:00 UTC, so numbers can lag a release by up to a day β€” the same schedule the site's listings follow.

Last updated 2026-08-22