---
title: "Update one or multiple talent"
method: PATCH
path: "/api/servicepool/talents"
tags: ["talent"]
---

# Update one or multiple talent

`PATCH /api/servicepool/talents`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/servicepool/talents`
- Auth: HTTP bearer

Partially update multiple existing talents

## Request body

- union
  - TalentDtoInput
    - `uuid` string
    - `prospects` object[]
      - `uuid` string
      - `email` string, email, required: The email of the prospect
      - `firstName` string, required: The first name of the prospect
      - `middleName` string: The middle name of the prospect
      - `lastName` string: The last name of the prospect
      - `phone` string: The mobile phone of the prospect
      - `homeAddress` object
        - `address1` string: Street number and name of an address
        - `address2` string: Identifies a specific location within the context of address 1
        - `city` string: City name of an address
        - `county` string: County name of an address
        - `zip` string: Postal or ZIP code of an address
        - `state` string: State or province code of an address
        - `country` string: Country name of an address
      - `calculatedCustomAttributes` object: The calculated custom attributes of the prospect
      - `csvImportFileUuid` string: The unique identifier of the CSV import file
      - `leadCaptureFormUuid` string: The lead capture form the prospect submitted through. Server-stamped; absent on CSV and pipeline imports.
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` union, required: The value of the custom attribute
          - string
          - number
          - boolean
      - `dateOfBirth` string: The date of birth of the prospect
      - `filename` string: The filename of the prospect
      - `homePhone` string: The home phone of the prospect
      - `source` 'csv' | 'self-import': The source of the prospect
      - `timezone` string: The timezone of the prospect
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `consentSmsMarketing` boolean, nullable: Whether the prospect has consented to marketing SMS. Absent means never asked; false means an explicit decline; null clears a previously recorded answer back to never-asked. This is the only consent field Pool enforces — a decline excludes the talent from Pool campaign messaging.
      - `consentSmsMarketingAt` string, date-time: When the marketing SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentSmsTransactional` boolean, nullable: Whether the prospect has consented to transactional SMS. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no marketing/transactional campaign distinction, so this field is not enforced.
      - `consentSmsTransactionalAt` string, date-time: When the transactional SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsMarketing` boolean, nullable: Whether the prospect has consented to marketing voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsMarketingAt` string, date-time: When the marketing calls consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsTransactional` boolean, nullable: Whether the prospect has consented to transactional voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsTransactionalAt` string, date-time: When the transactional calls consent answer was recorded. Server-set; supplied values are ignored.
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
    - `wxWorkers` object[]
      - `wxWorkerUuid` string, required: The unique identifier of the worker
      - `startDate` string: The date and time the worker started
      - `hireDate` string: The date and time the worker was hired
      - `terminationDate` string: The date and time the worker was terminated
      - `jobUuid` string: The unique identifier of the job
      - `locationUuids` string[]: The location UUIDs the worker is assigned to
      - `locationGroupUuids` string[]: The location group UUIDs (including tree ancestors) derived from the worker locations
      - `locations` object[]: Denormalized location address resolved from locationUuids, kept live by worker ingest and the workforce.locations CDC handler
        - `locationUuid` string, required: The unique identifier of the location
        - `city` string: The city of the location
        - `stateCode` string: The state code of the location
        - `countryCode` string: The 2-letter ISO country code of the location
      - `brandUuid` string: The unique identifier of the brand the worker belongs to
      - `employmentStatus` object
        - `type` 'created' | 'preHire' | 'active' | 'rehire' | 'inactive' | 'terminated' | 'temporary', required: The type of the employment status
        - `subtype` 'applicant' | 'employee' | 'leaveOfAbsence' | 'suspended' | 'seasonal' | 'furloughed' | 'resigned' | 'fired' | 'involuntarySeparation' | 'archived': The subtype of the employment status
        - `lastStatusUpdateDate` string: The date and time the employment status was updated
      - `rehireEligible` boolean: Whether the worker is rehire eligible
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
      - `uuid` string
    - `firstName` string: The first name of the talent
    - `middleName` string: The middle name of the talent
    - `lastName` string: The last name of the talent
    - `displayFullName` string: The display full name of the talent
    - `dateOfBirth` string: The date of birth of the talent
    - `mobilePhone` object
      - `number` string: Phone number
      - `countryCode` string: Country code of a phone number
      - `verified` boolean: Indicator for whether the phone number is verified
    - `homeAddress` object
      - `address1` string: Street number and name of an address
      - `address2` string: Identifies a specific location within the context of address 1
      - `city` string: City name of an address
      - `county` string: County name of an address
      - `zip` string: Postal or ZIP code of an address
      - `state` string: State or province code of an address
      - `country` string: Country name of an address
      - `location` object
        - `type` 'Point', required: The type of location
        - `coordinates` number[], required: The coordinates of the location
    - `lastActivityAt` string: The date and time of the most recent Pool-relevant activity for retention
    - `availability` object
      - `monday` string[], required: Availability periods for Monday
      - `tuesday` string[], required: Availability periods for Tuesday
      - `wednesday` string[], required: Availability periods for Wednesday
      - `thursday` string[], required: Availability periods for Thursday
      - `friday` string[], required: Availability periods for Friday
      - `saturday` string[], required: Availability periods for Saturday
      - `sunday` string[], required: Availability periods for Sunday
    - `onetV2SkillsVector` number[]: Vector of onet v2 skills information
    - `primaryCustomValues` object
      - `customAttributes` object[]
        - `type` 'concept' | 'customAttribute' | 'prospect', required: The type of the custom attribute or concept
        - `conceptName` string: The name of the concept
        - `dataKey` string: The key of the data in Hire
        - `values` object[]
          - `rawValue` string, required: The raw value of the concept
          - `conceptOptionUuid` string: The unique identifier of the concept option
          - `label` string, required: The label of the concept option
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
        - `uploadedAt` string: The date and time the custom attribute or concept was uploaded
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker
  - TalentDtoInput[]
    - `uuid` string
    - `prospects` object[]
      - `uuid` string
      - `email` string, email, required: The email of the prospect
      - `firstName` string, required: The first name of the prospect
      - `middleName` string: The middle name of the prospect
      - `lastName` string: The last name of the prospect
      - `phone` string: The mobile phone of the prospect
      - `homeAddress` object
        - `address1` string: Street number and name of an address
        - `address2` string: Identifies a specific location within the context of address 1
        - `city` string: City name of an address
        - `county` string: County name of an address
        - `zip` string: Postal or ZIP code of an address
        - `state` string: State or province code of an address
        - `country` string: Country name of an address
      - `calculatedCustomAttributes` object: The calculated custom attributes of the prospect
      - `csvImportFileUuid` string: The unique identifier of the CSV import file
      - `leadCaptureFormUuid` string: The lead capture form the prospect submitted through. Server-stamped; absent on CSV and pipeline imports.
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` union, required: The value of the custom attribute
          - string
          - number
          - boolean
      - `dateOfBirth` string: The date of birth of the prospect
      - `filename` string: The filename of the prospect
      - `homePhone` string: The home phone of the prospect
      - `source` 'csv' | 'self-import': The source of the prospect
      - `timezone` string: The timezone of the prospect
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `consentSmsMarketing` boolean, nullable: Whether the prospect has consented to marketing SMS. Absent means never asked; false means an explicit decline; null clears a previously recorded answer back to never-asked. This is the only consent field Pool enforces — a decline excludes the talent from Pool campaign messaging.
      - `consentSmsMarketingAt` string, date-time: When the marketing SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentSmsTransactional` boolean, nullable: Whether the prospect has consented to transactional SMS. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no marketing/transactional campaign distinction, so this field is not enforced.
      - `consentSmsTransactionalAt` string, date-time: When the transactional SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsMarketing` boolean, nullable: Whether the prospect has consented to marketing voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsMarketingAt` string, date-time: When the marketing calls consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsTransactional` boolean, nullable: Whether the prospect has consented to transactional voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsTransactionalAt` string, date-time: When the transactional calls consent answer was recorded. Server-set; supplied values are ignored.
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
    - `wxWorkers` object[]
      - `wxWorkerUuid` string, required: The unique identifier of the worker
      - `startDate` string: The date and time the worker started
      - `hireDate` string: The date and time the worker was hired
      - `terminationDate` string: The date and time the worker was terminated
      - `jobUuid` string: The unique identifier of the job
      - `locationUuids` string[]: The location UUIDs the worker is assigned to
      - `locationGroupUuids` string[]: The location group UUIDs (including tree ancestors) derived from the worker locations
      - `locations` object[]: Denormalized location address resolved from locationUuids, kept live by worker ingest and the workforce.locations CDC handler
        - `locationUuid` string, required: The unique identifier of the location
        - `city` string: The city of the location
        - `stateCode` string: The state code of the location
        - `countryCode` string: The 2-letter ISO country code of the location
      - `brandUuid` string: The unique identifier of the brand the worker belongs to
      - `employmentStatus` object
        - `type` 'created' | 'preHire' | 'active' | 'rehire' | 'inactive' | 'terminated' | 'temporary', required: The type of the employment status
        - `subtype` 'applicant' | 'employee' | 'leaveOfAbsence' | 'suspended' | 'seasonal' | 'furloughed' | 'resigned' | 'fired' | 'involuntarySeparation' | 'archived': The subtype of the employment status
        - `lastStatusUpdateDate` string: The date and time the employment status was updated
      - `rehireEligible` boolean: Whether the worker is rehire eligible
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
      - `uuid` string
    - `firstName` string: The first name of the talent
    - `middleName` string: The middle name of the talent
    - `lastName` string: The last name of the talent
    - `displayFullName` string: The display full name of the talent
    - `dateOfBirth` string: The date of birth of the talent
    - `mobilePhone` object
      - `number` string: Phone number
      - `countryCode` string: Country code of a phone number
      - `verified` boolean: Indicator for whether the phone number is verified
    - `homeAddress` object
      - `address1` string: Street number and name of an address
      - `address2` string: Identifies a specific location within the context of address 1
      - `city` string: City name of an address
      - `county` string: County name of an address
      - `zip` string: Postal or ZIP code of an address
      - `state` string: State or province code of an address
      - `country` string: Country name of an address
      - `location` object
        - `type` 'Point', required: The type of location
        - `coordinates` number[], required: The coordinates of the location
    - `lastActivityAt` string: The date and time of the most recent Pool-relevant activity for retention
    - `availability` object
      - `monday` string[], required: Availability periods for Monday
      - `tuesday` string[], required: Availability periods for Tuesday
      - `wednesday` string[], required: Availability periods for Wednesday
      - `thursday` string[], required: Availability periods for Thursday
      - `friday` string[], required: Availability periods for Friday
      - `saturday` string[], required: Availability periods for Saturday
      - `sunday` string[], required: Availability periods for Sunday
    - `onetV2SkillsVector` number[]: Vector of onet v2 skills information
    - `primaryCustomValues` object
      - `customAttributes` object[]
        - `type` 'concept' | 'customAttribute' | 'prospect', required: The type of the custom attribute or concept
        - `conceptName` string: The name of the concept
        - `dataKey` string: The key of the data in Hire
        - `values` object[]
          - `rawValue` string, required: The raw value of the concept
          - `conceptOptionUuid` string: The unique identifier of the concept option
          - `label` string, required: The label of the concept option
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
        - `uploadedAt` string: The date and time the custom attribute or concept was uploaded
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker

## Response `202`

updated talent.

- object
  - `data` TalentDtoInput[]
    - `uuid` string
    - `prospects` object[]
      - `uuid` string
      - `email` string, email, required: The email of the prospect
      - `firstName` string, required: The first name of the prospect
      - `middleName` string: The middle name of the prospect
      - `lastName` string: The last name of the prospect
      - `phone` string: The mobile phone of the prospect
      - `homeAddress` object
        - `address1` string: Street number and name of an address
        - `address2` string: Identifies a specific location within the context of address 1
        - `city` string: City name of an address
        - `county` string: County name of an address
        - `zip` string: Postal or ZIP code of an address
        - `state` string: State or province code of an address
        - `country` string: Country name of an address
      - `calculatedCustomAttributes` object: The calculated custom attributes of the prospect
      - `csvImportFileUuid` string: The unique identifier of the CSV import file
      - `leadCaptureFormUuid` string: The lead capture form the prospect submitted through. Server-stamped; absent on CSV and pipeline imports.
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` union, required: The value of the custom attribute
          - string
          - number
          - boolean
      - `dateOfBirth` string: The date of birth of the prospect
      - `filename` string: The filename of the prospect
      - `homePhone` string: The home phone of the prospect
      - `source` 'csv' | 'self-import': The source of the prospect
      - `timezone` string: The timezone of the prospect
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `consentSmsMarketing` boolean, nullable: Whether the prospect has consented to marketing SMS. Absent means never asked; false means an explicit decline; null clears a previously recorded answer back to never-asked. This is the only consent field Pool enforces — a decline excludes the talent from Pool campaign messaging.
      - `consentSmsMarketingAt` string, date-time: When the marketing SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentSmsTransactional` boolean, nullable: Whether the prospect has consented to transactional SMS. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no marketing/transactional campaign distinction, so this field is not enforced.
      - `consentSmsTransactionalAt` string, date-time: When the transactional SMS consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsMarketing` boolean, nullable: Whether the prospect has consented to marketing voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsMarketingAt` string, date-time: When the marketing calls consent answer was recorded. Server-set; supplied values are ignored.
      - `consentCallsTransactional` boolean, nullable: Whether the prospect has consented to transactional voice calls. Null clears a previously recorded answer. Stored for parity with the Hire applicant API; Pool has no voice channel, so this field is not enforced.
      - `consentCallsTransactionalAt` string, date-time: When the transactional calls consent answer was recorded. Server-set; supplied values are ignored.
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
    - `wxWorkers` object[]
      - `wxWorkerUuid` string, required: The unique identifier of the worker
      - `startDate` string: The date and time the worker started
      - `hireDate` string: The date and time the worker was hired
      - `terminationDate` string: The date and time the worker was terminated
      - `jobUuid` string: The unique identifier of the job
      - `locationUuids` string[]: The location UUIDs the worker is assigned to
      - `locationGroupUuids` string[]: The location group UUIDs (including tree ancestors) derived from the worker locations
      - `locations` object[]: Denormalized location address resolved from locationUuids, kept live by worker ingest and the workforce.locations CDC handler
        - `locationUuid` string, required: The unique identifier of the location
        - `city` string: The city of the location
        - `stateCode` string: The state code of the location
        - `countryCode` string: The 2-letter ISO country code of the location
      - `brandUuid` string: The unique identifier of the brand the worker belongs to
      - `employmentStatus` object
        - `type` 'created' | 'preHire' | 'active' | 'rehire' | 'inactive' | 'terminated' | 'temporary', required: The type of the employment status
        - `subtype` 'applicant' | 'employee' | 'leaveOfAbsence' | 'suspended' | 'seasonal' | 'furloughed' | 'resigned' | 'fired' | 'involuntarySeparation' | 'archived': The subtype of the employment status
        - `lastStatusUpdateDate` string: The date and time the employment status was updated
      - `rehireEligible` boolean: Whether the worker is rehire eligible
      - `customAttributes` object[]
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker
      - `onetV2Skills` object[]: List of onet v2 skills
        - `skill` string, required
        - `category` string
        - `Element ID` string
        - `frequency` number
        - `dataValue` number
        - `evidence` string
      - `schemaVersion` integer: Schema version for migration tracking. Incremented when the sub-document schema changes.
      - `uuid` string
    - `firstName` string: The first name of the talent
    - `middleName` string: The middle name of the talent
    - `lastName` string: The last name of the talent
    - `displayFullName` string: The display full name of the talent
    - `dateOfBirth` string: The date of birth of the talent
    - `mobilePhone` object
      - `number` string: Phone number
      - `countryCode` string: Country code of a phone number
      - `verified` boolean: Indicator for whether the phone number is verified
    - `homeAddress` object
      - `address1` string: Street number and name of an address
      - `address2` string: Identifies a specific location within the context of address 1
      - `city` string: City name of an address
      - `county` string: County name of an address
      - `zip` string: Postal or ZIP code of an address
      - `state` string: State or province code of an address
      - `country` string: Country name of an address
      - `location` object
        - `type` 'Point', required: The type of location
        - `coordinates` number[], required: The coordinates of the location
    - `lastActivityAt` string: The date and time of the most recent Pool-relevant activity for retention
    - `availability` object
      - `monday` string[], required: Availability periods for Monday
      - `tuesday` string[], required: Availability periods for Tuesday
      - `wednesday` string[], required: Availability periods for Wednesday
      - `thursday` string[], required: Availability periods for Thursday
      - `friday` string[], required: Availability periods for Friday
      - `saturday` string[], required: Availability periods for Saturday
      - `sunday` string[], required: Availability periods for Sunday
    - `onetV2SkillsVector` number[]: Vector of onet v2 skills information
    - `primaryCustomValues` object
      - `customAttributes` object[]
        - `type` 'concept' | 'customAttribute' | 'prospect', required: The type of the custom attribute or concept
        - `conceptName` string: The name of the concept
        - `dataKey` string: The key of the data in Hire
        - `values` object[]
          - `rawValue` string, required: The raw value of the concept
          - `conceptOptionUuid` string: The unique identifier of the concept option
          - `label` string, required: The label of the concept option
        - `customAttributeUuid` string, required: The unique identifier of the custom attribute
        - `value` string, nullable: The value of the custom attribute
        - `uploadedAt` string: The date and time the custom attribute or concept was uploaded
      - `calculatedCustomAttributes` object: The calculated custom attributes of the worker
  - `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

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