Skip to main content

Header

This class defines a parameter to be extracted from HTTP request headers, supporting validation, documentation, and metadata configuration. It extends the base parameter functionality with specific support for automatic underscore-to-hyphen conversion and OpenAPI schema integration. Users can specify constraints such as length, patterns, and default values for header-based data extraction.

Attributes

AttributeTypeDescription
in_[ParamTypes](paramtypes.md?sid=fastapi_params_paramtypes) = ParamTypes.headerThe location of the parameter in the request, which is fixed to the header for this class.
convert_underscoresbool = TrueWhether to automatically convert underscores in the attribute name to hyphens when looking up the header value.

Constructor

Signature

def Header(
default: Any = Undefined,
default_factory: Callable[[], Any]| None = _Unset,
annotation: Any | None = None,
alias: str | None = None,
alias_priority: int | None = _Unset,
validation_alias: str | AliasPath | AliasChoices | None = None,
serialization_alias: str | None = None,
convert_underscores: bool = True,
title: str | None = None,
description: str | None = None,
gt: float | None = None,
ge: float | None = None,
lt: float | None = None,
le: float | None = None,
min_length: int | None = None,
max_length: int | None = None,
pattern: str | None = None,
regex: str | None = None,
discriminator: str | None = None,
strict: bool | None = _Unset,
multiple_of: float | None = _Unset,
allow_inf_nan: bool | None = _Unset,
max_digits: int | None = _Unset,
decimal_places: int | None = _Unset,
examples: list[Any]| None = None,
example: Any | None = _Unset,
openapi_examples: dict[str, [Example](../openapi/models/example.md?sid=fastapi_openapi_models_example)]| None = None,
deprecated: deprecated | str | bool | None = None,
include_in_schema: bool = True,
json_schema_extra: dict[str, Any]| None = None,
**extra: Any
) - > null

Parameters

NameTypeDescription
defaultAny = UndefinedThe default value for the header.
default_factory`Callable[[], Any]None` = _Unset
annotation`AnyNone` = None
alias`strNone` = None
alias_priority`intNone` = _Unset
validation_alias`strAliasPath
serialization_alias`strNone` = None
convert_underscoresbool = TrueWhether to automatically convert underscores to hyphens in the header name.
title`strNone` = None
description`strNone` = None
gt`floatNone` = None
ge`floatNone` = None
lt`floatNone` = None
le`floatNone` = None
min_length`intNone` = None
max_length`intNone` = None
pattern`strNone` = None
regex`strNone` = None
discriminator`strNone` = None
strict`boolNone` = _Unset
multiple_of`floatNone` = _Unset
allow_inf_nan`boolNone` = _Unset
max_digits`intNone` = _Unset
decimal_places`intNone` = _Unset
examples`list[Any]None` = None
example`AnyNone` = _Unset
openapi_examples`dict[str, Example]None` = None
deprecated`deprecatedstr
include_in_schemabool = TrueWhether to include this parameter in the generated OpenAPI schema.
json_schema_extra`dict[str, Any]None` = None
**extraAnyAdditional keyword arguments.

Signature

def Header(
default: Any = Undefined,
default_factory: Callable[[], Any]| None = _Unset,
annotation: Any | None = None,
alias: str | None = None,
alias_priority: int | None = _Unset,
validation_alias: str | AliasPath | AliasChoices | None = None,
serialization_alias: str | None = None,
convert_underscores: bool = True,
title: str | None = None,
description: str | None = None,
gt: float | None = None,
ge: float | None = None,
lt: float | None = None,
le: float | None = None,
min_length: int | None = None,
max_length: int | None = None,
pattern: str | None = None,
regex: str | None = None,
discriminator: str | None = None,
strict: bool | None = _Unset,
multiple_of: float | None = _Unset,
allow_inf_nan: bool | None = _Unset,
max_digits: int | None = _Unset,
decimal_places: int | None = _Unset,
examples: list[Any]| None = None,
example: Any | None = _Unset,
openapi_examples: dict[str, [Example](../openapi/models/example.md?sid=fastapi_openapi_models_example)]| None = None,
deprecated: deprecated | str | bool | None = None,
include_in_schema: bool = True,
json_schema_extra: dict[str, Any]| None = None,
extra: Any
) - > null

Parameters

NameTypeDescription
defaultAny = UndefinedThe default value for the header if it is not provided in the request.
default_factory`Callable[[], Any]None` = _Unset
annotation`AnyNone` = None
alias`strNone` = None
alias_priority`intNone` = _Unset
validation_alias`strAliasPath
serialization_alias`strNone` = None
convert_underscoresbool = TrueWhether to automatically convert underscores in the parameter name to hyphens (e.g., user_agent to User-Agent).
title`strNone` = None
description`strNone` = None
gt`floatNone` = None
ge`floatNone` = None
lt`floatNone` = None
le`floatNone` = None
min_length`intNone` = None
max_length`intNone` = None
pattern`strNone` = None
regex`strNone` = None
discriminator`strNone` = None
strict`boolNone` = _Unset
multiple_of`floatNone` = _Unset
allow_inf_nan`boolNone` = _Unset
max_digits`intNone` = _Unset
decimal_places`intNone` = _Unset
examples`list[Any]None` = None
example`AnyNone` = _Unset
openapi_examples`dict[str, Example]None` = None
deprecated`deprecatedstr
include_in_schemabool = TrueWhether this header should be visible in the generated OpenAPI schema.
json_schema_extra`dict[str, Any]None` = None
extraAnyAdditional keyword arguments passed to the underlying Pydantic model.