Generations API – POST /api/generate-uml-diagram

This endpoint generates a UML diagram in Mermaid format from a single source-code file.

Authentication

Requests must include a valid API token:

  • Header Authorization: Bearer
  • Requests without authentication receive a 401 Unauthorized.

Request

Headers

Header Value Required
Authorization Bearer `` Yes
Content-Type application/json Yes

Body (JSON)

{
  "source_code": "<?php\nclass User { /* ... */ }",
  "filename": "User.php",
  "diagram_type": "Class Diagrams",
  "name": "UserClassDiagram"
}

Parameters

Field Type Required Description
source_code string Yes The raw source-code text to analyze.
filename string Yes Name of the file (used in prompts and persistence).
diagram_type string Yes One of: Class Diagrams, Sequence Diagrams, Use Case Diagrams, Activity Diagrams, Component Diagrams, State Diagrams, Object Diagrams.
name string No Optional display name (max 255 chars).

Validation rules are enforced via Laravel’s validator .

Responses

{
    "title": "Generate UML Diagram",
    "description": "Creates a Mermaid UML diagram from provided source code.",
    "method": "POST",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/generate-uml-diagram",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer <token>",
            "required": true
        },
        {
            "key": "Content-Type",
            "value": "application/json",
            "required": true
        }
    ],
    "queryParams": [],
    "pathParams": [],
    "bodyType": "json",
    "requestBody": "{\n  \"source_code\": \"...\",\n  \"filename\": \"Example.php\",\n  \"diagram_type\": \"Class Diagrams\",\n  \"name\": \"OptionalName\"\n}",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Success",
            "body": "{\n  \"success\": true,\n  \"data\": {\n    \"generation\": \"```mermaid\\nclassDiagram\\n  class A ...\\n```\",\n    \"diagram_type\": \"Class Diagrams\"\n  }\n}"
        },
        "400": {
            "description": "Bad Request (validation failure or code too large)",
            "body": "{\n  \"success\": false,\n  \"message\": \"The provided code is too large for processing. Please reduce the amount of code and try again.\"\n}"
        },
        "403": {
            "description": "Forbidden (no credits or viewer role)",
            "body": "{\n  \"success\": false,\n  \"message\": \"You have no remaining credits. Please upgrade your plan.\"\n}"
        },
        "422": {
            "description": "Validation Error",
            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": { /* field errors */ }\n}"
        },
        "500": {
            "description": "Internal Server Error",
            "body": "{\n  \"success\": false,\n  \"message\": \"Error generating UML diagram. Please try again.\"\n}"
        }
    }
}