---
title: "Get Component"
method: GET
path: "/v1/components/{name}"
tags: ["components"]
---

# Get Component

`GET /v1/components/{name}`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/components/{name}`
- Auth: none declared

Get details of a specific component by name.

## Path parameters

- `name` string, required

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Response `200`

Successful Response

- ComponentResponse: One component as `/v1/components/metadata` serves it. This model IS the browser's registry: `stores/strategy-builder.ts` fetches the metadata endpoint into `RegistryMetadata`, and every client-side validation pass reads its `ComponentMeta` fields. A field the generated fixture registry carries but this model omits is therefore not "missing from an API" — it silently disables whatever browser check consumes it, while the TS parity tests (which load the fixture registry) stay green. That is exactly how the J-COMPOSER role family and the A1 domain synthesis shipped inert (Q-1292). So: any key `generate_registry_metadata()` emits either appears here in the SAME shape, or is listed as a deliberate omission in `tests/test_components.py::TestRegistryWireParity` — which fails when a new generated key appears in neither place.
  - `name` string, required
  - `category` string, required
  - `sub_category` string, nullable
  - `description` string
  - `usage_hint` string
  - `input_type` string, required
  - `output_type` string, required
  - `deterministic` boolean
  - `parameters` ComponentParameterResponse[]
    - `name` string, required
    - `type` string, required
    - `type_structure` object, nullable
    - `default` unknown
    - `required` boolean, required
    - `description` string
    - `suggestions` unknown[]
      - unknown
    - `optimizable` boolean
    - `constraints` object
    - `tier` string
    - `slot_reference` boolean
    - `expected_slot_type` string, nullable
    - `expected_slot_domain` object, nullable
  - `implicit_slot_reads` string[]
  - `param_constraints` ComponentParameterConstraint[]
    - `params` string[], nullable
    - `rule` string, required
    - `when` object, nullable
    - `params_dict` string, nullable
    - `value` number, nullable
    - `tolerance` number, nullable
  - `declaration_refs` object, nullable
  - `optional_declaration_refs` object, nullable
  - `population_scope` object, nullable
  - `composer_inputs` union
    - object
    - string
    - string[]
  - `type_relation` object, nullable
  - `domain_transfer` object, nullable
  - `input_domain` unknown
  - `output_domain` unknown
  - `latest` integer
  - `version` integer
  - `status` string
  - `not_runnable` string, nullable
  - `replacement` string, nullable
  - `binding` object, nullable
  - `trade_safe` object, nullable
  - `preserves_size` boolean, nullable
  - `causal` boolean, nullable
  - `factory_expansion` unknown[], nullable
    - unknown
  - `known_issue` object, nullable
  - `replacement_shape` object, nullable
  - `changelog` object
  - `versions` object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usekeel/apis/keel-api.md) · [All operations](https://skmtc.dev/usekeel/apis/keel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usekeel/apis/keel-api/revisions/3191ca10b0ab?raw)
