# Packages

> The Packages operations of the Hub REST API (1 operation).

URL: https://docs.synap.live/docs/reference/hub-api/packages · Generated from Synap-core/backend@c31e261ab (main)

Paths are relative to `/api/hub` on a pod.

## GET /installed

List everything installed on this pod, per kind

Unions the install ledgers that already exist — workspaces (package_slug + version stamp), capability containers (template_key + contentHash), the marketSource-linked view/skill/automation rows, and package cells (cell:<pkg>:<key> + version). Cheap by default: no network. Pass `drift=true` to additionally run the standalone dry-run reconcile, which costs one Control-Plane fetch per distinct package slug. `drift: null` on a row means NOT COMPUTED, never 'up to date'. Requires hub-protocol.read scope.

Parameters:

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `drift` | query | "true" \| "false" |  | Opt into the EXPENSIVE drift pass for view/skill/automation rows (one Control-Plane fetch per distinct package slug). Default false: drift is reported only where a local comparison can answer it. |
| `kind` | query | "workspace" \| "capability" \| "view" \| "skill" \| "automation" \| "cell" |  | Report only this kind. |

Responses:

- `200`: Installed rows
- `400`: Invalid query
- `403`: Forbidden
- `500`: Internal error
