---
title: "The manifest-driven settings form (schema + current values)"
method: GET
path: "/v1/skill-installations/{installation_id}/config"
tags: ["skill-hub"]
---

# The manifest-driven settings form (schema + current values)

`GET /v1/skill-installations/{installation_id}/config`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/skill-installations/{installation_id}/config`
- Auth: HTTP bearer

The generic settings surface for one installation: the field schema projected from the pinned manifest's config_fields (what to render) + the install's active typed values (what to pre-fill). The dashboard renders friendly non-technical controls from this: no per-skill settings UI.

## Path parameters

- `installation_id` string, uuid, required

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

Successful Response

- SkillConfigResponse: The manifest-driven settings form for one installation: the field schema + the current values. ``fields`` is the projected ``config_fields`` schema (what to render); ``values`` is the install's active typed ``config_json`` (what to pre-fill). ``status_code`` lets the form gate the activate control (an admin can't take a skill live until the required fields are set; the backend also enforces this on activation).
  - `installation_id` string, uuid, required
  - `config_version` integer, required
  - `status_code` string, required
  - `fields` ConfigFieldSchema[], required
    - `key` string, required
    - `type` string, required
    - `label` string, required
    - `description` string, nullable
    - `group` string, nullable
    - `required` boolean
    - `default` unknown
    - `options` ConfigFieldOptionSchema[]
      - `value` string, required
      - `label` string, required
    - `minimum` integer, nullable
    - `maximum` integer, nullable
    - `unit` string, nullable
    - `placeholder` string, nullable
  - `values` object, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error

---

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