# PersonRegisterRequest

Model ID: `person.RegisterRequest`

Request body for POST /auth/register. Same required/optional field set
PersonRegistrationService.register() reads from the payload
(hc/services/person/registration_service.py). The Cognito role is always
'person' — never accepted from the client payload.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `address` | `object` | No |  |  |  | No | Postal address, optional. Same shape as Address (street1, city, state, zip_code, country, ...). |
| `attributes` | `object` | No |  |  |  | No | Arbitrary JSON-compatible metadata stored on the initial FHIR Person resource. |
| `date_of_birth` | `string` | No | date |  |  | No | ISO 8601 date (YYYY-MM-DD), optional. |
| `email` | `string` | Yes | email |  |  | No | Person's email; used as the Cognito login username and OTP delivery address. |
| `first_name` | `string` | Yes |  |  |  | No | Person's given name. |
| `gender` | [`PersonGender`](./PersonGender.md) | No |  |  |  | No | Administrative gender, optional. Defaults to 'unknown' if omitted or unrecognized. |
| `last_name` | `string` | Yes |  |  |  | No | Person's family name. |
| `password` | `string` | Yes |  |  |  | No | Initial password, minimum 8 characters. |
| `person_type` | `string` | Yes |  |  |  | No | Application-defined role for this identity, e.g. 'family_member', 'caregiver'. |
| `phone` | `string` | No |  |  |  | No | E.164 phone number, optional. |
| `race` | `string|array` | No |  |  |  | No | One race value, or a list of them, optional. |
| `relationship` | [`PersonRelationship`](./PersonRelationship.md) | No |  |  | `"self"` | No | Relationship to the linked patient(s). Defaults to 'self'. |
| `tenant_id` | `string` | No |  |  |  | No | Tenant to register the person into; resolves which Cognito pool the account is created in. |

## Example

None declared in canonical OpenAPI.
