---
title: "Auto-Translation Batch Operations"
method: PATCH
path: "/projects/{projectId}/pre-translations"
tags: ["Translations"]
---

# Auto-Translation Batch Operations

`PATCH /projects/{projectId}/pre-translations`

## Request

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

**Required scopes:** `project.translation` (Read and Write).

## Path parameters

- `projectId` integer, required

## Request body

- PreTranslationMassOperation[]: 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` '/{jobIdentifier}/status' | '/{jobIdentifier}/priority', json-pointer, required: A JSON Pointer as defined by <a href="https://tools.ietf.org/html/rfc6901" target="_blank">RFC 6901</a>

## Response `200`

Auto-translations were successfully updated

- EnterprisePreTranslationUpdatedCollectionResource: Auto-Translation Updated Collection Resource
  - `data` EnterprisePreTranslationResource[]
    - `data` EnterprisePreTranslation, required
      - `identifier` string
      - `status` 'created' | 'in_progress' | 'canceled' | 'failed' | 'finished'
      - `progress` integer: in percentages
      - `attributes` object
        - `languageIds` string[]
        - `fileIds` integer[]
        - `directoryIds` integer[]
        - `branchIds` integer[]
        - `taskId` integer: ID of the task the auto-translation was applied to. Present only when the auto-translation was requested by `taskId`
        - `method` string
        - `autoApproveOption` string
        - `duplicateTranslations` boolean
        - `skipApprovedTranslations` boolean
        - `translateUntranslatedOnly` boolean: **Deprecated.** Reflects the legacy value sent in the request (defaults to `true` when not provided). New integrations should rely on `scope` instead.
        - `scope` 'untranslated' | 'translated' | 'all'
        - `translationModifiedBefore` string, date-time, nullable
        - `translationModifiedAfter` string, date-time, nullable
        - `replaceTranslationsOption` 'none' | 'autoTranslated' | 'all'
        - `resetApprovalStatus` boolean
        - `translateWithPerfectMatchOnly` boolean
        - `priority` 'low' | 'normal' | 'high'
        - `notifyOnCompletion` boolean
        - `minimumMatchRatio` integer
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `startedAt` string, date-time
      - `finishedAt` string, date-time

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project with specified id was not found
- `405`: Method Not Allowed
- `503`: Service Unavailable

---

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