---
title: "Retrieve all workers of a taskFlow with data such as completion rate of tasks"
method: GET
path: "/api/servicetodo/processes/taskFlows/{taskFlowIdentifier}/workers/processed"
tags: ["taskFlows"]
---

# Retrieve all workers of a taskFlow with data such as completion rate of tasks

`GET /api/servicetodo/processes/taskFlows/{taskFlowIdentifier}/workers/processed`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/servicetodo/processes/taskFlows/{taskFlowIdentifier}/workers/processed`
- Auth: HTTP bearer

## Path parameters

- `taskFlowIdentifier` string, uuid, required

## 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`

A collection of workers with data related to the completion of the taskFlow / tasks

- object
  - `data` object[]
    - `uuid` string, uuid, required
    - `workerUuid` string, uuid, required
    - `taskFlowUuid` string, uuid, required
    - `virtualTaskFlow` object, required
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `companyUuid` string, uuid, required
      - `status` 'draft' | 'published' | 'archived', required
      - `title` string, required
      - `internalName` string
      - `description` string
      - `taskUuids` string[]
      - `isTaskFlowSequential` boolean
      - `virtualTasks` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `companyUuid` string, uuid, required
        - `title` string, required
        - `description` string
        - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
        - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
        - `estimatedCompletionMinutes` number
        - `content` object
          - `buttonLabel` string
          - `text` string
          - `attachments` object[]: Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
            - `storedFileUuid` string, uuid, required
            - `filename` string, required
            - `mimeType` string, required
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputs` object[]
            - `uuid` string
            - `title` string
            - `subtitle` string
            - `description` string
            - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
            - `required` boolean
            - `items` object[]
              - …
            - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
            - `config` object
              - …
            - `customAttribute` object
              - …
          - `options` object
          - `signDoc` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `name` string, required
            - `technicalName` string
            - `fileUrls` string[]
            - `mergeKeys` string[]
            - `templateId` string
            - `editEmbedUrl` string
            - `companyUuid` string, uuid: Owning company. The NIL uuid marks an enterprise-level template, shared with every company in `enterpriseUuid`.
            - `enterpriseUuid` string, uuid: Owning enterprise. Only set when `companyUuid` is the NIL uuid.
            - `technical` boolean
            - `counterSignEnabled` boolean
            - `coSignerRequired` boolean
            - `coSignerEmailCustomAttributeKey` string
            - `editUrl` string: Edit URL for embedded templates created via templateCreateEmbeddedDraft
            - `editUrlExpiresAt` number: Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
          - `signDocUuid` string
          - `section2CompletionMethods` object[]
            - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
            - `requiredDuration` number
            - `calendarGroupUuid` string
            - `eventDescription` string
            - `recommended` boolean
            - `reminder` number
            - `customConferencingEnabled` boolean
            - `customConferencing` object
              - …
          - `url` string
          - `bgcProvider` string
          - `bgcPackage` string
          - `tinProvider` string
          - `endEvent` string
          - `hideCompletedButton` boolean
          - `appendWxQueryParams` boolean
          - `displayMode` 'iframe' | 'newTab'
          - `sensitiveData` boolean
          - `useI9C2PayloadFormat` boolean
          - `signingSecret` string: Encrypted HMAC-SHA256 signing secret for webhook deliveries. Obtain via POST /processes/tasks/webhookSigningSecret; the value stored here is the encrypted form and cannot be used to verify signatures. When set, every delivery includes X-Fountain-Signature and X-Fountain-Timestamp headers.
          - `customHeaders` object[]: Custom HTTP headers included in every webhook delivery for this endpoint. Each value must be the encrypted form returned by POST /processes/tasks/webhookCustomHeaderValue — never the clear text; a write carrying any other value is rejected, so a credential is never stored in clear text. Names must follow HTTP naming rules and cannot be a header Fountain already sets (Content-Type, Accept, X-Fountain-*, and transport headers). A delivery with an invalid header set is not sent and is recorded as an error on the assigned task.
            - `name` string, required
            - `value` string, required: encrypted header value
          - `triggerableType` 'flow' | 'task'
          - `triggerableTaskUuid` string
          - `companyAttributeSetUuid` string
          - `companyAttributeSet` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `companyUuid` string, required
            - `label` string, required
            - `description` string
            - `companyAttributes` object[]
              - …
            - `attachedTo` object
              - …
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
          - `instructionNotes` string
          - `attributesToReview` string[]
          - `requirementUuid` string, uuid: UUID of the compliance requirement from service-compliancev2
        - `requireReview` boolean
        - `reviewerEmployerUuids` string[]: Who reviews this task: employer uuids, or the roles supervisor and opening_owner resolved per worker. Allowed only when requireReview is true. Empty names no specific reviewer.
        - `reuseInRehire` boolean: When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
        - `rehireReuseMode` 'complete' | 'review': How a reused task is applied on rehire. 'complete' (default when absent) copies the previous answers and marks the task complete. 'review' prefills the previous answers but leaves the task incomplete for the worker to review and submit. Only consulted when reuseInRehire is not false.
        - `signedDocumentEmail` object: Email the signed PDF to the worker and these admins when a document-signing task's request is fully signed. Entries are employer uuids or `supervisor` / `opening_owner`. Document-signing tasks only.
          - `enabled` boolean, required
          - `recipientEmployerUuids` string[]
        - `isInternal` boolean
        - `internalTaskData` object
          - `employerUuids` string[]
          - `trigger` object
            - `type` string
            - `taskUuid` string
      - `segmentUuids` string[]
      - `virtualSegments` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `name` string, required
        - `description` string
        - `filters` string
        - `filterValues` string
        - `pipeline` string
        - `reference` object: For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
        - `companyUuid` string, uuid
        - `subscriptions` object[]
          - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'doctor' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
          - `key` string
        - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
        - `forceMatch` boolean: if true, will match worker even if they have the property `segmentEnabled` to true
        - `dynamicFilters` object, nullable
          - `event` string, required
          - `eventOffsetDirection` 'before' | 'after' | 'on', required
          - `offsetDays` number
          - `finalOffsetDirection` 'before' | 'after' | 'on'
        - `observerRecurrence` object, nullable
          - `type` 'annual', required
        - `observerTemplate` boolean: when enabled, this is meant to be a template/blueprint for actual observerSegments
        - `baseObserverSegmentUuids` string[]
        - `timezone` string
      - `autoAssignToNewWorkers` boolean
      - `taskFlowType` 'preboarding' | 'onboarding' | 'test'
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string, required
          - `content` string, required
        - `sms` object
          - `enabled` boolean, required
          - `content` string, required
      - `internalTaskMessages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
      - `deadline` object
        - `enabled` boolean, required
        - `delayInDays` number
        - `triggerProperty` 'hireDate' | 'startDate' | 'assignmentDate'
        - `reminder` boolean
        - `remindBeforeDays` number
      - `reminder` object
        - `enabled` boolean, required
        - `recurringDays` number
        - `messages` object
          - `email` object
            - `enabled` boolean, required
            - `subject` string, required
            - `content` string, required
          - `sms` object
            - `enabled` boolean, required
            - `content` string, required
      - `redirectUrl` string, uri
      - `workerCounts` object
        - `total` number
        - `notStarted` number
        - `inProgress` number
        - `completed` number
        - `overdue` number
        - `error` number
        - `toReview` number
        - `rejected` number
      - `currentVersionUuid` string, uuid
      - `currentVersionNumber` number
      - `currentVersionCreatedAt` string, date-time
    - `virtualWorker` object, required
      - `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
      - `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
    - `assignedTasks` object[], required
      - `uuid` string, uuid
      - `position` number
      - `status` 'error' | 'pending' | 'ready' | 'viewed' | 'inProgress' | 'completed'
      - `lastUpdatedAt` string, date
      - `createdAt` string, date
      - `taskUuid` string, uuid
      - `virtualTask` object
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `companyUuid` string, uuid, required
        - `title` string, required
        - `description` string
        - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
        - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
        - `estimatedCompletionMinutes` number
        - `content` object
          - `buttonLabel` string
          - `text` string
          - `attachments` object[]: Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
            - `storedFileUuid` string, uuid, required
            - `filename` string, required
            - `mimeType` string, required
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputs` object[]
            - `uuid` string
            - `title` string
            - `subtitle` string
            - `description` string
            - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
            - `required` boolean
            - `items` object[]
              - …
            - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
            - `config` object
              - …
            - `customAttribute` object
              - …
          - `options` object
          - `signDoc` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `name` string, required
            - `technicalName` string
            - `fileUrls` string[]
            - `mergeKeys` string[]
            - `templateId` string
            - `editEmbedUrl` string
            - `companyUuid` string, uuid: Owning company. The NIL uuid marks an enterprise-level template, shared with every company in `enterpriseUuid`.
            - `enterpriseUuid` string, uuid: Owning enterprise. Only set when `companyUuid` is the NIL uuid.
            - `technical` boolean
            - `counterSignEnabled` boolean
            - `coSignerRequired` boolean
            - `coSignerEmailCustomAttributeKey` string
            - `editUrl` string: Edit URL for embedded templates created via templateCreateEmbeddedDraft
            - `editUrlExpiresAt` number: Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
          - `signDocUuid` string
          - `section2CompletionMethods` object[]
            - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
            - `requiredDuration` number
            - `calendarGroupUuid` string
            - `eventDescription` string
            - `recommended` boolean
            - `reminder` number
            - `customConferencingEnabled` boolean
            - `customConferencing` object
              - …
          - `url` string
          - `bgcProvider` string
          - `bgcPackage` string
          - `tinProvider` string
          - `endEvent` string
          - `hideCompletedButton` boolean
          - `appendWxQueryParams` boolean
          - `displayMode` 'iframe' | 'newTab'
          - `sensitiveData` boolean
          - `useI9C2PayloadFormat` boolean
          - `signingSecret` string: Encrypted HMAC-SHA256 signing secret for webhook deliveries. Obtain via POST /processes/tasks/webhookSigningSecret; the value stored here is the encrypted form and cannot be used to verify signatures. When set, every delivery includes X-Fountain-Signature and X-Fountain-Timestamp headers.
          - `customHeaders` object[]: Custom HTTP headers included in every webhook delivery for this endpoint. Each value must be the encrypted form returned by POST /processes/tasks/webhookCustomHeaderValue — never the clear text; a write carrying any other value is rejected, so a credential is never stored in clear text. Names must follow HTTP naming rules and cannot be a header Fountain already sets (Content-Type, Accept, X-Fountain-*, and transport headers). A delivery with an invalid header set is not sent and is recorded as an error on the assigned task.
            - `name` string, required
            - `value` string, required: encrypted header value
          - `triggerableType` 'flow' | 'task'
          - `triggerableTaskUuid` string
          - `companyAttributeSetUuid` string
          - `companyAttributeSet` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `companyUuid` string, required
            - `label` string, required
            - `description` string
            - `companyAttributes` object[]
              - …
            - `attachedTo` object
              - …
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
          - `instructionNotes` string
          - `attributesToReview` string[]
          - `requirementUuid` string, uuid: UUID of the compliance requirement from service-compliancev2
        - `requireReview` boolean
        - `reviewerEmployerUuids` string[]: Who reviews this task: employer uuids, or the roles supervisor and opening_owner resolved per worker. Allowed only when requireReview is true. Empty names no specific reviewer.
        - `reuseInRehire` boolean: When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
        - `rehireReuseMode` 'complete' | 'review': How a reused task is applied on rehire. 'complete' (default when absent) copies the previous answers and marks the task complete. 'review' prefills the previous answers but leaves the task incomplete for the worker to review and submit. Only consulted when reuseInRehire is not false.
        - `signedDocumentEmail` object: Email the signed PDF to the worker and these admins when a document-signing task's request is fully signed. Entries are employer uuids or `supervisor` / `opening_owner`. Document-signing tasks only.
          - `enabled` boolean, required
          - `recipientEmployerUuids` string[]
        - `isInternal` boolean
        - `internalTaskData` object
          - `employerUuids` string[]
          - `trigger` object
            - `type` string
            - `taskUuid` string
    - `assignedTasksCount` number
    - `assignedTasksCompletedCount` number
    - `assignedTasksCompletionRate` number
    - `assignedTasksLastUpdatedAt` string, date
    - `assignedTasksFirstUpdatedAt` string, date
    - `rejected` boolean
    - `assignedTaskFlowStatus` 'notStarted' | 'inProgress' | 'toReview' | 'completed' | 'rejected' | 'error' | 'overdue'
    - `totalFlowStatus` 'notStarted' | 'workerActionRequired' | 'adminActionRequired' | 'blockedOrFailed' | 'complete': End-to-end flow status, internal tasks, reviews and counter-signatures included.
    - `adminActionReasons` string[]: Why the flow waits on an admin.
    - `workerTaskCounts` object: Worker-owned tasks the worker has handed off, out of all worker-owned tasks.
      - `done` number, required
      - `total` number, required
    - `adminTaskCounts` object: Completed admin-side tasks, out of the internal and automation tasks plus the worker tasks with a review or counter-signature step.
      - `done` number, required
      - `total` number, required
    - `taskFlowWorker` object
      - `uuid` string, uuid
      - `workerUuid` string, uuid
      - `taskFlowUuid` string, uuid
      - `taskFlowVersionUuid` string, uuid
      - `taskFlowVersionNumber` number
      - `taskFlowVersionTitle` string
      - `overallStatus` object
        - `status` 'notStarted' | 'overdue' | 'inProgress' | 'toReview' | 'rejected' | 'completed' | 'error'
        - `completedCount` number
        - `rejectedCount` number
        - `inProgressCount` number
        - `toReviewCount` number
        - `errorCount` number
        - `notStartedCount` number
        - `overdueCount` number
        - `workerProgress` 'notStarted' | 'inProgress' | 'workerTasksComplete': Progress over the worker-owned tasks only.
        - `totalFlowStatus` 'notStarted' | 'workerActionRequired' | 'adminActionRequired' | 'blockedOrFailed' | 'complete': End-to-end flow status, internal tasks, reviews and counter-signatures included.
        - `adminActionReasons` string[]: Why the flow waits on an admin.
        - `workerTaskCounts` object: Worker-owned tasks the worker has handed off, out of all worker-owned tasks.
          - `done` number, required
          - `total` number, required
        - `adminTaskCounts` object: Completed admin-side tasks, out of the internal and automation tasks plus the worker tasks with a review or counter-signature step.
          - `done` number, required
          - `total` number, required
        - `adminActionTaskCounts` object: Tasks waiting on an admin, per reason. A reason with none is absent.
          - `review` number
          - `rejectedSubmission` number
          - `countersignature` number
          - `employerTask` number
          - `externalFollowUp` number
    - `completedTaskUuids` string[], required
    - `taskStates` object
  - `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

---

[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)
