For developers and agents

# A small, read-only catalog API.

The Plugins API exposes the public catalog as JSON. It is intended for discovery and linking: it does not run tools, accept submissions, change catalog records or provide access to private data. Requests need no account, API key or authentication. There is no separate sandbox; examples below call the same read-only public endpoints.

## Catalog endpoints

-   `GET` or `HEAD /api` and `/api/v1` return a catalog object with `publisher`, `tools`, `articles` and `links`.
-   `GET` or `HEAD /api/v1/tools` returns the tools list. Add `?type=npm-package`, `?type=browser-extension` or `?type=editor-extension` to filter by the listed type.
-   `GET` or `HEAD /api/v1/tools/{slug}` returns the exact matching tool record. Use a catalog slug; an unknown slug returns 404.
-   `GET` or `HEAD /api/v1/articles` returns article metadata. Add `?tool={catalogSlug}` to limit articles to one catalog tool.
-   `GET` or `HEAD /health` returns a JSON health response.
-   `GET` or `HEAD /openapi.json` returns the typed OpenAPI 3.1 description.

## Examples

```
curl -i https://plugins.brownsmithdynamics.com/api/v1
curl -i 'https://plugins.brownsmithdynamics.com/api/v1/tools?type=npm-package'
curl -i https://plugins.brownsmithdynamics.com/api/v1/tools/page-qr
curl -i 'https://plugins.brownsmithdynamics.com/api/v1/articles?tool=page-qr'
curl -i https://plugins.brownsmithdynamics.com/health
curl -i https://plugins.brownsmithdynamics.com/openapi.json
```

## Errors and content negotiation

Errors use `application/problem+json` following RFC 9457, with a stable `code` field for resolution. Invalid query values return 400, unknown routes or slugs return 404, and unsupported methods return 405 with an `Allow: GET, HEAD` header. Canonical content pages support `Accept: text/markdown`; the response varies on `Accept`, and ordinary browser requests continue to receive HTML.

The API is read-only: it has no write operations, API keys, file-processing service or library execution. To use a package or extension, follow its own source and installation documentation. See the [agent usage notes](https://plugins.brownsmithdynamics.com/llms.txt) for tool-by-tool discovery guidance.

---

[HTML page](https://plugins.brownsmithdynamics.com/developers/) · [Developer documentation](https://plugins.brownsmithdynamics.com/developers/) · [Agent instructions](https://plugins.brownsmithdynamics.com/llms.txt)
