---
title: "candidate.update"
method: POST
path: "/candidate.update"
tags: ["Candidate"]
---

# candidate.update

`POST /candidate.update`

Updates an existing candidate.

**Requires the [`candidatesWrite`](authentication#permissions-candidateupdate) permission.**

## Request body

- CandidateUpdateRequest
  - `candidateId` string, uuid, required — The unique id of the candidate to update
  - `name` string, nullable — The first and last name of the candidate to update
  - `email` string, nullable — Primary, personal email of the candidate to update
  - `phoneNumber` string, nullable — Primary, personal phone number of the candidate to update
  - `linkedInUrl` string, nullable — Url to the candidate's LinkedIn profile. Must be a valid Url.
  - `githubUrl` string, nullable — Url to the candidate's Github profile. Must be a valid Url.
  - `websiteUrl` string, nullable — Url of the candidate's website. Must be a valid Url.
  - `alternateEmail` string, nullable — An alternate email address to add to the candidate's profile
  - `socialLinks` object[], nullable — An array of social links to set on the candidate. This value replaces existing socialLinks that have been set on the candidate. If this value is submitted along with linkedInUrl, gitHubUrl or websiteUrl fields, those values will be ignored.
    - `type` string, required — The social link type
    - `url` string, required — The URL of the social profile
  - `sourceId` string, uuid, nullable — The id of source for this candidate
  - `creditedToUserId` string, uuid, nullable — The id of the user the candidate will be credited to
  - `location` object, nullable — The location of the candidate
    - `city` string, nullable — The city of the candidate's location
    - `region` string, nullable — The region (state, province, etc.) of the candidate's location
    - `country` string, nullable — The country of the candidate's location
  - `createdAt` string, nullable — An ISO date string to set the candidate's `createdAt` timestamp
  - `sendNotifications` boolean, nullable — Whether or not users who are subscribed to the candidate should be notified that the candidate was updated. Default is true.

## Response `200`

Responses from the candidate.update endpoint

- union
  - CandidateUpdateSuccessResponse
    - `success` true, required
    - `results` Candidate, required
      - `id` string, uuid, required — The unique identifier for the candidate
      - `createdAt` string, required — The timestamp when the candidate was created
      - `updatedAt` string, required — The timestamp when the candidate was last updated
      - `name` string, required — The candidate's name
      - `primaryEmailAddress` ContactInfo, required
        - `value` string, required — The email address or phone number of the candidate
        - `type` 'Personal' | 'Work' | 'Other', required — The type of the contact info
        - `isPrimary` boolean, required — Whether the contact info is the primary email or phone number
      - `emailAddresses` ContactInfo[], required — The candidate's email addresses
        - `value` string, required — The email address or phone number of the candidate
        - `type` 'Personal' | 'Work' | 'Other', required — The type of the contact info
        - `isPrimary` boolean, required — Whether the contact info is the primary email or phone number
      - `primaryPhoneNumber` ContactInfo, required
        - `value` string, required — The email address or phone number of the candidate
        - `type` 'Personal' | 'Work' | 'Other', required — The type of the contact info
        - `isPrimary` boolean, required — Whether the contact info is the primary email or phone number
      - `phoneNumbers` ContactInfo[], required — The candidate's phone numbers
        - `value` string, required — The email address or phone number of the candidate
        - `type` 'Personal' | 'Work' | 'Other', required — The type of the contact info
        - `isPrimary` boolean, required — Whether the contact info is the primary email or phone number
      - `socialLinks` SocialLink[], required — The candidate's social links
        - `type` 'LinkedIn' | 'GitHub' | 'Twitter' | 'Medium' | 'StackOverflow' | 'Website' | 'YouTube' | 'CodePen', required — The type of social link
        - `url` string, required — The URL of the social profile
      - `tags` CandidateTag[], required — The candidate's tags
        - `id` string, uuid, required — The candidate tag's unique identifier
        - `title` string, required — The tag's title
        - `isArchived` boolean, required — Whether the tag has been archived
      - `position` string — The candidate's current position
      - `company` string — The candidate's current company
      - `school` string — The candidate's school
      - `applicationIds` string[], required — The unique identifiers of the candidate's applications
      - `resumeFileHandle` FileHandle, required
        - `id` string, uuid, required — The unique identifier for the file
        - `name` string, required — The file name
        - `handle` string, required — The file handle, which can be used with the file.info endpoint
      - `fileHandles` FileHandle[], required — The file handles associated with the candidate
        - `id` string, uuid, required — The unique identifier for the file
        - `name` string, required — The file name
        - `handle` string, required — The file handle, which can be used with the file.info endpoint
      - `customFields` CandidateCustomField[] — The custom field values associated with the candidate
        - `id` string, uuid, required — The unique identifier for the custom field definition
        - `isPrivate` boolean, required — Whether the custom field is private
        - `title` string, required — The title of the custom field
        - `value` union, required — The custom field value
          - boolean
          - number
          - string
          - string[]
          - object
            - `value` number, required — The currency amount
            - `currencyCode` string, required — The currency code
          - object
            - `type` string, required — The range type
            - `minValue` number, required — The minimum value
            - `maxValue` number, required — The maximum value
          - object
            - `type` string, required — The compensation range type
            - `minValue` number, required — The minimum compensation value
            - `maxValue` number, required — The maximum compensation value
            - `currencyCode` string, required — The currency code
            - `interval` string, required — The compensation interval
        - `valueLabel` union — The human-readable label for select custom field values
          - string
          - string[]
      - `profileUrl` string, required — The URL of the candidate's profile in Ashby
      - `source` Source
        - `id` string, uuid, required — The source's unique identifier
        - `title` string, required — The title of the source
        - `isArchived` boolean, required — Whether the source has been archived
        - `sourceType` SourceType, required
          - `id` string, uuid, required — The source type's unique identifier
          - `title` string, required — The title of the source type
          - `isArchived` boolean, required — Whether the source type has been archived
      - `creditedToUser` User
        - `id` string, uuid, required — The unique identifier for the user
        - `firstName` string, required — The user's first name
        - `lastName` string, required — The user's last name
        - `email` string, email, nullable, required — The user's email address
        - `globalRole` 'Organization Admin' | 'Elevated Access' | 'Limited Access' | 'External Recruiter', required — The user's global role in the organization
        - `isEnabled` boolean, required — Whether the user is enabled (not deactivated)
        - `updatedAt` string, required — The timestamp when the user was last updated (ISO 8601 format)
        - `managerId` string, uuid — The unique identifier for the user's manager
        - `customFields` CustomField[] — Custom fields associated with the user (only included when requested)
          - `id` string, uuid, required — The unique identifier for the custom field definition
          - `isPrivate` boolean, required — Whether the custom field is private
          - `title` string, required — The title of the custom field
          - `value` union, required — The value of the custom field
            - boolean
            - number
            - string
            - string[]
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
          - `valueLabel` union — The label of the custom field value. This is only present for value select custom fields.
            - string
            - string[]
      - `timezone` string, nullable — The candidate's timezone
      - `location` CandidateLocation
        - `id` string, uuid, required — The unique identifier for the location
        - `locationSummary` string, nullable, required — A human-readable summary of the location
        - `locationComponents` CandidateLocationComponent[], nullable, required — The individual components of the location
          - `type` string, required — The type of the location component
          - `name` string, required — The name of the location component
      - `fraudStatus` 'Fraudulent' | 'NotFraudulent' | 'Unsure' | 'Unreviewed' | 'PassedFraudCheck', nullable — The fraud status of the candidate
  - ErrorResponse
    - `success` false, required
    - `errors` ErrorDetail[], required
      - `message` string, required
      - `parameter` string

---

[API](https://skmtc.net/ashbyhq/apis/ashby-api.md) · [All operations](https://skmtc.net/ashbyhq/apis/ashby-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ashbyhq/ashby-api/revisions/778b919dc743/schema)
