API reference components
Parameters, response fields, badges and tables.
Four components for documenting an interface by hand. Pages generated from an OpenAPI spec use these too — hand-written and generated pages share one vocabulary.
ParamField
Section titled “ParamField”namestringrequiredThe parameter’s name. Required — this is the prop migrated content most often lacks.
typestringThe parameter’s type, as you want it displayed.
in"query" | "path" | "header" | "body" | "cookie"Where the parameter goes.
requiredbooleandefault: falseMarks the parameter as required.
defaultstringDefault value when the parameter is omitted.
deprecatedbooleandefault: falseMarks the parameter as deprecated.
placeholderstringExample value shown in the field.
dialect"reed" | "fern" | "mintlify"Per-element dialect override. Prefer the project-wide content.dialect setting.
<ParamField name="limit" type="integer" in="query" default="20"> Maximum number of results to return.</ParamField>If migrated MDX fails with DS-S03 complaining that name is missing, the file is
almost certainly written in another platform’s dialect where path doubles as the name.
Set content.dialect rather than rewriting every field.
ResponseField
Section titled “ResponseField”namestringrequiredThe field’s name.
typestringrequiredThe field’s type. Required here, unlike on ParamField.
defaultstringDefault value.
requiredbooleandefault: falseMarks the field as always present.
deprecatedbooleandefault: falseMarks the field as deprecated.
intent"info" | "note" | "tip" | "success" | "warning" | "error" | "launch" | "check"Colour treatment. Shares its vocabulary with Callout.
minimalbooleandefault: falseRenders without a filled background.
outlinedbooleandefault: falseRenders with a border.
Children: inline content — the badge’s text. Reed’s Badge takes its label as children
rather than as a text prop, and it accepts intent.
stickybooleandefault: falseKeeps the header row visible while scrolling.
searchablebooleandefault: falseAdds a filter input.
paginatebooleandefault: falseSplits rows into pages.
pageSizenumberdefault: 10Rows per page when pagination is on.
expandablebooleandefault: falseLets rows expand to reveal detail.
placeholderstringdefault: Search...Placeholder for the filter input.
One component covers sticky, searchable, paginated and expandable tables through boolean props, rather than a family of separate components. Plain markdown tables still work and remain the right choice for a handful of rows.