# ProviderRegisterRequest

Model ID: `provider.RegisterRequest`

Request body for POST /auth/register. Same required/optional field set
PractitionerRegistrationService.register() reads from the payload
(hc/services/practitioner/registration_service.py). The Cognito role is
always 'practitioner' — never accepted from the client payload. Note the
collection field is ``specialty`` (not ``specialties``); sending
``specialties`` is rejected.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `address` | `object` | No |  |  |  | No | Practice or mailing address, optional. Same shape as Address (street1, city, state, zip_code, country, ...). |
| `date_of_birth` | `string` | No |  |  |  | No | ISO 8601 date of birth (YYYY-MM-DD), optional. |
| `department` | `string` | No |  |  |  | No | Department within the organization, optional. |
| `education_credentials` | array of [`ProviderEducationCredential`](./ProviderEducationCredential.md) | No |  |  |  | No | Degrees and education credentials held by this practitioner. Each entry may be a credential string (e.g. 'MD') or a full credential object. |
| `email` | `string` | Yes | email |  |  | No | Practitioner's email; used as the Cognito login username and OTP delivery address. |
| `first_name` | `string` | Yes |  |  |  | No | Practitioner's given name. |
| `gender` | [`ProviderGender`](./ProviderGender.md) | No |  |  |  | No | Administrative gender. Defaults to 'unknown' if omitted or unrecognized. |
| `insurances_accepted` | array of [`ProviderAcceptedInsurance`](./ProviderAcceptedInsurance.md) | No |  |  |  | No | Insurance payers this practitioner accepts. Each entry carries payer_id and payer_name. |
| `languages_spoken` | array of [`ProviderLanguage`](./ProviderLanguage.md) | No |  |  |  | No | Languages this practitioner can communicate with patients in. Each entry may be a BCP-47 language tag string or a full language object. |
| `last_name` | `string` | Yes |  |  |  | No | Practitioner's family name. |
| `npi` | `string` | No |  |  |  | No | 10-digit National Provider Identifier, optional. |
| `organization` | `string` | No |  |  |  | No | Display name of the affiliated organization, optional. |
| `password` | `string` | Yes |  |  |  | No | Initial password, minimum 8 characters. |
| `phone` | `string` | No |  |  |  | No | E.164 phone number, optional. |
| `race` | `string|array` | No |  |  |  | No | One race value, or a list of them, optional. |
| `specialty` | array of [`ProviderSpecialty`](./ProviderSpecialty.md) | No |  |  |  | No | Clinical specialties, coded to a taxonomy system (NUCC by default). Each entry may be a NUCC/SNOMED code string or a full specialty object. Use 'specialty', not 'specialties'. |
| `state_licenses` | array of [`ProviderStateLicense`](./ProviderStateLicense.md) | No |  |  |  | No | State medical licenses held by this practitioner. Each entry carries license_number, state and an optional expiration_date. |
| `tenant_id` | `string` | No |  |  |  | No | Tenant to register the practitioner into; resolves which Cognito pool the account is created in. |

## Example

None declared in canonical OpenAPI.
