Skip to main content

Header

Declare a header parameter for a path operation. Header parameters are extracted from HTTP request headers.

Signature

Parameters

Any
default:"Undefined"
Default value if the parameter field is not set.
bool
default:"True"
Automatically convert underscores to hyphens in the parameter field name. For example, user_agent becomes user-agent.
str | None
default:"None"
An alternative name for the parameter field. This will be used to extract the data and for the generated OpenAPI.
str | None
default:"None"
Human-readable title for the parameter.
str | None
default:"None"
Human-readable description for the parameter.
float | None
default:"None"
Greater than validation. If set, the value must be greater than this. Only applicable to numbers.
float | None
default:"None"
Greater than or equal validation. If set, the value must be greater than or equal to this. Only applicable to numbers.
float | None
default:"None"
Less than validation. If set, the value must be less than this. Only applicable to numbers.
float | None
default:"None"
Less than or equal validation. If set, the value must be less than or equal to this. Only applicable to numbers.
int | None
default:"None"
Minimum length for strings.
int | None
default:"None"
Maximum length for strings.
str | None
default:"None"
RegEx pattern for strings.
str | None
default:"None"
Parameter field name for discriminating the type in a tagged union.
bool | None
default:"None"
If True, strict validation is applied to the field.
float | None
default:"None"
Value must be a multiple of this. Only applicable to numbers.
bool | None
default:"None"
Allow inf, -inf, nan. Only applicable to numbers.
int | None
default:"None"
Maximum number of allowed digits for numbers.
int | None
default:"None"
Maximum number of decimal places allowed for numbers.
list[Any] | None
default:"None"
Example values for this field.
bool | str | None
default:"None"
Mark this parameter field as deprecated. It will affect the generated OpenAPI (visible at /docs).
bool
default:"True"
Whether to include this parameter field in the generated OpenAPI.
dict[str, Any] | None
default:"None"
Any additional JSON schema data.

Examples

Basic Header Parameter

By default, user_agent will automatically be converted to User-Agent when reading from headers due to convert_underscores=True.

Disable Automatic Conversion

Required Header

A header parameter is required when there is no default value.

Multiple Header Values

This allows receiving multiple headers with the same name. For example, multiple X-Token headers.

Header with Validation

Custom Header Name with Alias

Use alias when you want to use a different variable name in Python than the actual header name.

Common Use Cases

Authentication Token

Content Type

Custom Headers

Header names are case-insensitive according to the HTTP specification, but FastAPI will convert them for consistency.