# IRPCIndexingDataSource.DownloadFile_BeginForFIX

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/

Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`

Begins downloading a file for file data indexing.

- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/download-file_-begin-for-fix`
- **Request:** [`DownloadFile_BeginForFIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md#request)
- **Response:** [`DownloadFile_BeginForFIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

**For M-Files components only.** Search indexers call it to read file content for indexing.
Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Read the content with
  [DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md)
  and close the download with
  [DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md).

<a id="request"></a>

## Request: DownloadFile_BeginForFIXRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | File version. |
| `obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `obj_file_ver.obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_file_ver.obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `obj_file_ver.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `obj_file_ver.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `obj_file_ver.file_ver.internal_version` | `int32` | The file version number. |
| `obj_file_ver.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `obj_file_ver.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `data_file_version` | `int32` | Data file version. |

<a id="response"></a>

## Response: DownloadFile_BeginForFIXResponse

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `download_id` | `int32` | Receives the identifier of the download session. |
| `outline` | [`FileOutline`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileOutline/index.md) | Receives outline information of the file. |
| `outline.size` | `int64` | The size of the content in bytes, in the downloaded format. |
| `outline.size_precision` | [`FileSizePrecision`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileSizePrecision/index.md) | The file size precision. If the file size precision is 'exact', the size can be used for reading the file content. If the precision is 'unknown', the size field should not be used at all. Values: `FILE_SIZE_PRECISION_EXACT` (0), `FILE_SIZE_PRECISION_ESTIMATE` (1), `FILE_SIZE_PRECISION_UNKNOWN` (2). |
| `outline.md5_checksum` | `string` | The MD5 checksum as 32 hexadecimal digits, if requested; 32 zeros otherwise. |

<a id="related"></a>

## Related methods

- [DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md): Gets a specific block from a file from the server for file data indexing.
- [DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md): Ends downloading a file for file data indexing.
