---
title: "Download files (Async)"
method: POST
path: "/projects/{project_id}:{branch}/files/async-download"
tags: ["Files"]
---

# Download files (Async)

`POST /projects/{project_id}:{branch}/files/async-download`

Starts a project export process. The progress of the process can be tracked using the <a href="https://developers.lokalise.com/reference/list-all-processes">list all processes</a> API endpoint. Once complete, the download URL can be accessed using the <a href="https://developers.lokalise.com/reference/retrieve-a-process">Retrieve process</a> API endpoint. For general details about the Download endpoint, please refer to the <a href="https://developers.lokalise.com/reference/download-files">Download files</a> API endpoint.

## Path parameters

- `project_id` string, required
- `branch` string, required

## Request body

- object
  - `format` string, required — File format (e.g. json, strings, xml). Must be file extension of any of the file formats we support. May also be <code>ios_sdk</code> or <code>android_sdk</code> for respective OTA SDK bundles.
  - `original_filenames` boolean — Enable to use original filenames/formats. If set to <code>false</code> all keys will be export to a single file per language.
  - `bundle_structure` string — Bundle structure, used when <code>original_filenames</code> set to <code>false</code>. Allowed placeholders are <code>%LANG_ISO%</code>, <code>%LANG_NAME%</code>, <code>%FORMAT%</code> and <code>%PROJECT_NAME%</code>).
  - `directory_prefix` string — Directory prefix in the bundle, used when <code>original_filenames</code> set to <code>true</code>). Allowed placeholder is <code>%LANG_ISO%</code>.
  - `all_platforms` boolean — Enable to include all platform keys. If disabled, only the keys, associated with the platform of the <code>format</code> will be exported.
  - `filter_langs` string[] — List of languages to export. Omit this parameter for all languages.
  - `filter_data` string[] — Narrow export data range. Allowed values are <code>translated</code> or <code>untranslated</code>, <code>reviewed</code> (or <code>reviewed_only</code>), <code>last_reviewed_only</code>, <code>verified</code> and <code>nonhidden</code>.
  - `filter_filenames` string[] — Only keys attributed to selected files will be included. Leave empty for all.
  - `add_newline_eof` boolean — Enable to add new line at end of file (if supported by format).
  - `custom_translation_status_ids` string[] — Only translations attributed to selected custom statuses will be included. Leave empty for all.
  - `include_tags` string[] — Narrow export range to tags specified.
  - `exclude_tags` string[] — Specify to exclude keys with these tags.
  - `export_sort` string — Export key sort mode. Allowed value are <code>first_added</code>, <code>last_added</code>, <code>last_updated</code>, <code>a_z</code>, <code>z_a</code>.
  - `export_empty_as` 'base' | 'empty' | 'null' | 'skip' — Select how you would like empty translations to be exported. Allowed values are <code>empty</code> to keep empty, <code>base</code> to replace with the base language value, <code>null</code> to replace with null (YAML export only), or <code>skip</code> to omit.
  - `export_null_as` 'empty' | 'null' — (Ruby on Rails YAML export only) Select how you would like null (void) translations to be exported. Allowed values are <code>null</code> to keep null, <code>empty</code> to replace with empty string.
  - `include_comments` boolean — Enable to include key comments and description in exported file (if supported by the format).
  - `include_description` boolean — Enable to include key description in exported file (if supported by the format).
  - `include_pids` string[] — Other projects ID's, which keys should be included with this export.
  - `triggers` string[] — Trigger integration exports (must be enabled in project settings). Allowed values are <code>amazons3</code>, <code>gcs</code>, <code>github</code>, <code>github-enterprise</code>, <code>gitlab</code>, <code>bitbucket</code>, <code>bitbucket-enterprise</code>, <code>azure</code>.
  - `filter_repositories` string[] — Pull requests will be created only for listed repositories (<code>organization/repository</code> format). Leave empty array to process all configured integrations by platform only.
  - `replace_breaks` boolean — Enable to replace line breaks in exported translations with \n.
  - `disable_references` boolean — Enable to skip automatic replace of key reference placeholders (e.g. [%key:hello_world%]) with their corresponding translations.
  - `plural_format` 'array' | 'generic' | 'i18next' | 'i18next_v4' | 'icu' | 'json_string' | 'symfony' — Override the default plural format for the file type. Allowed values are <code>json_string</code>, <code>icu</code>, <code>array</code>, <code>generic</code>, <code>symfony</code>, <code>i18next</code>, <code>i18next_v4</code>. See Plurals and placeholders for more information about plural support for specific file formats.
  - `placeholder_format` 'icu' | 'ios' | 'net' | 'printf' | 'symfony' | 'i18n' | 'raw' — Override the default placeholder format for the file type. Allowed values are <code>printf</code>, <code>ios</code>, <code>icu</code>, <code>net</code>, <code>symfony</code>, <code>i18n</code>, <code>raw</code>). See Plurals and placeholders for more information.
  - `webhook_url` string — Once the export is complete, sends a HTTP POST with the generated bundle URL to the specified URL.
  - `language_mapping` object[] — List of languages to override default iso codes for this export.
    - `original_language_iso` string — Original language code as defined in language settings.
    - `custom_language_iso` string — Language code to replace the original one with.
  - `icu_numeric` boolean — If enabled, plural forms <code>zero</code>, <code>one</code> and <code>two</code> will be replaced with <code>=0</code>, <code>=1</code> and <code>=2</code> respectively. Only works for ICU plural format.
  - `escape_percent` boolean — Only works for printf placeholder format. When enabled, all universal percent placeholders "[%]" will be always exported as "%%".
  - `indentation` '1sp' | '2sp' | '3sp' | '4sp' | '5sp' | '6sp' | '7sp' | '8sp' | 'default' | 'tab' — Provide to override default indentation in supported files. Allowed values are <code>default</code>, <code>1sp</code>, <code>2sp</code>, <code>3sp</code>, <code>4sp</code>, <code>5sp</code>, <code>6sp</code>, <code>7sp</code>, <code>8sp</code> and <code>tab</code>.
  - `yaml_include_root` boolean — (YAML export only). Enable to include language ISO code as root key.
  - `json_unescaped_slashes` boolean — (JSON export only). Enable to leave forward slashes unescaped.
  - `java_properties_encoding` string — (Java Properties export only). Encoding for .properties files. Allowed values are <code>utf-8</code> and <code>latin-1</code>.
  - `java_properties_separator` string — (Java Properties export only). Separator for keys/values in .properties files. Allowed values are <code>=</code> and <code>:</code>.
  - `bundle_description` string — Description of the created bundle. Applies to <code>ios_sdk</code> or <code>android_sdk</code> OTA SDK bundles.
  - `filter_task_id` number — Only keys attributed to the task will be included. Available only for offline_xliff file format.
  - `compact` boolean — (ARB export only). Export the minimum required structure for use in production. Don't include metadata such as context, comments and screenshots.

## Response `200`

OK

- object
  - `process_id` string

---

[API](https://skmtc.net/lokalise/apis/default-projects.md) · [All operations](https://skmtc.net/lokalise/apis/default-projects/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lokalise/default-projects/revisions/7bceba421b12/schema)
