---
title: "Edit Application Installation"
method: PATCH
path: "/applications/installations/{identifier}"
tags: ["Applications"]
---

# Edit Application Installation

`PATCH /applications/installations/{identifier}`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/applications/installations/{identifier}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-api-v2/docs/applications/installations/:identifier/patch.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `application.installation` (Read and Write).

## Path parameters

- `identifier` string, required

## Request body

- ApplicationInstallationOperation[]: A JSON Patch document as defined by <a href="https://tools.ietf.org/html/rfc6902#section-3" target="_blank">RFC 6902</a>
  - `op` 'replace', required: Patch operation to perform
  - `path` string, json-pointer, required: A JSON Pointer as defined by <a href="https://tools.ietf.org/html/rfc6901" target="_blank">RFC 6901</a> identifying the field to replace.<br><br>Supported paths:<br>• `/permissions` and `/modules/{moduleKey}/permissions` (where `{moduleKey}` is a module key from the manifest) - available for any installation.<br>• `/manifest` - the full manifest content, available only for applications installed from manifest content (not from a manifest URL). A single request may combine a `/manifest` operation with permission operations; the manifest is applied first, so permissions can target modules the new manifest introduces.
  - `value` union, required: The value to set at `path`. Its type depends on the `path` being replaced:<br>• `/manifest` - a manifest content object, the same shape as the `manifest` field of Install Application (`identifier` is ignored - the server keeps the existing one).<br>• `/permissions` and `/modules/{moduleKey}/permissions` - a permissions object (see `ApplicationInstallationReplaceValue`).
    - string
    - string[]
    - object
    - ApplicationInstallationReplaceValue
      - `user` ApplicationInstallationReplaceValueUser
        - `value` 'owner' | 'managers' | 'all' | 'guests' | 'restricted': Select the users that will be able to use the app: * `owner` - Only organization admins (Enterprise) / All project members * `managers` - Organization admins, project managers and developers * `all` - All users in the organization projects * `guests` - All users, including guests (unauthenticated users) * `restricted` - Selected users
        - `ids` integer[]: Set the user ids or empty array
      - `project` ApplicationInstallationReplaceValueProject: Available only for application permissions
        - `value` 'own' | 'restricted': Select the projects where users will be able to use the app * `own` - All projects (Enterprise) / Projects you own * `restricted` - Selected projects
        - `ids` integer[]

## Response `200`

Application data

- ApplicationInstallationResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` ApplicationInstallationResponseModel, required: Application Installation Response Model
    - `identifier` string
    - `name` string
    - `installedBy` object, nullable
      - `id` integer
      - `username` string
      - `fullName` string
      - `avatarUrl` string
    - `description` string, nullable
    - `logo` string
    - `logoUrl` string, nullable: Absolute URL the logo is served from.
    - `agent` object, nullable
      - `id` integer
      - `username` string
      - `fullName` string
      - `avatarUrl` string
    - `baseUrl` string, nullable
    - `manifestUrl` string, nullable
    - `manifest` object, nullable: The manifest of the installation as authored - the application fields and module definitions as they were installed or last updated, without server-resolved values. `null` for applications installed from a manifest URL
    - `createdAt` string, date-time, nullable
    - `manifestUpdatedAt` string, date-time, nullable: When the installation's manifest was last synced
    - `isManifestOutdated` boolean: Whether the installed manifest is outdated compared to the latest available manifest
    - `modules` union[]
      - union
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `name` string
          - `description` string, nullable
          - `url` string
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `modes` object
          - `scopes` object
          - `iframe` object
          - `fileNamePattern` string
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `modes` object
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
          - `severity` 'high' | 'medium' | 'low'
          - `category` 'context'
          - `refreshPolicy` 'hourly' | 'daily'
          - `title` string
          - `summary` string, nullable: Short one-line summary shown on the inspector card chrome below the title.
          - `recheckUrl` string, nullable
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `scopes` object, nullable
          - `configuratorIframe` object, nullable
          - `compileUrl` string
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `chatCompletionsUrl` string
          - `modelsUrl` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `name` string
          - `placement` 'header-alert' | 'glossary': Where the module is allowed to place its announcements
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `scopes` object, nullable
          - `identifier` string
          - `inputSchemaUrl` string, nullable
          - `outputSchemaUrl` string, nullable
          - `iframe` object, nullable
          - `executeUrl` string
          - `validateSettingsUrl` string, nullable
          - `invocationWaitMode` 'sync' | 'taskToken', nullable
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object, nullable
          - `iframe` object
          - `logo` string, nullable
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `name` string
          - `mode` string
          - `baseUrl` string
          - `options` object
          - `signaturePatterns` object
          - `description` string
        - object: Class CrowdsourcePanelModuleResponseModel
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `name` string
          - `logoUrl` string
          - `signaturePatterns` object
          - `fileType` string
          - `multilingual` boolean
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `name` string
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `modes` object
          - `scopes` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `modes` string[]
          - `options` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `modes` object
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `getBatchSizeUrl` string
          - `runQaCheckUrl` string
          - `supportsSynchronousRun` boolean: If `true`, the app is called while a translation is being saved and can refuse the save. If `false`, the app is called after the translation is saved and can only report an issue.
          - `scopes` object, nullable
          - `iframe` object, nullable
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `name` string
          - `logoUrl` string
          - `signaturePatterns` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `name` string
          - `type` string
          - `data` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `scopes` object
          - `iframe` object
        - object: Class WorkflowStepTypeModuleResponseModel
          - `key` string
          - `type` string
          - `data` object
          - `permissions` ApplicationsInstallationsModulesModulePermissions
            - `user` ApplicationsInstallationsModulePermissionsUser
              - …
          - `authenticationType` string
          - `identifier` string
          - `updateSettingsUrl` string, nullable
          - `deleteSettingsUrl` string, nullable
          - `editorMode` string, nullable
          - `boundaries` object
          - `scopes` object, nullable
          - `iframe` object, nullable
    - `scopes` string[]
    - `permissions` ApplicationsInstallationsPermissions
      - `user` ApplicationsInstallationsPermissionsUser: Use modules permissions instead
        - `value` 'owner' | 'managers' | 'all' | 'guests' | 'restricted'
        - `ids` integer[]: Ids is available only for restricted value
      - `project` ApplicationsInstallationsPermissionsProject
        - `value` 'own' | 'restricted'
        - `ids` integer[]
    - `defaultPermissions` ApplicationsInstallationsDefaultPermissions
      - `user` 'owner'
      - `project` 'own'
    - `limitReached` boolean
    - `stringBasedAvailable` boolean
    - `bundle` union: Where the app is loaded from. Either Crowdin hosts the app in its own storage (`internal`) or the app is served from an external URL such as a local dev server (`external`).
      - ApplicationBundleInternal
        - `mode` 'internal', required: The app is hosted by Crowdin in its own storage (no external URL).
      - ApplicationBundleExternal
        - `mode` 'external', required: The app is served from an external URL (e.g. a local dev server).
        - `url` string, required: URL the app is served from; for local development this is your dev server, e.g. `http://localhost:8080/`.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Application installation with specified identifier was not found
- `405`: Method Not Allowed

---

[API](https://skmtc.dev/crowdin/apis/crowdin-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-api-v2/revisions/27aae7751699?raw)
