---
title: "find many viewEmploymentProfilesW4"
method: GET
path: "/api/serviceemployment/processes/profiles/w4"
tags: ["viewEmploymentProfilesW4"]
---

# find many viewEmploymentProfilesW4

`GET /api/serviceemployment/processes/profiles/w4`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/serviceemployment/processes/profiles/w4`
- Auth: HTTP bearer

Find many viewEmploymentProfilesW4 (with filtering, projection, pagination and limiting). You can use filters in the query parameters (properly URL encoded) to restrict the search results:
- To restrict the search to specific values for a given field name, you can use the following syntax: filter[where][fieldName][eq]=value. Note that you can also nest the filter object to filter on multiple fields, like so: filter[where][and][0][fieldName1][eq]=value1&filter[where][and][1][fieldName2][eq]=value2. You can also use operators like gt, gte, lt, lte, ne, in, nin, etc.
- To limit the number of results returned by the query, use the following syntax: filter[limit]=25&filter[skip]=25
- To only return specific fields, use the projection query parameter. Usage is as follows: filter[fields][fieldName1]=true&filter[fields][fieldName2]=true. A profile is large: page with filter[limit] (at most 1000) and filter[skip]. A request without a positive filter[limit] that matches more than 1000 profiles returns 422, and a filter[limit] above 1000 returns 400. A list that names its profiles with filter[where][uuid][in] or filter[where][workerUuid][in] reads its whole selection.

## Query parameters

- `filter` ParametersFilter
  - `where` ParametersFilterWhere
  - `fields` ParametersFilterFields
  - `limit` number
  - `skip` number
  - `order` string[]
  - `collate` ParametersFilterCollation
    - `locale` string
    - `strength` number
    - `caseLevel` boolean
    - `numericOrdering` boolean

## Response `200`

One or many viewEmploymentProfileW4 documents found. Wrapped in a JsonAPI root response with collection of documents as data.

- object
  - `data` ViewEmploymentProfileW4[]
    - `uuid` string, uuid, required: Unique identifier
    - `companyUuid` string, uuid, required: Company UUID
    - `lastUpdatedAt` string, date-time: Last update timestamp
    - `employmentProfileUuid` string, uuid, required: Unique identifier for the employment profile
    - `workerUuid` string, uuid, required: Unique identifier of the associated worker
    - `worker` object, required: Worker data associated with this employment profile
      - `uuid` string, uuid: Unique identifier
      - `firstname` string, required
      - `lastname` string
      - `middlename` string
      - `hasNoMiddleName` boolean
      - `displayFullName` string
      - `dashboardUrl` object
        - `slug` string, required
        - `baseUrl` string
      - `personalEmail` object, required
        - `email` string, email, required
        - `verified` boolean
        - `verifiedAt` string, date-time
      - `workEmail` object
        - `email` string, email
        - `verified` boolean
        - `verifiedAt` string, date-time
      - `mobilePhone` object
        - `number` string
        - `countryCode` string
        - `verified` boolean
        - `verifiedAt` string, date-time
      - `prefersWhatsApp` boolean: The worker is reachable on WhatsApp at their mobile phone number
      - `homePhone` object
        - `number` string
        - `countryCode` string
        - `verified` boolean
        - `verifiedAt` string, date-time
      - `homeAddress` object
        - `address1` string
        - `address2` string
        - `city` string
        - `county` string
        - `zip` string
        - `state` string
        - `country` string
      - `timezone` string
      - `locale` string, nullable
      - `companyUuid` string, uuid, required
      - `company` object
        - `uuid` string, uuid
        - `name` string
        - `slug` string
      - `jobUuid` string, uuid, nullable
      - `job` object
        - `uuid` string, uuid
        - `name` string
        - `description` string
      - `jobIdentifiers` object[]
        - `jobUuid` string, uuid
        - `relationship` 'primary' | 'secondary'
      - `jobs` object[]
        - `uuid` string, uuid
        - `name` string
        - `description` string
        - `allowUnscheduledShift` boolean
      - `brandUuid` string, uuid, nullable
      - `brand` object
        - `uuid` string, uuid
        - `name` string
      - `einUuid` string, uuid, nullable
      - `ein` object
        - `uuid` string, uuid
        - `label` string
      - `locationUuid` string, uuid
      - `locationUuids` string[]
      - `locationGroupUuids` string[]
      - `locations` object[]
        - `uuid` string, uuid: Unique identifier
        - `createdAt` string, date-time: Creation timestamp
        - `createdBy` string, uuid: Creator UUID
        - `lastUpdatedAt` string, date-time: Last update timestamp
        - `lastUpdatedBy` string, uuid: Last updater UUID
        - `lastUpdatedByAudience` string: Audience of last updater
        - `lastUpdatedByAudienceUuid` string, uuid: Audience UUID of last updater
        - `lastUpdatedByImpersonatedBy` string, uuid: Impersonator UUID
        - `lastUpdatedByCompanyUuid` string, uuid: Company UUID of last updater
        - `lastUpdatedByEnterpriseUuid` string, uuid: Enterprise UUID of last updater
        - `name` string, required
        - `description` string
        - `companyUuid` string, uuid
        - `street_address` string
        - `address_2` string
        - `city` string
        - `state_code` string
        - `postal_code` string
        - `country_code` 'US' | 'AD' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'AE' | 'UM' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW': 2-letter ISO country code
        - `locationNotes` string
        - `timezone` string
        - `language` string
        - `hrisId` string: Stable identifier for this location in the customer's HRIS. Unique per company and immutable once set; used as a composite upsert lookup key.
        - `externalLocation` object: Metadata storage of the location data from an external source
          - `source` 'hire' | 'hire-go' | 'workday' | 'kombo', required
          - `externalIdentifier` string, required
          - `externalCreatedAt` string, date-time, required
        - `geolocation` object
          - `latitude` number, required
          - `longitude` number, required
        - `brandUuid` string, uuid, nullable
        - `isRemote` boolean
        - `ownerUuid` string, uuid, nullable
        - `locationGroupUuid` string, uuid, nullable
        - `virtualLocationGroup` object
          - `name` string
      - `tags` object[]
        - `uuid` string, uuid
        - `name` string
      - `people` object
        - `uuid` string, required: reference UUID of the people entity
        - `index` number, required: index of the number of profile for one people entity
        - `locked` boolean, required: whether the people entity is locked
        - `reasons` string[]
        - `history` object[]
          - `uuid` string, required
          - `index` number
          - `locked` boolean
          - `reasons` string[]
          - `replacedAt` string, nullable, required
          - `replacedBy` 'checkRehire' | 'identitySplit' | 'dataCollection' | 'manual', required
      - `rehire` object
        - `isRehire` boolean: whether the worker is a rehire
        - `uuid` string: UUID of the previous worker profile. Absent when there is no matching duplicate.
        - `reasons` string[]: Why the rehire flag was set. Mirrors people.reasons for deduplication context.
      - `externalId` string: reference ID in external HRIS
      - `externalSource` string: source of truth for worker externalId
      - `externalSourceAccount` string: account of the external source
      - `hrisId` string: The worker's id in the customer's HRIS, written by a Kombo sync in either direction
      - `applicantId` string: reference ID in ATS
      - `applicantSource` string: source of truth for worker applicantId
      - `backgroundCheckYardstikCandidateId` string: reference ID in 3rd party background check system
      - `dateOfBirth` string, date
      - `startDate` string, date
      - `hireDate` string, date
      - `terminationDate` string, date, nullable
      - `firstSeenAt` string, date-time
      - `lastSeenAt` string, date-time
      - `employmentStatus` object
        - `type` 'created' | 'preHire' | 'active' | 'rehire' | 'inactive' | 'terminated' | 'temporary'
        - `subtype` 'applicant' | 'employee' | 'leaveOfAbsence' | 'suspended' | 'seasonal' | 'furloughed' | 'resigned' | 'fired' | 'involuntarySeparation' | 'archived'
        - `lastStatusUpdateDate` string, date-time
        - `archivedOrigin` 'applicant' | 'worker', nullable
      - `avatar` string, uri
      - `manager` object
        - `uuid` string, uuid
        - `displayFullName` string
      - `customAttributes` object[]
        - `customAttributeUuid` string, uuid
        - `value` union, required
          - string
          - string[]
          - object
            - `uuid` string, uuid
            - `url` string
            - `metadata` object
          - object
            - `address` string
            - `address2` string
            - `city` string
            - `state` string
            - `zip` string
            - `country` string
          - boolean
          - unknown
        - `translatedValue` string
        - `selectedLabels` string[]
        - `invalid` boolean
        - `invalidDetail` string
        - `invalidSource` 'type' | 'rule'
        - `lastCheckedGeneration` integer: Definition generation this value was last checked against. Absent or older than the definition generation means the value is stale: not evaluated against the current rule. Read-only.
        - `validationStatus` 'valid' | 'invalid' | 'stale': Freshness of this value against the definition rule, derived on read from lastCheckedGeneration and the definition generation. `valid` and `invalid` mean the value was checked against the current generation; `invalid` carries invalidDetail. `stale` means the rule changed since the last check, so invalid and invalidDetail are not authoritative and the value refreshes on its next write. Absent when the definition carries no rule, or when worker attribute validation is off for the company. Read-only.
        - `customAttribute` object
          - `uuid` string, uuid
          - `createdAt` string, date-time: Creation timestamp
          - `createdBy` string, uuid: Creator UUID
          - `lastUpdatedAt` string, date-time: Last update timestamp
          - `lastUpdatedBy` string, uuid: Last updater UUID
          - `lastUpdatedByAudience` string: Audience of last updater
          - `lastUpdatedByAudienceUuid` string, uuid: Audience UUID of last updater
          - `lastUpdatedByImpersonatedBy` string, uuid: Impersonator UUID
          - `lastUpdatedByCompanyUuid` string, uuid: Company UUID of last updater
          - `lastUpdatedByEnterpriseUuid` string, uuid: Enterprise UUID of last updater
          - `companyUuid` string, uuid: Company UUID
          - `label` string, required
          - `key` string
          - `dataType` 'string' | 'number' | 'date' | 'boolean' | 'select' | 'address' | 'media' | 'signature' | 'complianceDocument', required
          - `description` string
          - `options` object[]
            - `value` string, required
            - `label` string
            - `archived` boolean: If true, this option is unavailable for new worker selections.
            - `hireValue` unknown
          - `resource` string
          - `resourceIdentifier` string, uuid
          - `readOnly` boolean: If true, this attribute cannot be modified. Can only be set by system.
          - `hidden` boolean: If true, this attribute won't be shown. Can only be set by system.
          - `protected` boolean: If true, this attribute can only be accessed by users with certain rights.
          - `hireDataKeyId` integer: The ID of the hire data key
          - `origin` 'wx' | 'hire': Which system authored this attribute definition
          - `attributeSectionUuid` string, uuid, nullable: UUID of the attributeSection this attribute is grouped under on the worker profile Attributes tab. Null, absent or a deleted section means unassigned: the UI renders an unassigned applicant-origin attribute (hireDataKeyId set) under the virtual "Applicant Attributes" section, otherwise under a trailing "Other" group. A hidden attribute never renders, even inside a company section.
          - `validation` union: Optional format rule enforced on this attribute. Absent means no rule: exactly the pre-validation behavior. Send null to remove a rule — over JSON that is the only way to say "clear it", since an absent key is a partial patch that leaves the stored rule alone.
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - unknown
          - `generation` integer: Monotonically increasing definition generation. Increments only when the validation rule changes. A value is current against the rule only when its lastCheckedGeneration equals this. Read-only.
      - `calculatedCustomAttributes` object
      - `segmentEnabled` boolean: if false, worker will not be in segment without the "include deactivated workers" option
      - `segmentUuids` string[]: list of the different segments the worker is matching
      - `messagingEnabled` boolean: if false, worker will not receive any message, except if the message has the "forceSend" option
      - `ssoEnabled` boolean: whether or not to enable Worker Portal SSO on this particular worker
      - `isTestWorker` boolean: declarative setting to help differenciate test workers from real workers
      - `importUpdatesLocked` boolean: if true, imported workers from our partners will update existing worker records with new data
      - `importProvider` 'none' | 'hire'
      - `technicalOptions` object
        - `lockEin` boolean: if true, do not allow to update the worker's EIN
      - `ssn` string
      - `appliedForSsn` boolean
      - `securityGroupUuids` string[]
      - `payRate` object
        - `uuid` string, uuid
        - `rate` number
        - `overtimeRate` number
        - `externalId` string
        - `currency` 'USD' | 'GBP' | 'EUR'
        - `createdAt` string, date-time
      - `payRateExceptions` object[]
        - `uuid` string, uuid
        - `rate` number
        - `overtimeRate` number
        - `currency` 'USD' | 'GBP' | 'EUR'
        - `locationUuid` string, uuid
        - `jobUuid` string, uuid
        - `externalId` string
        - `createdAt` string, date-time
      - `supervisorUuid` string, uuid, nullable: Employer acting as supervisor for this worker
      - `openingOwnerUuid` string, uuid, nullable: Employer acting as opening owner for this worker
      - `openingUuid` string, uuid: Opening UUID assigned to this worker
      - `hasBackendRole` boolean
      - `bank` object: Bank account details
        - `accountNumber` string: Bank account number
        - `name` string: Account holder’s name
        - `routingNumber` string: Bank routing number
        - `iban` string: International Bank Account Number
      - `nationalIdentificationNumber` string: National identification number
      - `nationalTaxIdentificationNumber` string: National tax identification number
      - `pronouns` string: Preferred pronouns
      - `nationality` 'US' | 'AD' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'AE' | 'UM' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW', nullable: Nationality as a 2-letter ISO 3166-1 alpha-2 country code
      - `gender` 'MALE' | 'FEMALE' | 'NON_BINARY' | 'OTHER' | 'DECLINE_TO_SELF_IDENTIFY'
      - `ethnicity` 'AMERICAN_INDIAN_OR_ALASKA_NATIVE' | 'ASIAN_OR_INDIAN_SUBCONTINENT' | 'BLACK_OR_AFRICAN_AMERICAN' | 'HISPANIC_OR_LATINO' | 'NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER' | 'TWO_OR_MORE_RACES' | 'WHITE' | 'PREFER_NOT_TO_DISCLOSE'
      - `maritalStatus` 'SINGLE' | 'MARRIED_FILING_JOINTLY' | 'MARRIED_FILING_SEPARATELY' | 'HEAD_OF_HOUSEHOLD' | 'QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD'
      - `veteranStatus` 'I_AM_NOT_A_PROTECTED_VETERAN' | 'I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN' | 'I_DONT_WISH_TO_ANSWER'
      - `disability` 'YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY' | 'NO_I_DONT_HAVE_A_DISABILITY' | 'I_DONT_WISH_TO_ANSWER'
      - `underrepresentedGroupStatus` 'MEMBER_OF_UNDERREPRESENTED_GROUP' | 'NOT_A_MEMBER' | 'PREFER_NOT_TO_DISCLOSE'
      - `education` 'HIGH_SCHOOL_DIPLOMA_OR_EQUIVALENT' | 'SOME_COLLEGE' | 'ASSOCIATES_DEGREE' | 'BACHELORS_DEGREE' | 'MASTERS_DEGREE' | 'DOCTORAL_DEGREE' | 'PROFESSIONAL_DEGREE'
      - `driverLicenseNumber` string
      - `driverLicenseState` string
      - `driverLicenseExpirationDate` string
      - `talentUuid` string, uuid
      - `smsOptOut` object: SMS opt-out settings for the worker
        - `optedOutAt` string, date-time, nullable: ISO datetime (UTC) when the worker opted out
        - `status` boolean: Current opt-out status
        - `optedOutByAudience` 'worker' | 'employer' | 'enterpriseIdentity' | 'superUser' | 'system' | 'thirdParty' | 'kiosk' | 'agent': Who initiated the opt-out
        - `optedOutByAudienceUuid` string, uuid: UUID of the entity that initiated the opt-out
        - `optedOutOverrideByAudienceUuid` string, nullable: UUID of the audience who overrode the opt-out
        - `optedOutOverrideAt` string, date-time, nullable: ISO datetime (UTC) when the opt-out was overridden
        - `senders` object[]: Sender numbers the worker stopped individually. Carrier-written; `status` outranks it
          - `number` string, required: Sender number the STOP arrived on
          - `optedOutAt` string, date-time: ISO datetime (UTC) when the worker stopped it
          - `optedOutByAudience` 'worker' | 'employer' | 'enterpriseIdentity' | 'superUser' | 'system' | 'thirdParty' | 'kiosk' | 'agent': Who initiated the opt-out
          - `optedOutByAudienceUuid` string: UUID of the entity that initiated the opt-out
      - `whatsAppOptOut` object: WhatsApp opt-out settings for the worker
        - `optedOutAt` string, date-time, nullable: ISO datetime (UTC) when the worker opted out
        - `status` boolean: Current WhatsApp opt-out status
        - `optedOutByAudience` 'worker' | 'employer' | 'enterpriseIdentity' | 'superUser' | 'system' | 'thirdParty' | 'kiosk' | 'agent': Who initiated the opt-out
        - `optedOutByAudienceUuid` string, uuid: UUID of the entity that initiated the opt-out
        - `optedOutOverrideByAudienceUuid` string, nullable: UUID of the audience who overrode the opt-out
        - `optedOutOverrideAt` string, date-time, nullable: ISO datetime (UTC) when the opt-out was overridden
      - `callOptOut` object, nullable: AI call opt-out. Only status is client-writable; attribution belongs to the server.
        - `status` boolean
        - `source` 'call' | 'admin' | 'worker' | 'system'
        - `executionUuid` string, uuid, nullable
        - `optedOutAt` string, date-time, nullable
        - `optedOutByAudience` 'worker' | 'employer' | 'enterpriseIdentity' | 'superUser' | 'system' | 'thirdParty' | 'kiosk' | 'agent'
        - `optedOutByAudienceUuid` string
        - `optedOutOverrideByAudienceUuid` string, nullable
        - `optedOutOverrideAt` string, date-time, nullable
      - `opening` object
        - `uuid` string, uuid
        - `title` string
    - `disabled` boolean: Whether this employment profile is disabled
    - `isHistoricalImported` boolean: True for profiles created via a historical import. Read-only in the UI; PAPI sync is skipped.
    - `i9Case` object: I-9 employment eligibility verification case with WorkBright references, statuses, tags, EAD information, etc.
      - `caseCompletedAt` string, date-time, nullable: Timestamp when the I-9 case was completed
      - `caseCreatedAt` string, date-time: Timestamp when the I-9 case was created
      - `caseUpdatedAt` string, date-time: Timestamp when the I-9 case was last updated
      - `isHistoricalImported` boolean: True when this case was created from a historical import. Workbright IDs will be negative sentinels; WB/PAPI actions are blocked.
      - `externalCompletion` object: Set when the I-9 was completed outside Fountain and is held by another system. The case reads as completed with no Workbright submission, and the E-Verify step reads as skipped unless the case has a WorkBright E-Verify reference or a forced override.
        - `source` 'conduent', required: The system outside Fountain that holds the completed I-9
        - `recordedAt` string, date-time, required: Timestamp when Fountain recorded the external completion
      - `taskFirstAccessedAt` string, date-time: Timestamp when the I-9 task was first accessed
      - `section2` object: Section 2 verification information
        - `method` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required: The method used for section 2 verification
        - `appointment` object: Scheduled appointment for section 2 verification
          - `date` string, date-time: Appointment start time when supplied by the scheduling provider
          - `calendly` object: Calendly appointment details if applicable
            - `inviteeUuid` string, uuid, required: UUID of the invitee for the appointment
            - `inviteeUri` string, uri, required: URI for the invitee to access the appointment
      - `reverification` object, nullable: I-9 reverification information
        - `method` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required: The method used for reverification
        - `appointment` object: Scheduled appointment for reverification
          - `date` string, date-time: Appointment start time when supplied by the scheduling provider
          - `calendly` object: Calendly appointment details if applicable
            - `inviteeUuid` string, uuid, required: UUID of the invitee for the appointment
            - `inviteeUri` string, uri, required: URI for the invitee to access the appointment
      - `tagUuids` string[]: UUIDs of the tags associated with the I-9 form
      - `restartedAt` string, date-time, nullable: Timestamp when the I-9 process was restarted
      - `restartType` 'rehire' | 'restart' | 'reject', nullable: Type of restart
      - `resetFromSubmissionId` number, nullable: Workbright submission this case was locked to when it was last reset. Unlike restartedAt, which unsetRestartFields clears for every case sharing the Workbright employee, this is private to the case and is never cleared by a sibling, so it stays a reliable "do not re-pin this submission" marker while the document assignment mirror catches up.
      - `formSessionStartedAt` string, date-time, nullable: When this case's worker opened the Workbright form; an unpinned case keeps its stamp on a later open. Workbright carries no Fountain worker id, so this tells which case a submission on the shared document assignment belongs to.
      - `rehireMethod` 'keepI9' | 'newI9': How the I-9 was handled on rehire: keepI9 reuses the existing I-9 (Supplement B), newI9 creates a fresh one
      - `uuid` string, required
      - `step` 'section1' | 'section2' | 'everify' | 'completed', required: Current active step in the I-9 process
      - `stepStatus` union, required: Status of the current step
        - 'pending' | 'completed' | 'rejected'
        - 'pending' | 'unsubmittedReceipt' | 'heldPriorEverify' | 'heldDocumentVerification' | 'completed'
        - 'skipped' | 'pending' | 'error' | 'authorized' | 'submitted' | 'closed'
        - 'authorized' | 'closed' | 'rejected'
      - `taskStatus` 'error' | 'pending' | 'ready' | 'viewed' | 'inProgress' | 'completed', required
      - `assignedForm` object, required
        - `workbrightRefs` object, required
          - `documentAssignmentId` integer, required
          - `documentAssignment` DocumentAssignment, required: A WorkBright document assignment linking an employee to a specific form (federal W-4, state W-4, I-9, EAD, etc.). Each assignment tracks submission status independently.
            - `id` integer, required: WorkBright document assignment ID. Unique per employee–document pair.
            - `document_id` string, required: Identifier of the document template in WorkBright. For the federal W-4 form this is the literal string "w4". For state-specific W-4 forms this is a numeric string (e.g. "12345") whose value is specific to the WorkBright account/subdomain. Use the document_name on the submission or the WorkBright GET /api/documents endpoint to map numeric IDs to human-readable state form names (e.g. "AFPU - California", "AFPU - Work State: New York").
            - `name` string: Human-readable name of the WorkBright document/form (e.g. "Federal W-4", "AFPU - California"), as returned by WorkBright on the document_assignments payload. Optional: absent on assignments synced before WorkBright added this field.
            - `current_submission_id` integer, nullable, required: ID of the most recent submission for this assignment, or null if no submission has been made yet.
            - `employee_id` integer, required: WorkBright employee ID this assignment belongs to.
            - `optional` boolean, required: Whether this document assignment is optional for the employee. For W-4 state forms, this may be overridden by tax reciprocity logic: if the employee opts in to reciprocity, state forms for reciprocal states are marked optional.
            - `status` 'accepted' | 'rejected' | 'pending' | 'missing', required: Lifecycle status of the document assignment. "pending": form has not been submitted yet. "accepted": submission was reviewed and approved. "rejected": submission was reviewed and sent back for corrections. "missing": no submission has ever been received for this assignment.
            - `active` boolean, required: Whether this assignment is currently active. Inactive assignments are ignored in status calculations.
          - `submissionId` integer
          - `submission` object
            - `id` integer, required: Unique identifier representing the form submission.
            - `employee_id` integer, required: The ID of the staff member who completed the submission.
            - `status` 'pending' | 'accepted' | 'rejected', required: The status of the form submission.
            - `document_name` string, required: The name of the form this submission corresponds with.
            - `document_id` string, required: The ID of the form template this submission corresponds with. Well-known values: "i9" for Form I-9, "w4" for federal Form W-4. State-specific W-4 forms use a numeric string ID that is specific to the WorkBright account (e.g. "12345"). Use document_name to identify the state form in human-readable terms (e.g. "AFPU - California").
            - `submitted_at` string, date-time, required: Timestamp of when the submission was received.
            - `rejection_reason` string, nullable: If status is 'rejected', and the reason is given, it is provided here.
            - `countersignable` boolean, required: Is the submission ready to be countersigned?
            - `countersigned` boolean, required: Is this submission countersigned? i.e. Section 2 of I-9.
            - `is_expired` boolean, required: Is this Form-I9 expired?
            - `documentation_expiration_date` string, nullable: Expiration date for the next expiring eligible document that will need to be updated.
            - `document_verification_result` 'approved' | 'completed' | 'reviewed' | 'declined' | 'failed', nullable: The status of the document verification.
            - `documentation_set` object[], required
              - …
            - `fields` object, required
              - …
            - `ead_category` string, nullable: The specific classification or type of Employment Authorization Document (EAD) granted to an individual.
            - `ead_country_code` string, nullable: Country associated with an Employment Authorization Document (EAD). WorkBright documents a 2-3 character code; the live API sends the country name.
            - `audit_logs` object[]: Workbright audit trail for this submission, shown as activity entries in the I-9 Center Notes panel.
              - …
        - `effectiveExpirationDate` string, nullable: The earlier of the Section 2 documentation_expiration_date and the latest reverification_rehire reverify_expiration_date. A Supplement B does not supersede Section 2 — a worker reverified to a LATER date stays expired against the earlier one — but a newer Supplement B does supersede an older one, so only the latest counts. Entries with a null or empty date are skipped. A latest entry of N/A or D/S (a document that does not expire) contributes no date, so Section 2 alone caps. The I-9 Center buckets and displays against this derived field. Null when neither date is present; absent on profiles not yet reprojected onto pipeline v1.8.0, which fall back to documentation_expiration_date.
      - `steps` object, required: Statuses of all steps in the I-9 process, prefer `step` and `stepStatus` for the current step
        - `section1` 'pending' | 'completed' | 'rejected'
        - `section2` 'pending' | 'unsubmittedReceipt' | 'heldPriorEverify' | 'heldDocumentVerification' | 'completed'
        - `everify` 'skipped' | 'pending' | 'error' | 'authorized' | 'submitted' | 'closed'
        - `completed` 'authorized' | 'closed' | 'rejected'
      - `tags` object[]
        - `uuid` string, uuid, required: Unique identifier
        - `label` string, required: Tag label
      - `everifyHold` object: Why this I-9 is held before Section 2
        - `priorEverifyId` integer, required: WorkBright E-Verify case id of the blocking case
        - `priorCaseStatus` string: Status of the blocking case, absent when its payload failed validation
        - `priorSubmissionId` integer: WorkBright submission the blocking case belongs to
        - `priorWorkerUuid` string, uuid: Worker whose earlier application owns the blocking case, absent when no sibling submission matches
      - `ead` object
        - `status` 'eligible' | 'assigned' | 'awaitingReview' | 'reviewed', nullable: Current status of the Employment Authorization Document
        - `workerHasDocuments` boolean: Indicates if the worker has EAD documents to submit
        - `adminReview` object: Admin review details for the EAD
          - `status` 'approved' | 'rejected', required: Status of the admin review for the EAD
          - `expirationDate` string, date-time: Expiration date for the admin review
        - `assignedForms` object[], required
          - `workbrightRefs` object, required
            - `documentAssignmentId` integer, required
            - `documentAssignment` DocumentAssignment, required: A WorkBright document assignment linking an employee to a specific form (federal W-4, state W-4, I-9, EAD, etc.). Each assignment tracks submission status independently.
              - …
            - `submissionId` integer
            - `submission` Submission: A submission object.
              - …
    - `everifyCase` object: E-Verify case with WorkBright references holding statuses and other case data
      - `caseCreatedAt` string, date-time: Timestamp when the E-Verify case was created
      - `caseUpdatedAt` string, date-time: Timestamp when the E-Verify case was last updated
      - `isHistoricalImported` boolean: True when this case was created from a historical import. Workbright IDs will be negative sentinels; WB/PAPI actions are blocked.
      - `workerInput` object: E-Verify worker input information
        - `formStatus` 'correct' | 'incorrect', required: Worker input about the form status
        - `formDetails` 'willTakeAction' | 'willNotTakeAction' | 'incorrectPersonalInformation' | 'incorrectWorkAuthorizationDocument' | 'incorrectSupportingDocumentation', required: Worker input about the form details
        - `acknowledgedFanAt` string, date-time, nullable, required: Timestamp when the worker acknowledged the FAN
        - `signatureSvg` string, required: Digital signature for the worker acknowledgment
      - `overrideEverify` 'skip' | 'force', nullable, required: Indicates if the E-Verify process should be overridden, without taking settings into account. Null means the override is not set. SKIP means the E-Verify process will be skipped. FORCE means the E-Verify process will ALWAYS trigger.
      - `uuid` string, required
      - `workbrightRefs` object
        - `everifyId` number, required
        - `everify` EVerify: An object representing the E-Verify case.
          - `id` integer, required: Unique identifier for this E-Verify case.
          - `submission_id` integer, required: Identifier of the associated I-9 submission.
          - `employee_id` integer, required: Identifier of the employee associated with this E-Verify case.
          - `case_id` string, nullable, required: The E-Verify case ID provided by DHS/SSA. Null until DHS issues one, as on a submission_error case or a case stuck at submitted.
          - `case_created_at` string, date-time, nullable, required: Timestamp when the E-Verify case was created by DHS/SSA (ISO 8601 format with offset).
          - `case_result_at` string, date-time, nullable, required: Timestamp when the E-Verify case received its final result from DHS/SSA (ISO 8601 format with offset).
          - `receipt` boolean, required: Indicates if a receipt has been issued for the E-Verify case.
          - `deadline_on` string, YYYY-MM-DD, nullable, required: The deadline for action on the case, if applicable (YYYY-MM-DD format).
          - `case_status` 'created' | 'submitted' | 'draft' | 'unsubmitted_receipt' | 'unconfirmed_data' | 'photo_match' | 'scan_and_upload' | 'manual_review' | 'pending_referral' | 'referred' | 'queued' | 'employment_authorized' | 'final_nonconfirmation' | 'close_case_and_resubmit' | 'closed_authorized' | 'closed_nonconfirmation' | 'closed_other' | 'manually_closed' | 'submission_error' | 'internal_error', required: The current status of the E-Verify case. This can include various stages such as created, submitted, draft, and various closure statuses.
          - `everify_account_id` integer, required: The ID of the E-Verify account used for this case.
          - `raw_response` unknown
          - `audit_logs` EVerifyAuditLog[], required: A list of audit log entries detailing the history of the E-Verify case.
            - `name` string, required: Name of the event.
            - `title` string, nullable, required: An optional title for the log entry, not currently in use.
            - `request` object: HTTP request that produced the event. Absent for events WorkBright raises internally.
              - …
            - `actor_id` integer, nullable, required: Identifier of the person responsible for the occurrence of the event.
            - `actor_type` string, nullable, required: Type of ID used, e.g. User, Admin, Employee, EverifyApiUser.
            - `server_timestamp` string, required: Timestamp of when the event occurred based on the time zone of the server.
            - `details` union, required: Specific details pertaining to the audit log event. Can be an object or an array of strings.
              - …
          - `fan_url` string, uri, nullable, required: URL to the Further Action Notice (FAN) document, if applicable.
          - `rdc_url` string, uri, nullable, required: URL to the Referral Date Confirmation (RDC) document, if applicable.
          - `fan_url_spanish` string, uri, nullable, required: URL to the Spanish version of the Further Action Notice (FAN) document, if applicable.
          - `rdc_url_spanish` string, uri, nullable, required: URL to the Spanish version of the Referral Date Confirmation (RDC) document, if applicable.
          - `fan_reviewed` boolean, nullable, required: Indicates if the Further Action Notice (FAN) has been reviewed.
          - `tnc_review` string[], nullable, required: List of reasons for a Tentative Nonconfirmation (TNC) review.
          - `tnc_action` string, nullable, required: The action taken regarding a Tentative Nonconfirmation (TNC).
          - `tnc_i9_correct` boolean, required: Indicates if the I-9 form was corrected after a Tentative Nonconfirmation (TNC).
          - `closure_reasons` ClosureReason[], nullable, required: A list of reasons why the E-Verify case was closed.
            - `name` string, required: Description of the closure reason.
            - `code` string, required: Code representing the closure reason.
          - `errors` unknown
          - `visit_everify` boolean, required: Indicates if a visit to the E-Verify website is required.
          - `submission_error_type` string, nullable, required: The type of error encountered during submission, if any.
          - `duplicate_continue_reasons` unknown
          - `duplicate_continue_reason_code` string, nullable, required: Code for the reason to continue with a duplicate case, if applicable.
          - `duplicate_continue_reason_other` string, nullable, required: Other reason for continuing with a duplicate case, if applicable.
          - `deleteable` boolean, required: Indicates if the E-Verify case can be deleted.
          - `unconfirmed_data_fields` string[], required: List of data fields that remain unconfirmed.
    - `w4Case` object, required
      - `caseCompletedAt` string, date-time: Timestamp when the W-4 case was completed
      - `isHistoricalImported` boolean: True when this case was created from a historical import. Workbright IDs will be negative sentinels; WB/PAPI actions are blocked.
      - `caseCreatedAt` string, date-time: Timestamp when the W-4 case was created
      - `caseUpdatedAt` string, date-time: Timestamp when the W-4 case was last updated
      - `taskFirstAccessedAt` string, date-time: Timestamp when the W-4 task was first accessed
      - `taxReciprocityOptIn` boolean, nullable: Employee tax reciprocity election. null: the employee has not been asked yet (or reciprocity is not applicable). true: the employee opted in — state W-4 forms for reciprocal states become optional. false: the employee opted out — all assigned state forms remain required. Reciprocity applies when the employee lives in one state but works in another that has a reciprocal tax agreement (e.g. IL↔IA, IN↔OH, MD↔DC/PA/VA/WV, and others).
      - `completionConfirmedAt` string, date-time, nullable: Timestamp when the completion was confirmed
      - `tagUuids` string[]
      - `restartedAt` string, date-time: Timestamp when the W-4 process was restarted
      - `restartType` 'rehire' | 'restart' | 'reject': Why the W-4 case was restarted. "rehire": employee was rehired and needs a new W-4. "restart": admin manually restarted the process. "reject": a submission was rejected, triggering a restart. Cleared automatically when the employee submits a new form.
      - `restartReason` string: Reason the admin gave for the last restart, as entered. Cleared with restartType.
      - `restartedDocumentAssignmentIds` number[]: Document assignment IDs of the forms the last restart reset, set when the restart named its forms. Unlike each form's restartedAt, it stays once a form is resubmitted. Cleared with restartType.
      - `uuid` string, uuid, required: Unique identifier for this W-4 case
      - `status` 'pending' | 'rejected' | 'inProgress' | 'pendingReview' | 'completed' | 'error', required: Aggregated status of the W-4 case across all assigned forms. "pending": no forms have been submitted yet. "inProgress": the employee has started but not completed all forms. "pendingReview": all required forms submitted, awaiting admin review. "completed": all forms accepted and case finalized. "rejected": one or more submissions were rejected. "error": a system error occurred during processing.
      - `assignedForms` object[], required: All federal and state W-4 form assignments for this case. Each entry contains the WorkBright document assignment (use document_id to distinguish federal "w4" from state forms) and, if submitted, the full submission with form field values in the fields array. A typical case has one federal W-4 plus one state form per work-state.
        - `optional` boolean, required: Whether this form is optional for the employee. Overrides the WorkBright DocumentAssignment.optional value. When tax reciprocity is enabled and the employee opts in, state W-4 forms for reciprocal states are automatically marked optional (true), while the federal W-4 and home-state form remain required (false).
        - `restartedAt` string, date-time: Timestamp when an admin restarted this form alone or with others. Present while the employee still owes a new submission for this form; cleared when that submission arrives. Forms without it were kept as they were.
        - `workbrightRefs` object, required
          - `documentAssignmentId` integer, required: WorkBright document assignment ID for this form.
          - `documentAssignment` DocumentAssignment, required: A WorkBright document assignment linking an employee to a specific form (federal W-4, state W-4, I-9, EAD, etc.). Each assignment tracks submission status independently.
            - `id` integer, required: WorkBright document assignment ID. Unique per employee–document pair.
            - `document_id` string, required: Identifier of the document template in WorkBright. For the federal W-4 form this is the literal string "w4". For state-specific W-4 forms this is a numeric string (e.g. "12345") whose value is specific to the WorkBright account/subdomain. Use the document_name on the submission or the WorkBright GET /api/documents endpoint to map numeric IDs to human-readable state form names (e.g. "AFPU - California", "AFPU - Work State: New York").
            - `name` string: Human-readable name of the WorkBright document/form (e.g. "Federal W-4", "AFPU - California"), as returned by WorkBright on the document_assignments payload. Optional: absent on assignments synced before WorkBright added this field.
            - `current_submission_id` integer, nullable, required: ID of the most recent submission for this assignment, or null if no submission has been made yet.
            - `employee_id` integer, required: WorkBright employee ID this assignment belongs to.
            - `optional` boolean, required: Whether this document assignment is optional for the employee. For W-4 state forms, this may be overridden by tax reciprocity logic: if the employee opts in to reciprocity, state forms for reciprocal states are marked optional.
            - `status` 'accepted' | 'rejected' | 'pending' | 'missing', required: Lifecycle status of the document assignment. "pending": form has not been submitted yet. "accepted": submission was reviewed and approved. "rejected": submission was reviewed and sent back for corrections. "missing": no submission has ever been received for this assignment.
            - `active` boolean, required: Whether this assignment is currently active. Inactive assignments are ignored in status calculations.
          - `submissionId` integer: WorkBright submission ID for the current/latest submission of this form, if one exists.
          - `submission` W4Submission: A submission object for a W-4 withholding form. Each W-4 profile may have multiple submissions — one per assigned document (typically one federal W-4 and zero or more state withholding forms). Identify the form type using document_id: "w4" for federal, or a numeric string for state forms. The document_name field contains the human-readable form name (e.g. "W-4 (2021)", "AFPU - California").
            - `id` integer, required: Unique identifier representing the form submission.
            - `employee_id` integer, required: The ID of the staff member who completed the submission.
            - `status` 'pending' | 'accepted' | 'rejected', required: The status of the form submission.
            - `document_name` string, required: The name of the form this submission corresponds with.
            - `tags` string[], required: A set of user-defined tags on this submission, applied by admins.
            - `audit_logs` SubmissionAuditLog[], required: A list of countersigning events for I-9 Remote Verification submissions. Note: All forms have this category, only the I-9 uses it.
              - …
            - `document_id` string, required: The ID of the form template this submission corresponds with. Well-known values: "i9" for Form I-9, "w4" for federal Form W-4. State-specific W-4 forms use a numeric string ID that is specific to the WorkBright account (e.g. "12345"). Use document_name to identify the state form in human-readable terms (e.g. "AFPU - California").
            - `submitted_at` string, date-time, required: Timestamp of when the submission was received.
            - `auth_rep_rejected` boolean, required: Did the auth rep reject this submission?
            - `rejection_reason` string, nullable: If status is 'rejected', and the reason is given, it is provided here.
            - `rejection_reasons` string[]: Every rejection reason attached to the submission. Empty when the submission is not rejected.
            - `rejection_additional_details` string, nullable: Free-text details the reviewer added to a rejection.
            - `status_changed_by` string, nullable, required: Name of individual who accepted or rejected the form. Null when the status was set by the system.
            - `status_changed_at` string, date-time, required: Timestamp of when submission was accepted or rejected.
            - `is_current_submission_of_assignment` boolean, required: Is this the most current submission for the assignment?
            - `uploaded_by_full_name` string, required: The name of the user who uploaded the submission.
            - `countersignable` boolean, required: Is the submission ready to be countersigned?
            - `countersigned` boolean, required: Is this submission countersigned? i.e. Section 2 of I-9.
            - `confirmed_at_ok` string, date-time, nullable: Timestamp of when the staff member reviewed an uploaded submission. Documented key; the live API sends confirmed_ok_at.
            - `confirmed_ok_at` string, date-time, nullable: Timestamp of when the staff member reviewed an uploaded submission. Key used by the live API in place of the documented confirmed_at_ok.
            - `auto_accepted` boolean: Represents if a submission was auto-accepted.
            - `files` string[], required: URLs to obtain all PDF and image files associated with this submission.
            - `document_verification_result` 'approved' | 'completed' | 'reviewed' | 'declined' | 'failed', nullable: The status of the document verification.
            - `document_verification_resolution` DocumentVerificationResolution, nullable: Administrator resolution of the I-9 document verification. WorkBright documents a list of audit logs; the live API sends this single object.
              - …
            - `ead_country_code` string, nullable: Country associated with an Employment Authorization Document (EAD). WorkBright documents a 2-3 character code; the live API sends the country name.
            - `ead_category` string, nullable: The specific classification or type of Employment Authorization Document (EAD) granted to an individual.
            - `_links` SubmissionLinks: Hypermedia links to the submission and its employee.
              - …
            - `fields` W4Field[], required: Array of form fields from the W-4 submission. For the federal W-4, this contains the standard IRS Form W-4 fields (filing status, dependents, withholding, etc.). For state W-4 forms (e.g. CA DE-4, NY IT-2104, IL IL-W-4), the field IDs and labels are state-specific and defined by the WorkBright account configuration. To discover state form field IDs for a specific account, retrieve a completed submission for that state form via this API. The document_name on the parent submission indicates which form this is (e.g. "AFPU - California" for a CA state W-4).
              - …
      - `tags` object[]
        - `uuid` string, uuid, required: Unique identifier
        - `label` string, required: Tag label
    - `workbrightRefs` object, required: WorkBright integration references for this employment profile
      - `subdomain` string, required
      - `employeeId` number, required
      - `employmentId` number, required
      - `employee` object, required
        - `id` number, required
        - `email` string, required
        - `first_name` string, required
        - `middle_name` string, required
        - `last_name` string, required
        - `birthdate` string, required
        - `ssn` string, required
        - `hire_date` string, required
        - `status` string, required
    - `dataCollectionSubmitted` boolean: Whether the data collection form has been submitted
    - `dataCollectionSubmittedAt` string, date-time: ISO datetime when the data collection form was submitted
    - `employmentStatus` 'created' | 'preHire' | 'active' | 'rehire' | 'inactive' | 'terminated' | 'temporary' | 'deleted': Current employment status of the worker
    - `employmentStatusUpdatedAt` string, date-time: ISO datetime when the employment status was last updated
    - `lineage` object: Position of this worker profile among the sibling profiles of the same person, per process. A leaf is absent when the worker has no case for that process. The whole field is absent on profiles not yet reprojected onto pipeline v1.15.0 — treat that as "unknown" rather than "not the lead".
      - `i9` object
        - `leadWorkerUuid` string, uuid, required: Worker whose Section 0 feeds the form this profile is attached to. Every sibling on the same form generation reports the same value, so grouping rows by it reproduces the generation.
        - `currentLeadWorkerUuid` string, uuid, required: Lead of the generation in force today. Identical on every profile of the person, so a row compares its own leadWorkerUuid against this to learn whether a more recent form exists.
        - `isCurrentLead` boolean, required: True on the single profile the I-9 and W-4 tables show for this person: the lead of the generation in force today.
        - `profileCount` integer, required: How many profiles of this person hold a case for this process, across every generation. Identical on every sibling row. Counts a profile the switcher can reach — a case for the process, not deactivated, worker still present — so the number beside a name in the table matches what its switcher lists. A terminated worker is counted: the form stays auditable.
      - `w4` object
        - `leadWorkerUuid` string, uuid, required: Worker whose Section 0 feeds the form this profile is attached to. Every sibling on the same form generation reports the same value, so grouping rows by it reproduces the generation.
        - `currentLeadWorkerUuid` string, uuid, required: Lead of the generation in force today. Identical on every profile of the person, so a row compares its own leadWorkerUuid against this to learn whether a more recent form exists.
        - `isCurrentLead` boolean, required: True on the single profile the I-9 and W-4 tables show for this person: the lead of the generation in force today.
        - `profileCount` integer, required: How many profiles of this person hold a case for this process, across every generation. Identical on every sibling row. Counts a profile the switcher can reach — a case for the process, not deactivated, worker still present — so the number beside a name in the table matches what its switcher lists. A terminated worker is counted: the form stays auditable.
  - `meta` ResponsesPartMeta
    - `timestamp` string, date-time, required
    - `verb` 'OPTION' | 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
    - `path` string
    - `jti` string
    - `rid` string
    - `count` number
    - `capped` boolean: The server lowered filter[limit] to its ceiling. Page with filter[skip] to read past it.
    - `status` string
    - `duration` number
    - `size` number

## Other responses

- `400`: default error response
- `422`: default error response
- `500`: default error response

---

[API](https://skmtc.dev/fountain/apis/worker-experience-public-api.md) - [All operations](https://skmtc.dev/fountain/apis/worker-experience-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fountain/apis/worker-experience-public-api/revisions/6b9a31f79e22?raw)
