---
title: "Build Project File Translation"
method: POST
path: "/projects/{projectId}/translations/builds/files/{fileId}"
tags: ["Translations"]
---

# Build Project File Translation

`POST /projects/{projectId}/translations/builds/files/{fileId}`

## Request

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

**Required scopes:** `project.source.file` (Read only).

## Path parameters

- `projectId` integer, required
- `fileId` integer, required

## Headers

- `If-None-Match` string

## Request body

- EnterpriseFileBuildForm
  - `targetLanguageId` string, required: Target Language Identifier. Get via [Project Target Languages](#operation/api.projects.get)
  - `exportAsXliff` boolean: Use [Export Project Translation](#operation/api.projects.translations.exports.post) instead. * Defines whether to export file in XLIFF format
  - `skipUntranslatedStrings` boolean: Defines whether to export only translated strings __Note:__ `true` value can't be used with `skipUntranslatedFiles=true` in same request
  - `skipUntranslatedFiles` boolean: Defines whether to export only translated files __Note:__ `true` value can't be used with `skipUntranslatedStrings=true` in same request
  - `exportWithMinApprovalsCount` integer: Defines whether to export only approved strings __Note:__ value greater than `0` can't be used with `exportStringsThatPassedWorkflow=true` in same request
  - `exportStringsThatPassedWorkflow` boolean: Defines whether to export only strings that passed workflow __Note:__ `true` value can't be used with `exportWithMinApprovalsCount>0` in same request or in projects without an assigned workflow

## Response `200`

File translation download URL

- FileDownloadLinkResource: 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` FileDownloadLink, required: Class DownloadLinkResponseModel
    - `url` string
    - `expireIn` string
    - `etag` string

## Other responses

- `204`: No content in exported file
- `304`: File not modified
- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project, file, or language with specified id was not found
- `405`: Method Not Allowed
- `422`: Unprocessable Entity
- `500`: Internal Server Error
- `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)
