---
title: "Generate Report"
method: POST
path: "/api/v1/generate-report"
tags: ["Chat"]
---

# Generate Report

`POST /api/v1/generate-report`

## Request

- Base URL: `https://backend.caspr.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://backend.caspr.ai/api/v1/generate-report`
- Auth: OAuth 2
  - Password
  - Token URL: `token`

Generate report endpoint - handles both initial generation (v1) and regeneration (v2+).

**Auto-Detection:**
- If active version not generated → Generates v1
- If active version already generated → Creates new version automatically, then generates

Frontend always calls this single endpoint - no need to know about versions!

## Request body

- GenerateReportRequest
  - `report_id` string, required
  - `report_version_id` string, nullable
  - `output_type` string, nullable

## Response `200`

Successful Response

- GenerateReportResponse
  - `success` boolean, required
  - `message` string, required
  - `report_id` string, required
  - `report_version_id` string, nullable
  - `version` integer, nullable
  - `output_type` string, nullable
  - `s3_uri` object, nullable
  - `modified` boolean, nullable
  - `already_exists` boolean, nullable

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/caspr/apis/casper-api.md) - [All operations](https://skmtc.dev/caspr/apis/casper-api/llms.txt) - [OpenAPI document](https://skmtc.dev/caspr/apis/casper-api/revisions/f9765e3aa00c?raw)
