---
title: "Create Mermaid Diagram"
method: POST
path: "/api/generate-mermaid"
tags: ["Mermaid"]
---

# Create Mermaid Diagram

`POST /api/generate-mermaid`

Generate a Mermaid flowchart from a natural language description and auto-save it.

**AUTHENTICATION REQUIRED** - Must include valid JWT token in Authorization header.

Args:
    diagram_request: DiagramRequest containing the description
    request: FastAPI Request object (required for rate limiting)
    current_user: Authenticated user (injected by Auth0 middleware)
    db: Database session

Returns:
    MermaidResponse with Mermaid syntax code and saved diagram ID

Rate limit: Configurable via RATE_LIMIT_PER_MINUTE env var (default: 10/minute)

## Request body

- DiagramRequest — Request model for diagram generation.
  - `description` string, required — Natural language description of the diagram (10-5000 characters)
  - `diagram_type` 'flowchart' | 'sequence' | 'mindmap' | 'auto' — Type of diagram to generate (flowchart, sequence, mindmap, or auto to let AI decide)

## Response `200`

Successful Response

- MermaidResponse — Response model for Mermaid diagram generation.
  - `mermaidCode` string, required — Generated Mermaid diagram syntax
  - `title` string, required — Diagram title extracted from description
  - `diagram_type` 'flowchart' | 'sequence' | 'mindmap' — Type of diagram generated
  - `savedDiagramId` integer, nullable — ID of the auto-saved diagram (if save was successful)
  - `diagram_json` object, nullable — Current diagram state from database (for edit operations, used in visual diff)

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/makeaviz/apis/text-to-diagram-api.md) · [All operations](https://skmtc.net/makeaviz/apis/text-to-diagram-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/makeaviz/text-to-diagram-api/versions/b7c00f8d19a5/schema)
