# gt: General Translation CLI tool: Download URL: https://generaltranslation.com/en-US/docs/cli/download.mdx --- title: Download description: How to download translations that were previously enqueued or staged --- ## Usage ```bash npx gt download ``` **Note:** This command requires a production API key! Get one on the [platform](https://generaltranslation.com/dashboard). ## Overview The `gt download` command downloads completed translations that were previously sent for translation via [`gt enqueue`](/docs/cli/enqueue) or [`gt stage`](/docs/cli/stage). The typical workflow is: 1. [`gt upload`](/docs/cli/upload) — upload source files to the General Translation platform 2. [`gt enqueue`](/docs/cli/enqueue) — enqueue the uploaded files for translation 3. **`gt download`** — download the completed translations This separation is useful in CI/CD pipelines where each step happens in a different stage or job. **For Production Use Only!** This command is meant for production builds and **should not be used in development**. Remember to specify your production API key (`GT_API_KEY`) and Project ID (`GT_PROJECT_ID`) in your environment variables. ## How it works 1. Reads your `gt.config.json` to determine the file configuration 2. If `stageTranslations` is enabled, reads the staged version data; otherwise, collects and hashes files to determine what to download 3. Polls the General Translation API for completed translations 4. Downloads and saves translation files to the output paths specified in your config ## Flags The `download` command accepts the same flags as [`translate`](/docs/cli/translate#flags). | Parameter | Description | Type | Optional | Default | | ------------------------------- | -------------------------------------------------------------------------------------------------- | ---------- | -------- | ---------------------- | | `--api-key` | Specify a production API key | `string` | `true` | | | `--project-id` | Specify the project ID | `string` | `true` | | | `--version-id` | Specify a version ID (by default, a hash of the content) | `string` | `true` | | | `--config ` | Specify a path to the GT config file | `string` | `true` | `"gt.config.json"` | | `--tsconfig, --jsconfig ` | Specify a path to the TS or JS config file | `string` | `true` | | | `--src ` | Space-separated list of glob patterns to match source files | `[string]` | `true` | | | `--dictionary ` | Specify a path to the dictionary file | `string` | `true` | | | `--inline` | Include inline `` tags in addition to the dictionary | `boolean` | `true` | `true` | | `--timeout` | The timeout for the request in seconds | `number` | `true` | `600` | | `--new, --locales ` | Locales to translate your project into | `[string]` | `true` | | | `--default-locale ` | The source locale for the project | `string` | `true` | `en` | | `--ignore-errors` | Ignore errors and force translation for valid content | `flag` | `true` | `false` | | `--dry-run` | Dry run the command | `flag` | `true` | `false` | | `--force` | Force a download of all translations, overwriting local changes | `flag` | `true` | `false` | | `--force-download` | Force a download of all translations, overwriting local changes | `flag` | `true` | `false` | ## Example: Split CI pipeline ```bash # Stage 1: Upload source files npx gt upload # Stage 2: Enqueue translations npx gt enqueue # Stage 3: Download when ready npx gt download ```