---
title: "Move a Greenhouse installation onto the config-driven Greenhouse API (or back off it)"
method: POST
path: "/v1/app/org/{orgId}/install/{appUserId}/upgrade-greenhouse"
tags: ["app"]
---

# Move a Greenhouse installation onto the config-driven Greenhouse API (or back off it)

`POST /v1/app/org/{orgId}/install/{appUserId}/upgrade-greenhouse`

## Request

- Base URL: `https://localhost`
- URL: `https://localhost/v1/app/org/{orgId}/install/{appUserId}/upgrade-greenhouse`
- Auth: none declared

## Path parameters

- `orgId` string, required
- `appUserId` string, required

## Query parameters

- `downgrade` boolean

## Response `200`

installation upgraded or downgraded

- GreenhouseUpgradeResponse
  - `legacyApi` boolean, required: True when the installation is now pinned to the legacy Greenhouse API
  - `migratedOutboundFieldMappers` integer, required: How many of the installation's custom job field mappers were copied into its config-driven outbound field mappers
  - `unmigratableFieldMappers` string[], required: Custom field mappers the config-driven path cannot express, each as "charthopFields -> remoteField: why". Non-empty means the installation is upgraded but writes fewer fields than before until these are reconfigured by hand.

## Other responses

- `400`: invalid data
- `401`: not authorized
- `403`: permission denied
- `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/39908e062fda?raw)
