# Parameter and Expandable

`Parameter` renders the name/type/description row used throughout API reference content; `Expandable` wraps a nested set of them behind a "Show/Hide" toggle for a nested object's own properties — the same pattern used on this site's own OpenAPI-generated pages:

<Parameter name="user" type="User Object">
  <Expandable title="properties">
    <Parameter name="full_name" type="string">
      The full name of the user
    </Parameter>
    <Parameter name="is_over_21" type="boolean">
      Whether the user is over 21 years old
    </Parameter>
  </Expandable>
</Parameter>

```mdx
<Parameter name="user" type="User Object">
  <Expandable title="properties">
    <Parameter name="full_name" type="string">
      The full name of the user
    </Parameter>
    <Parameter name="is_over_21" type="boolean">
      Whether the user is over 21 years old
    </Parameter>
  </Expandable>
</Parameter>
```

Every field table across this documentation (`writedocs.json`'s own configuration pages included) is written with `Parameter` rather than a plain Markdown table — the same reason it exists here: a name, an optional type badge, an optional "required"/"default" label, and a description that can hold more than a single table cell's worth of prose.

**`Parameter` props**

<Parameter name="name" type="string" required />

<Parameter name="type" type="string">
  Omit to render with no type badge.
</Parameter>

<Parameter name="required" type="boolean">
  Shows a red "required" label.
</Parameter>

<Parameter name="default" type="any">
  Shows a "default: ..." label. Any value works, including `default={10}` or `default={false}`.
</Parameter>

<Parameter name="deprecated" type="boolean">
  Shows an amber "deprecated" label and strikes the name through.
</Parameter>

<Parameter name="pre" type="string[]">
  Extra labels shown before the name, e.g. `pre={["readonly"]}`.
</Parameter>

<Parameter name="post" type="string[]">
  Extra labels shown after the badges.
</Parameter>

`<ParamField>` and `<ResponseField>` are the same row under Mintlify's names, with the same props. `ParamField` also takes the name from Mintlify's location props: `<ParamField path="id">`, `query="limit"`, `body="email"`, or `header="Authorization"`.

**`Expandable` props**

<Parameter name="title" type="string" default='"properties"' />

<Parameter name="defaultOpen" type="boolean" default="true" />