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

# Download Log

> Stream an Unreal Engine log file as plain text.

Return the log's full text, decompressed, as a streamed `text/plain` response. There is no size cap: a session whose application logged the same error thousands of times a minute can produce a log of tens of megabytes, and those are exactly the ones you need. Read it as a stream.

<Info>
  Scope: `read`. The sibling `GET /analytics/log-files/{logFileId}?projectId=…` returns the file's metadata plus a short-lived `downloadUrl` if you prefer to fetch from storage directly.
</Info>

## Path parameters

<ParamField path="logFileId" type="string" required>
  The `_id` from [Session Logs](/resources/api-reference/session-logs).
</ParamField>

## Query parameters

<ParamField query="projectId" type="string" required>
  The project the log belongs to.
</ParamField>

## Headers

<ParamField header="x-api-key" type="string" required>
  Your Streampixel API key.
</ParamField>

## Response

`200` with `Content-Type: text/plain` and the log lines, e.g.

```text theme={"dark"}
[2026.09.25-14.02.20:113][  0]LogInit: Engine Version: 5.4.4-35576357+++UE5+Release-5.4
[2026.09.25-14.02.21:002][  0]LogD3D12RHI: Display: Adapter Name: NVIDIA RTX A5000
[2026.09.25-14.02.24:410][  1]LogPixelStreaming2: Display: Connected to signalling server
…
```

<RequestExample>
  ```bash cURL theme={"dark"}
  curl "https://platform.streampixel.io/api/v1/analytics/log-files/66b1c2d3e4f5a6b7c8d9e0f1/download?projectId=664f1a2b3c4d5e6f7a8b9c0d" \
    -H "x-api-key: $STREAMPIXEL_API_KEY" -o Showroom.log
  grep -n -E "Fatal error|=== Critical error|GPU Crash" Showroom.log | head
  ```

  ```javascript Node.js theme={"dark"}
  import { createWriteStream } from 'node:fs';
  import { Readable } from 'node:stream';
  import { pipeline } from 'node:stream/promises';

  const u = new URL('https://platform.streampixel.io/api/v1/analytics/log-files/66b1c2d3e4f5a6b7c8d9e0f1/download');
  u.searchParams.set('projectId', '664f1a2b3c4d5e6f7a8b9c0d');
  const res = await fetch(u, { headers: { 'x-api-key': process.env.STREAMPIXEL_API_KEY } });
  await pipeline(Readable.fromWeb(res.body), createWriteStream('Showroom.log'));
  ```

  ```python Python theme={"dark"}
  import os, re, requests

  with requests.get(
      "https://platform.streampixel.io/api/v1/analytics/log-files/66b1c2d3e4f5a6b7c8d9e0f1/download",
      params={"projectId": "664f1a2b3c4d5e6f7a8b9c0d"},
      headers={"x-api-key": os.environ["STREAMPIXEL_API_KEY"]},
      stream=True,
  ) as r:
      for line in r.iter_lines(decode_unicode=True):
          if re.search(r"Fatal error|=== Critical error|GPU Crash", line):
              print(line)
  ```
</RequestExample>

## What to look for

| Pattern                                                                                        | Meaning                                                                                  |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `GPU Crash`                                                                                    | The graphics device was lost: driver or shader fault, or video memory exhausted.         |
| `Fatal error:`, `=== Critical error: ===`, `Unhandled Exception`, `EXCEPTION_ACCESS_VIOLATION` | The application crashed. The lines just before name the cause.                           |
| `FPlatformMisc::RequestExit` with nothing above                                                | A clean, requested exit: the platform stopped the app when the viewer left. Not a crash. |
| No `Connected to signalling server` line                                                       | The Pixel Streaming plugin never connected; sessions end with code `4005`.               |

## Errors

| Status | Cause                                                                      |
| ------ | -------------------------------------------------------------------------- |
| `403`  | `projectId` missing, or the log belongs to a different project or account. |
| `404`  | No log file with that id.                                                  |
