Zed Extension Badges

All endpoints. Badges are rendered per request. Freshness is about 5 minutes end to end.

Extension badges

Drop an extension id in the URL and embed it anywhere. The card matches zed.dev's own extension list; the flat style is rendered by shields' badge-maker.

badge examplebadge example
/extension/<id>.svgcard badge: Zed logo, name, download count, description, author line
/extension/<id>.svg?style=flatthin shields style badge
/extension/<id>.svg?metric=versionversion instead of downloads
/extension/<id>.jsonraw Zed API metadata (not a badge)
<id> is the id from the extension's extension.toml.

Author badges

One badge for everything you published: total downloads and extension count.

badge example
/author/<name>.svgcard badge: @name, total downloads, extension count
/author/<name>.svg?style=flatthin variant
/author/<name>.jsonraw stats: { name, extensions, downloads, ids }
<name> matches the name part of authors in extension.toml, case insensitive (email ignored). The upstream API has no user endpoint, so stats aggregate over the full extension index (cached 10 min).

Custom badges

Your text, same look. No upstream data involved.

badge examplebadge example
/custom.svg?message=...card badge with your own text
/custom.svg?label=...&message=...&style=flatthin variant, label left and message right
Extras: right= (top right value), meta= (gray author line). Each text field caps at 48 chars.

shields.io endpoints

Prefer shields' own styling? These return endpoint JSON for img.shields.io/endpoint.

/downloads/<id>.jsonhumanized count (957, 12k, 1.2M)
/downloads-raw/<id>.jsonfull count with commas (1,234)
/version/<id>.jsonversion
![Zed downloads](https://img.shields.io/endpoint?url=<encoded URL of /downloads/<id>.json>)
shields enforces a cache of at least 5 minutes on its own.

Query options

theme=light for the cream card, auto to follow the viewer's dark mode via a media query inside the SVG (GitHub supports this). Default is dark, card only.
label=override the title (card) or left label (flat)
prefix= / suffix=custom text around the number, replacing the description: prefix=Thanks+for&suffix=downloading! renders "Thanks for 12.2k downloading!" (spacing added automatically, max 48 chars each)
raw=1full count with commas (1,234) instead of 1.2k or 1.2M
color=flat badge value color (default Zed brand blue)
logo=0remove the logo (flat only)

Errors

Unknown ID or name renders a red not found badge. Upstream outages render a grey unavailable badge (never cached). Your README never shows a broken image.

badge example