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

# Get Report

> Download the full markdown audit report for a completed Nyx run

## Overview

Returns the full audit report as markdown. The report includes findings, reproduction steps, and the attack chain Nyx used to surface each vulnerability.

<Warning>
  Only available once a run reaches `status: "completed"`. Calling it earlier returns **425 Too Early**.
</Warning>

## Path Parameters

<ParamField path="run_id" type="string" required>
  The `run_id` returned by `POST /nyx/runs`.
</ParamField>

## Headers

<ParamField header="Accept" type="string">
  Use `text/markdown` to receive the report body. Defaults to `text/markdown` if omitted.
</ParamField>

## Response

A `text/markdown` body containing the audit report. The CLI writes it to `<output>/<config_name>-report.md`.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.fabraix.com/v1/nyx/runs/r_01H2X3Y4Z5/report \
    -H "X-Verification-Token: $NYX_TOKEN" \
    -H "Accept: text/markdown" \
    -o playground-report.md
  ```

  ```javascript JavaScript theme={null}
  import { writeFile } from 'node:fs/promises';

  const res = await fetch(
    `https://api.fabraix.com/v1/nyx/runs/${runId}/report`,
    {
      headers: {
        'X-Verification-Token': process.env.NYX_TOKEN,
        Accept: 'text/markdown',
      },
    }
  );

  if (res.status === 425) {
    console.error('Run still in progress, try again once it completes.');
    process.exit(1);
  }

  await writeFile('playground-report.md', await res.text());
  ```
</CodeGroup>

## Errors

| Status | Meaning                                        |
| ------ | ---------------------------------------------- |
| 401    | Invalid or expired `X-Verification-Token`      |
| 404    | `run_id` not found                             |
| 425    | Run is still in progress, report not ready yet |

## Related Endpoints

* [POST /nyx/runs](/api-reference/nyx/endpoint/submit-run): submit a new run
* [GET /nyx/runs/{run_id}](/api-reference/nyx/endpoint/get-run): poll for completion
