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}"
}
}
}
Updated