> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# /download/files

```
URL: http://<db.host>:<db.port>/download/files
```

Downloads one or more files from [KiFS](../../tools/kifs/).

## Input Parameter Description

<ParamField body="file_names" type="array of strings">
  An array of the file names to download from KiFS. File paths may contain wildcard characters after the KiFS directory delimiter.

  Accepted wildcard characters are asterisk (\*) to represent any string of zero or more characters, and question mark (?) to indicate a single character.
</ParamField>

<ParamField body="read_offsets" type="array of longs">
  An array of starting byte offsets from which to read each respective file in input parameter *file\_names*. Must either be empty or the same length as input parameter *file\_names*. If empty, files are downloaded in their entirety. If not empty, input parameter *read\_lengths* must also not be empty.
</ParamField>

<ParamField body="read_lengths" type="array of longs">
  Array of number of bytes to read from each respective file in input parameter *file\_names*. Must either be empty or the same length as input parameter *file\_names*. If empty, files are downloaded in their entirety. If not empty, input parameter *read\_offsets* must also not be empty.
</ParamField>

<ParamField body="options" type="map of string to strings">
  Optional parameters.

  The default value is an empty map ( \{} ).

  <Expandable title="options">
    <ParamField body="file_encoding">
      Encoding to be applied to the output file data. When using JSON serialization it is recommended to specify this as *base64*.

      The default value is `none`.

      * **base64**: Apply base64 encoding to the output file data.
      * **none**: Do not apply any encoding to the output file data.
    </ParamField>
  </Expandable>
</ParamField>

## Output Parameter Description

The Kinetica server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query.  Here is a description of the various fields of the wrapper:

<ResponseField name="status" type="String">
  'OK' or 'ERROR'
</ResponseField>

<ResponseField name="message" type="String">
  Empty if success or an error message
</ResponseField>

<ResponseField name="data_type" type="String">
  'download\_files\_response' or 'none' in case of an error
</ResponseField>

<ResponseField name="data" type="String">
  Empty string
</ResponseField>

<ResponseField name="data_str" type="JSON or String">
  This embedded JSON represents the result of the /download/files endpoint:

  <Expandable title="data_str">
    <ResponseField name="file_names" type="array of strings">
      Names of the files downloaded from KiFS.
    </ResponseField>

    <ResponseField name="file_data" type="array of bytes">
      Data for the respective downloaded files listed in output parameter *file\_names*.
    </ResponseField>

    <ResponseField name="info" type="map of string to strings">
      Additional information.
    </ResponseField>
  </Expandable>

  Empty string in case of an error.
</ResponseField>
