---
title: "Owner-only metadata + storage key inventory"
method: GET
path: "/app/{id}/describe"
---

# Owner-only metadata + storage key inventory

`GET /app/{id}/describe`

## Request

- Base URL: `https://charm.ing`
- URL: `https://charm.ing/app/{id}/describe`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Returns the resolved app envelope (manifest, capabilities, revision), whether `ui`/`styles` are present, the persisted storage keys, and a machine-readable API summary so an agent can plan calls without reading the module source. Use a fresh `GET /app/{id}/source` response or ETag for write preconditions; a cached descriptor revision is informational.

## Response `200`

Metadata

- DescribeResponse
  - `id` string, uuid, required
  - `manifestId` string, required
  - `displayName` string, required
  - `revision` integer, required: Server-owned app source revision. New apps start at 1, each successful source write advances it once, and historical null counters project as 0. `If-Match: "<N>"` and `expected_revision` carry this revision through its canonical concurrency grammar.
  - `capabilities` Capabilities, required (unresolved $ref)
  - `ui` boolean, required
  - `styles` boolean, required
  - `claimed` boolean, required
  - `expiresAt` string, date-time, nullable, required
  - `api` object, required: Machine-readable app API summary for agents. Raw module source is intentionally omitted; operations are derived from manifest exports and literal /api/<operation> routes.
    - `baseUrl` string, uri, required
    - `operations` object[], required
      - `op` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
      - `path` string, required
      - `url` string, uri, required
      - `tool` 'query_app' | 'mutate_app', required: MCP tool to invoke this op: query_app for read-only, mutate_app otherwise.
      - `discoveredFrom` string[], required
      - `manifestExport` string
  - `storageKeys` string[], required

## Other responses

- `401`: Authentication required.
- `403`: Token does not authorize this app.
- `404`: App not found.

---

[API](https://skmtc.dev/charm/apis/charming-api.md) · [All operations](https://skmtc.dev/charm/apis/charming-api/llms.txt) · [OpenAPI document](https://skmtc.dev/charm/apis/charming-api/revisions/a9d06c419b3a?raw)
