---
title: "Return all changes for a particular scenario, with before job"
method: GET
path: "/v1/org/{orgId}/change/scenario/{scenarioId}"
tags: ["change"]
---

# Return all changes for a particular scenario, with before job

`GET /v1/org/{orgId}/change/scenario/{scenarioId}`

## Request

- Base URL: `https://localhost`
- URL: `https://localhost/v1/org/{orgId}/change/scenario/{scenarioId}`
- Auth: none declared

## Path parameters

- `orgId` string, required
- `scenarioId` string, required

## Query parameters

- `fields` string
- `format` string
- `q` string
- `returnAccess` string

## Response `200`

successful operation

- ScenarioChangesWithBudgetRollup
  - `changes` ResultsChangeData, required
    - `data` ChangeData[], required
      - `change` Change, required
        - `id` string, required: unique id
        - `jobId` string, required: job id
        - `orgId` string, required: parent organization id
        - `scenarioId` string: scenario that this change belongs to
        - `mergeScenarioId` string: scenario that this change was merged in from, if the change originally came from a scenario
        - `parentChangeId` string: change that this change emanates from
        - `priorStateChangeId` string: connects this change to a previous version if itself that you might want to roll back to because of bad edits
        - `type` 'HIRE' | 'DEPART' | 'MOVE' | 'UPCOMING' | 'CREATE' | 'UPDATE' | 'DATA' | 'DELETE' | 'RELATE' | 'BACKFILL', required: type of change
        - `date` string, date, required: date of change
        - `sort` integer: sort order of change
        - `announceDate` string, date: for HIRE and DEPART changes, the announce date, if the announce date is different from the date of change
        - `status` 'ACTIVE' | 'STRUCK' | 'CONFLICT' | 'INACTIVE' | 'PROPOSED', required: whether the change is active or not
        - `personId` string: the id of the person involved, or empty if no person attached to job
        - `otherJobId` string: for MOVE changes, the id of the job moving from; for RELATE changes, the id of the other job
        - `otherPersonId` string: for MOVE changes, the id of the other person involved in the move
        - `departType` 'VOLUNTARY' | 'INVOLUNTARY': for DEPART changes, the type of departure
        - `departRegret` 'REGRET' | 'NONREGRET': for DEPART changes, whether the departure was regrettable
        - `promotionType` 'PROMOTION' | 'DEMOTION' | 'NONE': if it's a promotion or a demotion
        - `reason` string: the reason for the change
        - `relateType` 'MANAGER' | 'DIRECT' | 'INDIRECT_MANAGER' | 'INDIRECT' | 'NONE': for RELATE changes, the type of the relationship
        - `refs` object[]: list of ids referenced in text field body, for indexing purposes only
        - `job` PartialJob
          - `jobId` string: globally unique job id
          - `orgId` string: parent organization id
          - `snapshotId` string: snapshot that this job belongs to
          - `title` string: job title
          - `comp` Comp
            - `baseComp` PayInterval
              - …
            - `variableTargets` VariableComp[]: variable compensation (money or percent)
              - …
            - `grantShares` integer: planned stock grant, in shares
            - `grantValue` integer: planned stock grant, in value (based on the stock's currency, not the comp)
            - `grantType` 'ISO' | 'NSO' | 'RSU' | 'SAR' | 'PERFORMANCE_SHARES' | 'PHANTOM_STOCK' | 'RSA': planned stock grant type
          - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE': view sensitive of the job while open
          - `relationships` JobRelationship[]: relationship to other jobs
            - `jobId` string, required: destination job id
            - `type` 'MANAGER' | 'DIRECT' | 'INDIRECT_MANAGER' | 'INDIRECT' | 'NONE', required: type of relationship
          - `groupIds` string[]: groups that this job is a member of
          - `groupIdsByType` object: groups that this job is a member of, mapped by group type id
          - `placement` 'NORMAL' | 'ASSISTANT': guidance on placement
          - `employment` 'FULL' | 'PART' | 'TEMP' | 'CONTRACT' | 'INTERN' | 'EXPAT': employment status
          - `state` 'OPEN' | 'FILLED' | 'DEPART' | 'START': current state - whether the job is open, filled, or has someone departed or hired
          - `fields` object: fields containing custom data
          - `fieldDates` object: dates of the field data
          - `fieldsProposed` object: proposed values for fields
          - `createDate` string, date: job creation date
          - `startDate` string, date: for empty jobs, expected start date - for filled jobs, confirmed start date
          - `startDatePlanned` string, date: expected start date whether job is open or has been filled - doesn't change when job is filled
          - `personStartDate` string, date: if personId is present, the first day of that person in the org after the latest departure (if any)
          - `personEndDate` string, date: if personId is present and the person is departing, the last day of that person in the org
          - `personJobStartDate` string, date: if personId is present, the first day of that person in the job
          - `personIdDate` string, date: if personId is present, the first day that the personId actually filled the job
          - `personJobEndDate` string, date: if personId is present and the person is departing or moving out, the last day of that person in the job
          - `personId` string: the person holding this job -- either currently in the job, or upcoming announced hire
          - `backfillPersonId` string: the person who most recently held the job, who this represents a backfill for
          - `jobCodeId` string: the ID of the job code for this job
          - `backfillByJobId` string: another job which is planned to be a backfill for this job
          - `upcoming` UpcomingChange[]: if a HIRE, MOVE, or DEPART are upcoming, the details on those changes - should only include id, type, date, announceDate, personId
            - `id` string
            - `type` 'HIRE' | 'DEPART' | 'MOVE' | 'UPCOMING' | 'CREATE' | 'UPDATE' | 'DATA' | 'DELETE' | 'RELATE' | 'BACKFILL'
            - `date` string, date, required
            - `announceDate` string, date
            - `personId` string
            - `otherPersonId` string
          - `scenarioId` string: scenario that the job was created in (null if job is on primary timeline)
          - `scenarioChangedId` string: scenario that the job was changed in (null if job is on primary timeline)
          - `fetchState` 'PERSON' | 'STRUCTURE' | 'ALL': scenario that the job was changed in (null if job is on primary timeline)
        - `otherJob` PartialJob
          - `jobId` string: globally unique job id
          - `orgId` string: parent organization id
          - `snapshotId` string: snapshot that this job belongs to
          - `title` string: job title
          - `comp` Comp
            - `baseComp` PayInterval
              - …
            - `variableTargets` VariableComp[]: variable compensation (money or percent)
              - …
            - `grantShares` integer: planned stock grant, in shares
            - `grantValue` integer: planned stock grant, in value (based on the stock's currency, not the comp)
            - `grantType` 'ISO' | 'NSO' | 'RSU' | 'SAR' | 'PERFORMANCE_SHARES' | 'PHANTOM_STOCK' | 'RSA': planned stock grant type
          - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE': view sensitive of the job while open
          - `relationships` JobRelationship[]: relationship to other jobs
            - `jobId` string, required: destination job id
            - `type` 'MANAGER' | 'DIRECT' | 'INDIRECT_MANAGER' | 'INDIRECT' | 'NONE', required: type of relationship
          - `groupIds` string[]: groups that this job is a member of
          - `groupIdsByType` object: groups that this job is a member of, mapped by group type id
          - `placement` 'NORMAL' | 'ASSISTANT': guidance on placement
          - `employment` 'FULL' | 'PART' | 'TEMP' | 'CONTRACT' | 'INTERN' | 'EXPAT': employment status
          - `state` 'OPEN' | 'FILLED' | 'DEPART' | 'START': current state - whether the job is open, filled, or has someone departed or hired
          - `fields` object: fields containing custom data
          - `fieldDates` object: dates of the field data
          - `fieldsProposed` object: proposed values for fields
          - `createDate` string, date: job creation date
          - `startDate` string, date: for empty jobs, expected start date - for filled jobs, confirmed start date
          - `startDatePlanned` string, date: expected start date whether job is open or has been filled - doesn't change when job is filled
          - `personStartDate` string, date: if personId is present, the first day of that person in the org after the latest departure (if any)
          - `personEndDate` string, date: if personId is present and the person is departing, the last day of that person in the org
          - `personJobStartDate` string, date: if personId is present, the first day of that person in the job
          - `personIdDate` string, date: if personId is present, the first day that the personId actually filled the job
          - `personJobEndDate` string, date: if personId is present and the person is departing or moving out, the last day of that person in the job
          - `personId` string: the person holding this job -- either currently in the job, or upcoming announced hire
          - `backfillPersonId` string: the person who most recently held the job, who this represents a backfill for
          - `jobCodeId` string: the ID of the job code for this job
          - `backfillByJobId` string: another job which is planned to be a backfill for this job
          - `upcoming` UpcomingChange[]: if a HIRE, MOVE, or DEPART are upcoming, the details on those changes - should only include id, type, date, announceDate, personId
            - `id` string
            - `type` 'HIRE' | 'DEPART' | 'MOVE' | 'UPCOMING' | 'CREATE' | 'UPDATE' | 'DATA' | 'DELETE' | 'RELATE' | 'BACKFILL'
            - `date` string, date, required
            - `announceDate` string, date
            - `personId` string
            - `otherPersonId` string
          - `scenarioId` string: scenario that the job was created in (null if job is on primary timeline)
          - `scenarioChangedId` string: scenario that the job was changed in (null if job is on primary timeline)
          - `fetchState` 'PERSON' | 'STRUCTURE' | 'ALL': scenario that the job was changed in (null if job is on primary timeline)
        - `formId` string: if this change was data submitted by a form, the id of that form
        - `formResponseId` string: if this change is associated with a form response, the id of that form response
        - `assessmentId` string: if this change is associated with a assessment, the id of that assessment
        - `update` JobUpdate
          - `addRelationships` JobRelationship[]: relationships to add
            - `jobId` string, required: destination job id
            - `type` 'MANAGER' | 'DIRECT' | 'INDIRECT_MANAGER' | 'INDIRECT' | 'NONE', required: type of relationship
          - `removeRelationships` JobRelationship[]: relationships to remove
            - `jobId` string, required: destination job id
            - `type` 'MANAGER' | 'DIRECT' | 'INDIRECT_MANAGER' | 'INDIRECT' | 'NONE', required: type of relationship
          - `addGroupIds` string[]: groups to add
          - `removeGroupIds` string[]: groups to remove
          - `setGroupIds` object: groups to set
          - `grant` StockGrant
            - `id` string, required: unique identifier of grant
            - `stock` string, required: ticker symbol of this stock
            - `date` string, date, required: date of grant
            - `vestStartDate` string, date: vesting start date of grant
            - `expireDate` string, date: expiration date of grant
            - `shares` number, required: number of shares granted
            - `price` number, required: per share strike price
            - `type` 'ISO' | 'NSO' | 'RSU' | 'SAR' | 'PERFORMANCE_SHARES' | 'PHANTOM_STOCK' | 'RSA', required: type of grant
            - `vestSchedule` string, required: vesting schedule
            - `originalPrice` number: original per share value of stock (grant price at time of issue)
            - `currentPrice` number: current per share value of stock
            - `vestedShares` number: current number of shares vested
            - `vestedSharesNextYear` number: number of shares vested one year from today
            - `vestedSharesByDate` object: number of shares vested, by future date
            - `vestEndDate` string, date: vesting end date
            - `cancelDate` string, date: cancellation date
            - `terminationDate` string, date: termination date — vesting freezes on this date when the holder separates
            - `lastExercisableDate` string, date: last date on which vested shares can be exercised; after this the grant is forfeited
            - `details` string: details of the grant (arbitrary text)
            - `description` string: human-readable description of vesting schedule
          - `timeOff` TimeOff
            - `id` string, required: unique id of a time off request
            - `startDate` string, date, required: start date of time off, inclusive
            - `endDate` string, date, required: end date of time off, inclusive
            - `days` number: number of days used
            - `hours` number: number of hours used
            - `type` string: type of time off
            - `note` string: notes on the time off
            - `approval` 'APPROVED' | 'PENDING' | 'CANCELLED' | 'REJECTED' | 'SUPERSEDED': approval status of the time off
          - `title` string: new title
          - `comp` Comp
            - `baseComp` PayInterval
              - …
            - `variableTargets` VariableComp[]: variable compensation (money or percent)
              - …
            - `grantShares` integer: planned stock grant, in shares
            - `grantValue` integer: planned stock grant, in value (based on the stock's currency, not the comp)
            - `grantType` 'ISO' | 'NSO' | 'RSU' | 'SAR' | 'PERFORMANCE_SHARES' | 'PHANTOM_STOCK' | 'RSA': planned stock grant type
          - `placement` 'NORMAL' | 'ASSISTANT': new placement
          - `employment` 'FULL' | 'PART' | 'TEMP' | 'CONTRACT' | 'INTERN' | 'EXPAT': new employment status
          - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE': new view sensitivity
          - `startDatePlanned` string, date: planned start date
          - `startDatePlannedRemove` boolean: remove planned start date. if both startDatePlanned and startDatePlannedRemove are set, startDatePlanned takes precedence
          - `startDate` string, date: new expected start date - will update to person start date in future
          - `backfillPersonId` string: set who this job is backfilling
          - `jobCodeId` string: set (or unset) the job code for this job
          - `hasUnsetFields` boolean: set who this job is backfilling
          - `fields` object: custom fields values to set
        - `upcoming` UpcomingChange
          - `id` string
          - `type` 'HIRE' | 'DEPART' | 'MOVE' | 'UPCOMING' | 'CREATE' | 'UPDATE' | 'DATA' | 'DELETE' | 'RELATE' | 'BACKFILL'
          - `date` string, date, required
          - `announceDate` string, date
          - `personId` string
          - `otherPersonId` string
        - `conflict` string: for changes that have been struck due to a merge conflict, the description of the conflict
        - `note` string: note on the change
        - `createId` string: created by user id
        - `createBehalfId` string: created on behalf of user id
        - `createAttribution` Attribution
          - `principalUserId` string
          - `agentUserIds` string[]
          - `eventId` string
          - `aiChatId` string
          - `aiToolUseId` string
          - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
        - `mergeId` string: merged by user id, if this change was merged
        - `createAt` string: created timestamp
        - `updateAt` string: updated timestamp
        - `updateId` string: updated by user id
        - `updateBehalfId` string: last updated on behalf of user id
        - `updateAttribution` Attribution
          - `principalUserId` string
          - `agentUserIds` string[]
          - `eventId` string
          - `aiChatId` string
          - `aiToolUseId` string
          - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
        - `statusAt` string: timestamp of status change
        - `approvalAt` string: timestamp of approval
        - `approvalId` string: approved by user id
        - `approvalNote` string: approval/rejection note
        - `approval` 'MANAGER' | 'GRAND_MANAGER': if approval is required, who is allowed to approve
        - `authorSensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE': view sensitivity for the author author of this form - the level of view access required to view the createId and updateId fields
        - `canEdit` boolean: flag indicating whether authorized user can modify this change (will vary depending on user)
      - `data` object, required: the returned data fields requested
      - `cost` number, required: the annualized impact of this change, denoted in organization's currency
      - `lockedFields` string[]: set of locked fields for this change
    - `next` string
    - `access` ResultsAccess[]
      - `ids` string[]
      - `allowed` AccessAction[], required
        - `action` string, required
        - `fields` string[]
        - `types` string[]
  - `budgetPoolSummaries` object, required
  - `access` ResultsAccess[]
    - `ids` string[]
    - `allowed` AccessAction[], required
      - `action` string, required
      - `fields` string[]
      - `types` string[]

## Other responses

- `400`: bad request
- `401`: not authorized
- `404`: not found

---

[API](https://skmtc.dev/charthop/apis/charthop-api.md) - [All operations](https://skmtc.dev/charthop/apis/charthop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/charthop/apis/charthop-api/revisions/9076630a0d55?raw)
