BSD Ports

daemonports API

The ports trees of the BSDs as JSON.

Every page of daemonports.org that has data has an index.json beside its index.html, with the same path: /www/nginx/ is the page, /www/nginx/index.json the API. The files are static, rebuilt with the site every 30 minutes, so a request costs the server what a page does; cache them, and send If-None-Match (nginx answers with an ETag).

FreeBSD's pages are at the site root (/www/nginx/), every other system's under its own path (/openbsd/www/nginx/). A FreeBSD port and another system's category therefore have paths of the same shape (/www/nginx/, /openbsd/www/); kind in the answer says which it is.

Version 1 only grows: fields are added, never renamed or dropped. A field the data lacks is null, never absent. Search is mddb's own API, which the site's search page calls.

Version 1 · OpenAPI 3.1.0

Servers

  • / — This site
  • https://daemonports.org — Production

Endpoints

Index — Where to start, the systems and what is new.

Method Path Summary
GET /index.json The systems, new ports and the latest vulnerabilities

Ports — One port of one system, with the same software in the others.

Method Path Summary
GET /{category}/{port}/index.json A FreeBSD port, or a category of another system
GET /{system}/{category}/{port}/index.json A port of a system other than FreeBSD

Compare — One piece of software across every system that packages it.

Method Path Summary
GET /compare/{name}/index.json One piece of software in every system that has it
GET /freshness/index.json How far behind each system's ports are
GET /freshness/{system}/index.json One system's ports by how long they have been behind

Browse — Systems and their categories.

Method Path Summary
GET /{category}/{port}/index.json A FreeBSD port, or a category of another system
GET /{section}/index.json A system other than FreeBSD, or a FreeBSD category

Search — Full-text search and suggestions, answered by mddb.

Method Path Summary
POST /v1/fts Search the ports of every system
GET /v1/autocomplete Suggest port names as they are typed

Data types: Schemas.