---
title: "Update Applicant Info"
method: PUT
path: "/v2/applicants/{id}"
tags: ["Applicants", "exposeAsMcpTool"]
---

# Update Applicant Info

`PUT /v2/applicants/{id}`

Update an applicant's information

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `email` string
  - `phone_number` string
  - `data` object
  - `secure_data` object
  - `rejection_reason` string
  - `consent_sms_transactional` boolean — Applicant has consented to transactional SMS.
  - `consent_sms_marketing` boolean — Applicant has consented to marketing SMS.
  - `consent_calls_transactional` boolean — Applicant has consented to transactional voice calls.
  - `consent_calls_marketing` boolean — Applicant has consented to marketing voice calls.

## Response `200`

OK

- Applicant
  - `email` string, required — Applicants Email Address
  - `name` string, required — Applicants Full Name
  - `key` string — Unique key used to identify an Applicant
  - `metadata` object
    - `temporary` boolean — Whether or not applicant is a test applicant.
  - `first_name` string, required — Applicants First Name
  - `last_name` string, required — Applicants Last Name
  - `phone_number` string, required — Applicants Phone Number
  - `normalized_phone_number` string, required — Applicants Phone Number
  - `phone_number_country_code` string, required — Applicants Phone Number country code
  - `data` object, required — Applicant extra information
  - `created_at` string, date-time, required — Date when the Applicant was created
  - `updated_at` string, date-time, nullable, required — Date when the Applicant was last updated
  - `receive_automated_emails` boolean, required — Whether the Applicant receives automated emails or not.
  - `number_opted_out` boolean — Deprecated. Whether the Applicant has opted out of sms or not. Use the granular `consent_sms_transactional` / `consent_sms_marketing` / `consent_calls_transactional` / `consent_calls_marketing` fields instead.
  - `referral_id` string, nullable — Referral ID
  - `wx_external_id` string, nullable — WX Worker ID
  - `created_from_ip` string, nullable — IP Address collected when application form was submitted. IPv4 or IPv6 format
  - `application_locale` string, nullable — Locale the applicant used when submitting the application.
  - `geo_coded_location` object, nullable — Geo-coded location of applicant
    - `latitude` number, double
    - `longitude` number, double
  - `labels` object[], required
    - `title` string, required — Name of the Label
    - `completed` boolean, required — Was the label marked as done.
    - `completed_at` string, date-time, required — DateTime the Label was marked as done.
  - `is_duplicate` boolean, required — Applicants has been marked as a duplicate.
  - `duplicate_id` string, nullable — UUID that links duplicate applicants
  - `file_upload_requests` object[], required
    - `id` number, required — ID of the file upload request.
    - `recollection_reason` 'blurry' | 'corrupt' | 'incorrect' | 'expired' | 'custom', required — Reason it is being recollected.
    - `created_at` string, date-time, required — Date when the File Upload Request was created
    - `document_name` string, required — File Upload Request Document Name
  - `portal_url` string, uri
  - `secure_data` object, required — This contains a key/value pair of any data deemed secure. An example would be SSN.
    - `disability` string, nullable — Predefined secure key
    - `ethnicity` string, nullable — Predefined secure key
    - `gender` string, nullable — Predefined secure key
    - `sexual_orientation` string, nullable — Predefined secure key
    - `transgender_identity` string, nullable — Predefined secure key
    - `veteran_us` string, nullable — Predefined secure key
    - `citizenship` string, nullable — Predefined secure key
    - `can_work_in_us` boolean, nullable — Predefined secure key
    - `ssn` string, nullable — Predefined secure key
    - `national_identification_number` string, nullable — Predefined secure key
    - `tax_id` string, nullable — Predefined secure key
    - `income_salary` string, nullable — Predefined secure key
    - `income_income_tax_dollar_amount` string, nullable — Predefined secure key
    - `income_ss_tax` string, nullable — Predefined secure key
    - `income_medicare_tax` string, nullable — Predefined secure key
    - `income_taxpayer_identification_number` string, nullable — Predefined secure key
    - `bank_name` string, nullable — Predefined secure key
    - `bank_routing_number` string, nullable — Predefined secure key
    - `bank_account_number` string, nullable — Predefined secure key
    - `iban` string, nullable — Predefined secure key
    - `bic` string, nullable — Predefined secure key
    - `vehicle_make` string, nullable — Predefined secure key
    - `vehicle_model` string, nullable — Predefined secure key
    - `vehicle_year` number, nullable — Predefined secure key
    - `vehicle_registration_plate_number` string, nullable — Predefined secure key
    - `vehicle_vin_number` string, nullable — Predefined secure key
    - `driver_license_number` string, nullable — Predefined secure key
    - `driver_license_expiration_date` string, nullable — Predefined secure key
    - `driver_license_state` string, nullable — Predefined secure key
    - `insurance_type` string, nullable — Predefined secure key
    - `insurance_benefactor_first_name` string, nullable — Predefined secure key
    - `insurance_benefactor_middle_name` string, nullable — Predefined secure key
    - `insurance_benefactor_last_name` string, nullable — Predefined secure key
    - `insurance_member_id` string, nullable — Predefined secure key
    - `insurance_company_group_id` string, nullable — Predefined secure key
    - `insurance_company_of_issue` string, nullable — Predefined secure key
    - `insurance_country_of_issue` string, nullable — Predefined secure key
    - `insurance_city_of_issue` string, nullable — Predefined secure key
    - `insurance_issue_date` string, nullable — Predefined secure key
    - `insurance_expiration_date` string, nullable — Predefined secure key
    - `passport_number` string, nullable — Predefined secure key
    - `passport_country_of_issue` string, nullable — Predefined secure key
    - `passport_city_of_issue` string, nullable — Predefined secure key
    - `passport_issue_date` string, nullable — Predefined secure key
    - `passport_expiration_date` string, nullable — Predefined secure key
  - `lessonly` object
    - `lesson_results` object[], required
      - `lesson_url` string, uri, required — The URL to visit the Lessonly lesson.
      - `score_percent` number, required — The score of the Lessonly lesson.
      - `report_card_url` string, uri, required — The URL to Lessonly report card.
      - `completed_at` string, date-time, required — The date-time the lesson was completed.
      - `lesson_name` string, required — The Lessonly lesson name.
    - `path_results` object[], required
      - `path_url` string, uri, required — The URL to the Path.
      - `goal` number, required — Path goal.
      - `progress` number, required — Path progress.
      - `path_name` string, required — The Path name.
  - `video_urls` string[]
  - `video_url_objects` object[] — Video URLs with question_id and label for mapping videos to questions. Prefer over video_urls when order-independent mapping is needed.
    - `url` string, uri — The URL of the video.
    - `question_id` integer, nullable — ID of the video recording stage question.
    - `label` string, nullable — Question text (e.g. "Why do you want this job?").
  - `assigned_user` object
    - `id` string — The assigned user's id
    - `email` string — The assigned user's email address
    - `name` string — The assigned user's name
  - `i9` object
    - `last_name` string — i9 form collected last name.
    - `first_name` string — i9 form collected first name.
    - `middle_initial` string — i9 form collected middle name.
    - `other_last_names` string — i9 form collected other last name.
    - `address` string — i9 form collected address.
    - `apartment_number` string — i9 form collected apartment number.
    - `city` string — i9 form collected city.
    - `state` string — i9 form collected state.
    - `zipcode` number — i9 form collected zipcode.
    - `date_of_birth` string — i9 form collected date of birth.
    - `ssn` string — i9 form collected Social Security Number.
    - `email` string — i9 form collected email.
    - `telephone` string — i9 form collected telephone.
    - `citizenship_status` string — i9 form collected citizenship status.
    - `signature_date` string — i9 form signature date.
    - `preparer_used` 'A preparer(s) and/or translator(s) assisted the employee in completing Section 1' | 'I did not use a preparer or translator' — Indicating if the i9 form was prepared by someone else.
    - `employer_signature_date` string — Employer signed date in YYYY-MM-DD format.
    - `preparer_signature_date` string — Preparer signed date in YYYY-MM-DD format.
    - `preparer_last_name` string, nullable — Prepares first name.
    - `preparer_first_name` string, nullable — Prepares last name.
    - `preparer_address` string, nullable — Prepares address.
    - `preparer_city` string, nullable — Prepares city.
    - `preparer_state` string, nullable — Prepares state.
    - `preparer_zipcode` string, nullable — Prepares zipcode.
  - `i9_status` object, required
    - `status` 'awaiting_employee' | 'awaiting_employer' | 'pending' | 'complete' | 'opted_out' | 'awaiting_authorized_representative' — The status of the i9 Form
    - `last_form_update` string, date-time — The DateTime the form was last updated at.
    - `landed_at` string, date-time — The DateTime the applicant filled out the i9 Form.
  - `i9_pdf` string, nullable — The URL to visit i9 PDF Form.
  - `everify` object
    - `case_number` string, required — E-Verify case number.
    - `case_status` 'CLOSE_CASE_AND_RESUBMIT' | 'CLOSED' | 'DRAFT' | 'EMPLOYMENT_AUTHORIZED' | 'FINAL_NONCONFIRMATION' | 'MANUAL_REVIEW' | 'PENDING_REFERRAL' | 'PHOTO_MATCH' | 'QUEUED' | 'REFERRED' | 'SCAN_AND_UPLOAD' | 'UNCONFIRMED_DATA', required — E-Verify case status.
    - `case_eligibility_statement` 'EMPLOYMENT_AUTHORIZED' | 'NO_ACTION_FNC' | 'NO_SHOW' | 'NOT_AUTHORIZED_EMPLOYMENT' | 'RESUBMIT_CASE', nullable, required — E-Verify case eligbility statement.
    - `created_at` string, date-time, required — E-Verify case created_at.
    - `updated_at` string, date-time, required — E-Verify case updated_at.
  - `addresses` object[], required
    - `street_name` string, required — Address street name
    - `address_2` string, required — Address two name
    - `city` string, required — Address city name
    - `state` string, required — Address state name
    - `zipcode` string, required — Address zipcode
    - `country` string, required — Address country
    - `latitude` number, required — Address latitude
    - `longitude` number, required — Address longitude
  - `id` string, required — ID of the applicant used when making calls on behalf of the applicant.
  - `last_transitioned_at` string, date-time, nullable, required — DateTime the applicant was last transitioned from one stage to another.
  - `timezone` string, nullable — Timezone of the applicant
  - `background_checks` union[], required
    - union
      - object
        - `status` 'clear' | 'consider' | 'negative' | 'non_negative' | 'complete' | 'pending' | 'suspended' | 'dispute' | 'canceled', required — Checkr background check status
        - `title` string, required — Title of the background check.
        - `updated_at` string, date-time, required — Last updated_at for the background check.
        - `candidate_id` string, required — The candidate ID of the applicant from the background check provider.
        - `report_id` string, required — The report ID of the background check from the background check provider.
        - `vendor` 'checkr', required
      - object
        - `title` string, required — Title of the background check.
        - `applicant_id` string, required — The applicant ID of the applicant from the background check provider.
        - `updated_at` string, date-time, required — Last updated_at for the background check.
        - `status` 'no bgc' | 'pending' | 'consented' | 'not consented' | 'clear' | 'consider' | 'withdrawn' | 'paused' | 'reopened', required — Onfido background check status
        - `check_id` string, required — The report ID of the background check from the background check provider.
        - `vendor` 'onfido', required
  - `document_signatures` object[], required
    - `signature_id` string — Document Signing ID
    - `status` 'unopened' | 'opened' | 'signed' | 'admin_reviewed' — Document Signing Status
    - `vendor` 'hellosign' | 'docusign' — Document Signing Vendor
    - `file_url` string, uri, nullable — The URL of the signed document
  - `document_uploads` object[]
    - `filename` string — The name of the uploaded file
    - `url` string — URL from which to download the file
    - `data_key` string — The key the file was uploaded under
  - `partner_data` object[], required — Partner-specific data. Each element is an object with a single key (the partner name, e.g. "AI Interview") whose value is an array. For each completed package, the array will have one element. The completed package object will only have keys "statuses" and "details". The array will always end with one applicant-level entry with keys "statuses", "details", "labels", and "metadata".
  - `partner_option_data` object[], required
  - `can_receive_sms` boolean, required
  - `consent_sms_transactional` boolean — AXHE-3408: Applicant has opted in to transactional SMS about their current application.
  - `consent_sms_marketing` boolean — AXHE-3408: Applicant has opted in to marketing SMS about future opportunities.
  - `consent_calls_transactional` boolean — AXHE-3408: Applicant has opted in to calls about their current application.
  - `consent_calls_marketing` boolean — AXHE-3408: Applicant has opted in to calls about future opportunities or retention programs.
  - `consent_sms_transactional_at` string, date-time, nullable — Timestamp of the most recent change to consent_sms_transactional.
  - `consent_sms_marketing_at` string, date-time, nullable — Timestamp of the most recent change to consent_sms_marketing.
  - `consent_calls_transactional_at` string, date-time, nullable — Timestamp of the most recent change to consent_calls_transactional.
  - `consent_calls_marketing_at` string, date-time, nullable — Timestamp of the most recent change to consent_calls_marketing.
  - `phone_platform` 'sms' | 'whats_app', required
  - `work_availability` 'sunday_morning' | 'sunday_afternoon' | 'sunday_evening' | 'monday_morning' | 'monday_afternoon' | 'monday_evening' | 'tuesday_morning' | 'tuesday_afternoon' | 'tuesday_evening' | 'wednesday_morning' | 'wednesday_afternoon' | 'wednesday_evening' | 'thursday_morning' | 'thursday_afternoon' | 'thursday_evening' | 'friday_morning' | 'friday_afternoon' | 'friday_evening' | 'saturday_morning' | 'saturday_afternoon' | 'saturday_evening'
  - `date_of_birth` string, date
  - `team_or_solo` 'team' | 'solo'
  - `ssn` string, nullable — Predefined secure key at the root
  - `funnel` object, required
    - `title` string, required — Name of the funnel the applicant is currently in.
    - `custom_id` string, required — A custom ID for the funnel
    - `id` string, required — The ID for the funnel
    - `opening_owner` string, nullable — The ID of the user that owns the funnel
    - `opening_owner_email` string, nullable — The email of the user that owns the funnel
    - `customer_attributes` CustomerAttribute[], nullable — List of customer attributes for the opening
      - `value` string, required — Value of the attribute
      - `type` string, required — Human-readable display name of the attribute
      - `key` string, nullable — Machine-readable identifier for the attribute (e.g. JOB_CODE). Optional — not all endpoints that embed customer_attributes populate this field yet (e.g. openings, locations, and location groups currently return only type and value).
    - `location` object — Job Location for the given Opening.
      - `name` string, required
      - `id` string, required
      - `latitude` number, required
      - `longitude` number, required
      - `address` string, nullable — The addresss of the Location
      - `address_detail` object
        - `city` string, nullable — The Location's city
        - `state_code` string, nullable — The two-letter state code for the Location
        - `postal_code` string, nullable — The Location's postal code
        - `street_address` string, nullable — The Location's street address
      - `brand_id` string, nullable — The id of the Brand the Location is associated with
      - `customer_attributes` CustomerAttribute[], nullable — List of customer attributes for the location
        - `value` string, required — Value of the attribute
        - `type` string, required — Human-readable display name of the attribute
        - `key` string, nullable — Machine-readable identifier for the attribute (e.g. JOB_CODE). Optional — not all endpoints that embed customer_attributes populate this field yet (e.g. openings, locations, and location groups currently return only type and value).
      - `location_group` object, required
        - `name` string, required
        - `id` string, required
    - `position` object — Job Position
      - `name` string, required
      - `id` string, required
      - `customer_attributes` CustomerAttribute[], nullable — List of customer attributes for the position
        - `value` string, required — Value of the attribute
        - `type` string, required — Human-readable display name of the attribute
        - `key` string, nullable — Machine-readable identifier for the attribute (e.g. JOB_CODE). Optional — not all endpoints that embed customer_attributes populate this field yet (e.g. openings, locations, and location groups currently return only type and value).
    - `opening_pay_rate` OpeningPayRate
      - `compensation` string, nullable — The pay rate
      - `compensation_currency_code` string — The currency of the pay rate
      - `compensation_type` 'hour' | 'day' | 'month' | 'year' — How often the pay occurs
      - `compensation_min` string, nullable — The minimum pay range
  - `stage` object, nullable, required
    - `title` string, required — Name of the stage the applicant is currently in.
    - `id` string, required — The ID for the stage
    - `parent_id` string, nullable, required — The stage parent ID for the funnel
    - `type` string, required — The stage type.
    - `portal_title` string, nullable — Title of the stage shown in the AX Portal if configured
    - `is_hiring_stage` boolean, required — Indicator for whether the stage marks the applicant being hired
  - `w4_federal_form` object
    - `form_url` string, uri, required — W4 Download URL
    - `status` 'awaiting_employee' | 'awaiting_employer' | 'pending' | 'complete' | 'opted_out' | 'awaiting_authorized_representative', required — W4 Status
    - `external_id` string, required — UUID for W4 external ID
    - `show_applicant_redo_buttons` boolean, required
    - `applicant_external_id` string, required — Applicant external ID
    - `contents` object, required
      - `first_name` string, required — First name
      - `last_name` string, required — Last name
      - `ssn` string, required — Social Security Number
  - `w4_state_form` object
    - `form_state` string, required — W4 State
    - `form_url` string, uri, required — W4 Download URL
    - `status` 'awaiting_employee' | 'awaiting_employer' | 'pending' | 'complete' | 'opted_out' | 'awaiting_authorized_representative', required — W4 Status
    - `external_id` string, required — UUID for W4 external ID
    - `show_applicant_redo_buttons` boolean, required
    - `applicant_external_id` string, required — Applicant external ID
    - `employer_enabled` boolean, nullable, required
    - `data` object, required
  - `score_cards_results` object[]
  - `assessments` object[]
    - `completed_at` string, datetime — When the assessment was completed
    - `file_url` string, nullable — URL to download the assessment file, if applicable
    - `id` string — The ID for the Assessment
    - `score` integer — Score achieved in the assessment
    - `status` string — Status of the assessment
    - `system_type` string — System type of the assessment
    - `title` string — Title of the assessment
  - `rejection_reason` string — Manually set reason for rejection.
  - `disability` string, nullable — Predefined secure key at the root
  - `ethnicity` string, nullable — Predefined secure key at the root
  - `gender` string, nullable — Predefined secure key at the root
  - `sexual_orientation` string, nullable — Predefined secure key at the root
  - `transgender_identity` string, nullable — Predefined secure key at the root
  - `veteran_us` string, nullable — Predefined secure key at the root
  - `citizenship` string, nullable — Predefined secure key at the root
  - `can_work_in_us` boolean, nullable — Predefined secure key at the root
  - `national_identification_number` string, nullable — Predefined secure key at the root
  - `tax_id` string, nullable — Predefined secure key at the root
  - `income_salary` string, nullable — Predefined secure key at the root
  - `income_income_tax_dollar_amount` string, nullable — Predefined secure key at the root
  - `income_ss_tax` string, nullable — Predefined secure key at the root
  - `income_medicare_tax` string, nullable — Predefined secure key at the root
  - `income_taxpayer_identification_number` string, nullable — Predefined secure key at the root
  - `bank_name` string, nullable — Predefined secure key at the root
  - `bank_routing_number` string, nullable — Predefined secure key at the root
  - `bank_account_number` string, nullable — Predefined secure key at the root
  - `iban` string, nullable — Predefined secure key at the root
  - `bic` string, nullable — Predefined secure key at the root
  - `vehicle_make` string, nullable — Predefined secure key at the root
  - `vehicle_model` string, nullable — Predefined secure key at the root
  - `vehicle_year` number, nullable — Predefined secure key at the root
  - `vehicle_registration_plate_number` string, nullable — Predefined secure key at the root
  - `vehicle_vin_number` string, nullable — Predefined secure key at the root
  - `driver_license_number` string, nullable — Predefined secure key at the root
  - `driver_license_expiration_date` string, nullable — Predefined secure key at the root
  - `driver_license_state` string, nullable — Predefined secure key at the root
  - `insurance_type` string, nullable — Predefined secure key at the root
  - `insurance_benefactor_first_name` string, nullable — Predefined secure key at the root
  - `insurance_benefactor_middle_name` string, nullable — Predefined secure key at the root
  - `insurance_benefactor_last_name` string, nullable — Predefined secure key at the root
  - `insurance_member_id` string, nullable — Predefined secure key at the root
  - `insurance_company_group_id` string, nullable — Predefined secure key at the root
  - `insurance_company_of_issue` string, nullable — Predefined secure key at the root
  - `insurance_country_of_issue` string, nullable — Predefined secure key at the root
  - `insurance_city_of_issue` string, nullable — Predefined secure key at the root
  - `insurance_issue_date` string, nullable — Predefined secure key at the root
  - `insurance_expiration_date` string, nullable — Predefined secure key at the root
  - `passport_number` string, nullable — Predefined secure key at the root
  - `passport_country_of_issue` string, nullable — Predefined secure key at the root
  - `passport_city_of_issue` string, nullable — Predefined secure key at the root
  - `passport_issue_date` string, nullable — Predefined secure key at the root
  - `passport_expiration_date` string, nullable — Predefined secure key at the root

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/fountain/apis/hire-public-api.md) · [All operations](https://skmtc.net/fountain/apis/hire-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fountain/hire-public-api/versions/5f406c0e9462/schema)
