---
title: "application.changeSource"
method: POST
path: "/application.changeSource"
tags: ["Application"]
---

# application.changeSource

`POST /application.changeSource`

Change the source of an application.

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

## Request body

- ApplicationChangeSourceRequest
  - `applicationId` string, uuid, required — The id of the application to update the source of.
  - `sourceId` string, uuid, nullable, required — The source to set on the application. Pass `null` to unset an application's source.

## Response `200`

Responses from the application.changeSource endpoint

- union
  - ApplicationChangeSourceSuccessResponse
    - `success` true, required
    - `results` Application, required
      - `id` string, uuid, required — The unique identifier for the application
      - `createdAt` string, date-time, required — The timestamp when the application was created
      - `updatedAt` string, date-time, required — The timestamp when the application was last updated
      - `status` 'Hired' | 'Archived' | 'Active' | 'Lead', required — The status of the application
      - `customFields` object[], nullable — Custom fields attached to the application, if any
        - `id` string, uuid, required — The unique identifier for the custom field definition
        - `isPrivate` boolean — Whether the custom field is private
        - `title` string, required — The title of the custom field
        - `valueLabel` union — The human-readable label for select custom field values
          - string
          - string[]
        - `value` union, required — The custom field value
          - boolean
          - number
          - string
          - string[]
          - object
            - `value` number, required — The currency amount
            - `currencyCode` string, required — The ISO 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 ISO currency code
            - `interval` string, required — The compensation interval
      - `candidate` object, required — The candidate associated with the application
        - `id` string, uuid, required — The unique identifier for the candidate
        - `name` string, required — The candidate's name
        - `primaryEmailAddress` object, nullable — The candidate's primary email address, if any
          - `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` object, nullable — The candidate's primary phone number, if any
          - `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
      - `currentInterviewStage` object, required — The current interview stage for the application
        - `id` string, uuid, required — The unique identifier for the interview stage
        - `title` string, required — The interview stage title
        - `type` string, required — The interview stage type
        - `orderInInterviewPlan` integer, required — The stage's order within its interview plan
        - `interviewStageGroupId` string, uuid, nullable — The id of the interview stage group the stage belongs to, if any
        - `interviewPlanId` string, uuid, required — The id of the interview plan the stage belongs to
      - `source` object, nullable — The source attributed to this application, if any
        - `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` object, required — The source type associated with this source
          - `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
      - `archiveReason` object, nullable — Details about the archive reason for this application, if archived
        - `id` string, uuid, required — The unique identifier for the archive reason
        - `text` string, required — The display text for the archive reason
        - `reasonType` 'RejectedByCandidate' | 'RejectedByOrg' | 'Other', required — The category of archive reason
        - `isArchived` boolean, required — Whether the archive reason is archived
        - `customFields` object[], required — Archive detail custom field values
          - `id` string, uuid, required — The unique identifier for the custom field definition
          - `isPrivate` boolean — Whether the custom field is private
          - `title` string, required — The title of the custom field
          - `valueLabel` union — The human-readable label for select custom field values
            - string
            - string[]
          - `value` union, required — The custom field value
            - boolean
            - number
            - string
            - string[]
            - object
              - …
            - object
              - …
            - object
              - …
      - `archivedAt` string, date-time, nullable — The timestamp an application was archived
      - `job` object, required — The job the application is for
        - `id` string, uuid, required — The unique identifier for the job
        - `title` string, required — The job title
        - `locationId` string, uuid, nullable — The id of the job's primary location, if any
        - `departmentId` string, uuid, nullable — The id of the job's department, if any
      - `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[]
      - `hiringTeam` HiringTeamRole[], required — The hiring team for the application
        - `userId` string, uuid, required — The unique identifier of the hiring team member
        - `firstName` string, required — The first name of the hiring team member
        - `lastName` string, required — The last name of the hiring team member
        - `email` string, email, required — The primary email address of the hiring team member
        - `role` string, required — The hiring team role assigned to the member
      - `appliedViaJobPostingId` string, uuid, nullable — The id of the first job posting the candidate applied through. If the candidate submitted applications via multiple job postings for the same job, this will be the earliest one.
      - `submitterClientIp` string, nullable — The IP address (can be v4 or v6) of the client that submitted the application, if it was submitted through the external job board.
      - `submitterUserAgent` string, nullable — The user agent of the client that submitted the application, if it was submitted through the external job board.
  - 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)
