---
title: "Render PlantUML source to SVG or PNG"
method: POST
path: "/api/render"
tags: ["render"]
---

# Render PlantUML source to SVG or PNG

`POST /api/render`

## Request

- Base URL: `https://uml.singsk.com`
- URL: `https://uml.singsk.com/api/render`
- Auth: none declared

The core function. Send PlantUML source text; receive the rendered diagram. format defaults to svg. PlantUML syntax errors still return an image (200) containing the error message - call POST /api/validate first (or use /api/render/batch, which validates per item) to get a machine-readable error instead. Responses carry a strong ETag and Cache-Control: public, max-age=86400, immutable; send If-None-Match to receive 304 for a repeated source. Every response carries RateLimit-* headers.

## Query parameters

- `format` 'svg' | 'png'

## Request body

- RenderRequest
  - `text` string, required: PlantUML source, including @start/@end directives
  - `format` 'svg' | 'png'

## Response `200`

Rendered diagram

## Other responses

- `400`: Missing/empty text
- `502`: Renderer unreachable

---

[API](https://skmtc.dev/singsk/apis/uml-singsk-com-plantuml-service-api.md) · [All operations](https://skmtc.dev/singsk/apis/uml-singsk-com-plantuml-service-api/llms.txt) · [OpenAPI document](https://skmtc.dev/singsk/apis/uml-singsk-com-plantuml-service-api/revisions/44cfa55d273f?raw)
