StarUML Controller API
Overview
- Protocol: HTTP
- Default port: 12345 (configurable from 1 to 65535 via dialog)
- Request/Response format: JSON (
Content-Type: application/json; charset=utf-8) - CORS: All origins allowed (
Access-Control-Allow-Origin: *)
General
ID Format and URL Encoding
StarUML element IDs are Base64-encoded GUIDs that may contain / (slash), + (plus), and = (equals).
When specifying an ID in a URL path parameter, the client must URL-encode it (e.g., / → %2F, + → %2B, = → %3D).
The server automatically URL-decodes path parameters.
Common Response Format
Success:
{
"success": true,
"message": "A message describing the operation",
"request": {
"method": "POST",
"path": "/api/erd/entities",
"body": { "parentId": "xxx", "name": "users" }
},
"data": { ... }
}
Error:
{
"success": false,
"error": "Detailed error message",
"request": {
"method": "PUT",
"path": "/api/erd/columns/xxx",
"body": { "type": "INVALID" }
}
}
| Field | Description |
|---|---|
| success | true on success / false on failure |
| message | Success only. Description of the operation performed |
| error | Failure only. Detailed reason for the error |
| request | Request information (method, path, query?, body?) |
| data | Success only. Response data |
Input Validation
All mutation endpoints (POST/PUT) perform the following validation:
- Unknown field rejection: Fields not defined in the specification cause an error
- Type checking: Each field value must match the expected type (string, boolean, number, etc.)
- Required fields: Fields defined as required must be present
- Empty body rejection: PUT requests require at least one field
- Empty name rejection: The name field does not accept empty strings
- Reference existence check: ID references (parentId, diagramId, referenceToId, etc.) are verified for existence and correct type
- Referential integrity on delete: Deletion is blocked when other elements reference the target entity or column
- Self-reference prevention: Setting a column's referenceToId to its own ID is forbidden
Tag Kind Constraints
The tag kind field accepts only the following values:
| Value | Meaning |
|---|---|
| 0 | string |
| 1 | boolean |
| 2 | number |
| 3 | reference |
| 4 | hidden |
HTTP Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request (JSON parse error, validation error, etc.) |
| 404 | Resource not found / Route does not exist |
| 500 | Internal server error |
ER Diagram
Column Type Constraints
The column type field accepts only the following values (case-insensitive; normalized to uppercase on save):
CHAR, VARCHAR, TEXT, CLOB, BOOLEAN, SMALLINT, INTEGER, INT, BIGINT, TINYINT, FLOAT, DOUBLE, REAL, DECIMAL, NUMERIC, DATE, TIME, DATETIME, TIMESTAMP, BLOB, BINARY, VARBINARY, UUID, JSON, JSONB, XML, SERIAL, BIGSERIAL
Referential Integrity Checks
On DELETE operations, the following checks are performed to maintain data integrity. If a check fails, a 400 error is returned and the deletion is blocked.
| Operation | Check | Error behavior |
|---|---|---|
| DELETE DataModel | Must not contain any entities, relationships, or diagrams | 400: Error message includes child element counts |
| DELETE Entity | No columns in other entities may reference this entity's columns via referenceTo | 400: Error message includes referencing column details |
| DELETE Entity | No relationships may reference this entity via end1/end2 | 400: Error message includes referencing relationship details |
| DELETE Column | No other columns may reference this column via referenceTo | 400: Error message includes referencing column details |
| PUT Column | referenceToId must not be the column's own ID | 400: Self-reference error message |
Sequence Diagram
Message Sort Constraints
The message messageSort field accepts only the following values:
synchCall, asynchCall, asynchSignal, createMessage, deleteMessage, reply
Interaction Operator Constraints
The combined fragment interactionOperator field accepts only the following values:
alt, opt, par, loop, critical, neg, assert, strict, seq, ignore, consider, break
Sequence Diagram Referential Integrity Checks
| Operation | Check | Error behavior |
|---|---|---|
| DELETE Interaction | Must not contain any lifelines, messages, fragments, or diagrams | 400: Error message includes child element counts |
| DELETE Lifeline | No messages may reference this lifeline as source or target | 400: Error message includes referencing message details |
| DELETE Lifeline | No state invariants may reference this lifeline via covered | 400: Error message includes referencing state invariant details |
| DELETE CombinedFragment | Child operands are cascade deleted | Operands deleted automatically |
| DELETE InteractionOperand | Parent fragment must have at least 2 operands | 400: Error message |
Sequence Diagram Layout Guide
When creating sequence diagram elements programmatically, use the following positioning parameters for proper layout:
| Element | Parameter | Description | Recommended Value |
|---|---|---|---|
| Sequence Diagram | width, height |
Frame size | Calculate based on lifeline count: width = (lifeline count) × 250 + 200, height based on message count |
| Lifeline | x, y, height |
Position and timeline length | x: space 250px apart starting at 150. y: 50. height: (last message y) + 100 |
| Message | y |
Vertical position on diagram | Start at 150, increment by 50 for each message |
| Message (synchCall) | activationHeight |
Activation bar height | Set to (reply message y) - (this message y) + 10 |
| Combined Fragment | x, y, width, height |
Position and size | x: 30, y/height: cover the messages inside, width: cover all lifelines |
Endpoint Summary
General — Status, Elements, Tags
| Endpoint | Method | Description |
|---|---|---|
| /api/status | GET | Health check and endpoint list |
| /api/elements/:id | GET | Get any element by ID |
| /api/elements/:id | PUT | Update any element's name and documentation |
| /api/elements/:id | DELETE | Delete any element by ID |
| /api/elements/:id/tags | GET | List tags for an element |
| /api/elements/:id/tags | POST | Create a tag on an element |
| /api/tags/:id | GET | Get tag details |
| /api/tags/:id | PUT | Update a tag |
| /api/tags/:id | DELETE | Delete a tag |
| /api/elements/:id/relationships | GET | List all relationships of an element |
| /api/elements/:id/views | GET | List all views of an element across diagrams |
| /api/elements/:id/relocate | PUT | Move element to a different parent |
| /api/elements/:id/children | POST | Create a child element (attribute, operation, etc.) |
| /api/elements/:id/reorder | PUT | Reorder element within parent (up/down) |
Project
| Endpoint | Method | Description |
|---|---|---|
| /api/project/save | POST | Save project to file |
| /api/project/open | POST | Open project from file |
| /api/project/new | POST | Create a new empty project |
| /api/project/close | POST | Close the current project |
| /api/project/import | POST | Import a .mdj fragment into the project |
| /api/project/export | POST | Export a model fragment to a .mdj file |
| /api/project/export-all | POST | Export all diagrams as images (PNG/SVG/JPEG/PDF) |
| /api/project/export-doc | POST | Export project documentation (HTML/Markdown) |
Utility
| Endpoint | Method | Description |
|---|---|---|
| /api/undo | POST | Undo the last action |
| /api/redo | POST | Redo the last undone action |
| /api/search | GET | Search elements by keyword with optional type filter |
| /api/validate | POST | Run model validation |
| /api/mermaid/import | POST | Import a Mermaid diagram definition |
| /api/diagrams/generate | POST | Generate a diagram from natural language description |
Diagrams — Generic CRUD, Export, Layout
| Endpoint | Method | Description |
|---|---|---|
| /api/diagrams | GET | List all diagrams (optionally filter by type) |
| /api/diagrams | POST | Create a new diagram of any supported type |
| /api/diagrams/:id | GET | Get diagram details by ID |
| /api/diagrams/:id | PUT | Update diagram name |
| /api/diagrams/:id | DELETE | Delete a diagram |
| /api/diagrams/:id/elements | GET | List all elements on a diagram |
| /api/diagrams/:id/elements | POST | Create a node element on a diagram |
| /api/diagrams/:id/relations | POST | Create a relation between elements on a diagram |
| /api/diagrams/:id/export | POST | Export diagram as image (PNG/SVG/JPEG/PDF) |
| /api/diagrams/:id/layout | POST | Auto-layout diagram with configurable direction |
| /api/diagrams/:id/open | POST | Open/activate a diagram in the editor |
| /api/diagrams/:id/zoom | PUT | Set diagram zoom level |
| /api/diagrams/:id/create-view-of | POST | Create a view of an existing model on a diagram |
| /api/diagrams/:id/link-object | POST | Create a UMLLinkObject on an object diagram |
Notes & Annotations
| Endpoint | Method | Description |
|---|---|---|
| /api/diagrams/:id/notes | GET | List all notes on a diagram |
| /api/diagrams/:id/notes | POST | Create a note with text and position |
| /api/notes/:id | GET | Get note details |
| /api/notes/:id | PUT | Update note text |
| /api/notes/:id | DELETE | Delete a note |
| /api/diagrams/:id/note-links | GET | List all note links on a diagram |
| /api/diagrams/:id/note-links | POST | Create a link between a note and an element |
| /api/note-links/:id | DELETE | Delete a note link |
| /api/diagrams/:id/free-lines | GET | List all free lines on a diagram |
| /api/diagrams/:id/free-lines | POST | Create a free line on a diagram |
| /api/free-lines/:id | DELETE | Delete a free line |
Views — Position, Style, Alignment
| Endpoint | Method | Description |
|---|---|---|
| /api/diagrams/:id/views | GET | List all views on a diagram |
| /api/views/:id | PUT | Update view position/size |
| /api/views/:id/style | PUT | Update view style (fillColor, lineColor, suppressAttributes, suppressOperations, autoResize, etc.) |
| /api/views/:id/reconnect | PUT | Reconnect a relation view's source/target |
| /api/views/align | POST | Align multiple views |
ER Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/erd/diagrams | GET | List all ER diagrams |
| /api/erd/diagrams | POST | Create an ER diagram |
| /api/erd/diagrams/:id | GET | Get diagram details |
| /api/erd/diagrams/:id | PUT | Update a diagram |
| /api/erd/diagrams/:id | DELETE | Delete a diagram |
| /api/erd/data-models | GET | List all data models |
| /api/erd/data-models | POST | Create a data model |
| /api/erd/data-models/:id | GET | Get data model details |
| /api/erd/data-models/:id | PUT | Update a data model |
| /api/erd/data-models/:id | DELETE | Delete a data model |
| /api/erd/entities | GET | List entities (filterable) |
| /api/erd/entities | POST | Create an entity |
| /api/erd/entities/:id | GET | Get entity details |
| /api/erd/entities/:id | PUT | Update an entity |
| /api/erd/entities/:id | DELETE | Delete an entity |
| /api/erd/entities/:id/columns | GET | List columns of an entity |
| /api/erd/entities/:id/columns | POST | Create a column |
| /api/erd/columns/:id | GET | Get column details |
| /api/erd/columns/:id | PUT | Update a column |
| /api/erd/columns/:id | DELETE | Delete a column |
| /api/erd/entities/:id/sequences | GET | List sequences of an entity |
| /api/erd/entities/:id/sequences | POST | Create a sequence |
| /api/erd/sequences/:id | GET | Get sequence details |
| /api/erd/sequences/:id | PUT | Update a sequence |
| /api/erd/sequences/:id | DELETE | Delete a sequence |
| /api/erd/entities/:id/indexes | GET | List indexes of an entity |
| /api/erd/entities/:id/indexes | POST | Create an index |
| /api/erd/indexes/:id | GET | Get index details |
| /api/erd/indexes/:id | PUT | Update an index |
| /api/erd/indexes/:id | DELETE | Delete an index |
| /api/erd/relationships | GET | List relationships (filterable) |
| /api/erd/relationships | POST | Create a relationship |
| /api/erd/relationships/:id | GET | Get relationship details |
| /api/erd/relationships/:id | PUT | Update a relationship |
| /api/erd/relationships/:id | DELETE | Delete a relationship |
| /api/erd/postgresql/ddl | POST | Generate PostgreSQL DDL |
Sequence Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/seq/interactions | GET | List all interactions |
| /api/seq/interactions | POST | Create an interaction |
| /api/seq/interactions/:id | GET | Get interaction details |
| /api/seq/interactions/:id | PUT | Update an interaction |
| /api/seq/interactions/:id | DELETE | Delete an interaction |
| /api/seq/diagrams | GET | List all sequence diagrams |
| /api/seq/diagrams | POST | Create a sequence diagram |
| /api/seq/diagrams/:id | GET | Get sequence diagram details |
| /api/seq/diagrams/:id | PUT | Update a sequence diagram |
| /api/seq/diagrams/:id | DELETE | Delete a sequence diagram |
| /api/seq/interactions/:id/lifelines | GET | List lifelines of an interaction |
| /api/seq/interactions/:id/lifelines | POST | Create a lifeline |
| /api/seq/lifelines/:id | GET | Get lifeline details |
| /api/seq/lifelines/:id | PUT | Update a lifeline |
| /api/seq/lifelines/:id | DELETE | Delete a lifeline |
| /api/seq/interactions/:id/messages | GET | List messages of an interaction |
| /api/seq/interactions/:id/messages | POST | Create a message |
| /api/seq/messages/:id | GET | Get message details |
| /api/seq/messages/:id | PUT | Update a message |
| /api/seq/messages/:id | DELETE | Delete a message |
| /api/seq/interactions/:id/combined-fragments | GET | List combined fragments |
| /api/seq/interactions/:id/combined-fragments | POST | Create a combined fragment |
| /api/seq/combined-fragments/:id | GET | Get combined fragment details |
| /api/seq/combined-fragments/:id | PUT | Update a combined fragment |
| /api/seq/combined-fragments/:id | DELETE | Delete a combined fragment |
| /api/seq/combined-fragments/:id/operands | GET | List operands of a combined fragment |
| /api/seq/combined-fragments/:id/operands | POST | Add an operand |
| /api/seq/operands/:id | GET | Get operand details |
| /api/seq/operands/:id | PUT | Update an operand |
| /api/seq/operands/:id | DELETE | Delete an operand |
| /api/seq/interactions/:id/state-invariants | GET | List state invariants |
| /api/seq/interactions/:id/state-invariants | POST | Create a state invariant |
| /api/seq/state-invariants/:id | GET | Get state invariant details |
| /api/seq/state-invariants/:id | PUT | Update a state invariant |
| /api/seq/state-invariants/:id | DELETE | Delete a state invariant |
| /api/seq/interactions/:id/interaction-uses | GET | List interaction uses |
| /api/seq/interactions/:id/interaction-uses | POST | Create an interaction use |
| /api/seq/interaction-uses/:id | GET | Get interaction use details |
| /api/seq/interaction-uses/:id | PUT | Update an interaction use |
| /api/seq/interaction-uses/:id | DELETE | Delete an interaction use |
Shapes
| Endpoint | Method | Description |
|---|---|---|
| /api/diagrams/:id/shapes | GET | List all shapes on a diagram |
| /api/diagrams/:id/shapes | POST | Create a shape on a diagram |
| /api/shapes/:id | GET | Get shape details |
| /api/shapes/:id | PUT | Update a shape |
| /api/shapes/:id | DELETE | Delete a shape |
Class/Package Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/class/diagrams | GET | List all class/package diagrams |
| /api/class/diagrams | POST | Create a class/package diagram |
| /api/class/diagrams/:id | GET | Get diagram details |
| /api/class/diagrams/:id | PUT | Update a diagram |
| /api/class/diagrams/:id | DELETE | Delete a diagram |
| /api/class/classes | GET | List all classes |
| /api/class/classes | POST | Create a class |
| /api/class/classes/:id | GET | Get class details |
| /api/class/classes/:id | PUT | Update a class |
| /api/class/classes/:id | DELETE | Delete a class |
| /api/class/classes/:id/attributes | GET | List attributes |
| /api/class/classes/:id/attributes | POST | Create an attribute |
| /api/class/classes/:id/operations | GET | List operations |
| /api/class/classes/:id/operations | POST | Create an operation |
| /api/class/classes/:id/receptions | GET | List receptions |
| /api/class/classes/:id/receptions | POST | Create a reception |
| /api/class/classes/:id/template-parameters | GET | List template parameters |
| /api/class/classes/:id/template-parameters | POST | Create a template parameter |
| /api/class/interfaces | GET | List all interfaces |
| /api/class/interfaces | POST | Create an interface |
| /api/class/interfaces/:id | GET | Get interface details |
| /api/class/interfaces/:id | PUT | Update an interface |
| /api/class/interfaces/:id | DELETE | Delete an interface |
| /api/class/interfaces/:id/attributes | GET | List attributes |
| /api/class/interfaces/:id/attributes | POST | Create an attribute |
| /api/class/interfaces/:id/operations | GET | List operations |
| /api/class/interfaces/:id/operations | POST | Create an operation |
| /api/class/enumerations | GET | List all enumerations |
| /api/class/enumerations | POST | Create an enumeration |
| /api/class/enumerations/:id | GET | Get enumeration details |
| /api/class/enumerations/:id | PUT | Update an enumeration |
| /api/class/enumerations/:id | DELETE | Delete an enumeration |
| /api/class/enumerations/:id/literals | GET | List literals |
| /api/class/enumerations/:id/literals | POST | Create a literal |
| /api/class/data-types | GET | List all data types |
| /api/class/data-types | POST | Create a data type |
| /api/class/data-types/:id | GET | Get data type details |
| /api/class/data-types/:id | PUT | Update a data type |
| /api/class/data-types/:id | DELETE | Delete a data type |
| /api/class/packages | GET | List all packages |
| /api/class/packages | POST | Create a package |
| /api/class/packages/:id | GET | Get package details |
| /api/class/packages/:id | PUT | Update a package |
| /api/class/packages/:id | DELETE | Delete a package |
| /api/class/associations | GET | List all associations |
| /api/class/associations | POST | Create an association |
| /api/class/associations/:id | GET | Get association details |
| /api/class/associations/:id | PUT | Update an association |
| /api/class/associations/:id | DELETE | Delete an association |
| /api/class/generalizations | GET | List all generalizations |
| /api/class/generalizations | POST | Create a generalization |
| /api/class/generalizations/:id | GET | Get generalization details |
| /api/class/generalizations/:id | PUT | Update a generalization |
| /api/class/generalizations/:id | DELETE | Delete a generalization |
| /api/class/dependencies | GET | List all dependencies |
| /api/class/dependencies | POST | Create a dependency |
| /api/class/dependencies/:id | GET | Get dependency details |
| /api/class/dependencies/:id | PUT | Update a dependency |
| /api/class/dependencies/:id | DELETE | Delete a dependency |
| /api/class/interface-realizations | GET | List all interface realizations |
| /api/class/interface-realizations | POST | Create an interface realization |
| /api/class/interface-realizations/:id | GET | Get interface realization details |
| /api/class/interface-realizations/:id | PUT | Update an interface realization |
| /api/class/interface-realizations/:id | DELETE | Delete an interface realization |
| /api/class/realizations | GET | List all realizations |
| /api/class/realizations | POST | Create a realization |
| /api/class/realizations/:id | GET | Get realization details |
| /api/class/realizations/:id | PUT | Update a realization |
| /api/class/realizations/:id | DELETE | Delete a realization |
| /api/class/template-bindings | GET | List all template bindings |
| /api/class/template-bindings | POST | Create a template binding |
| /api/class/template-bindings/:id | GET | Get template binding details |
| /api/class/template-bindings/:id | PUT | Update a template binding |
| /api/class/template-bindings/:id | DELETE | Delete a template binding |
Use Case Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/usecase/diagrams | GET | List all use case diagrams |
| /api/usecase/diagrams | POST | Create a use case diagram |
| /api/usecase/diagrams/:id | GET | Get diagram details |
| /api/usecase/diagrams/:id | PUT | Update a diagram |
| /api/usecase/diagrams/:id | DELETE | Delete a diagram |
| /api/usecase/actors | GET | List all actors |
| /api/usecase/actors | POST | Create an actor |
| /api/usecase/actors/:id | GET | Get actor details |
| /api/usecase/actors/:id | PUT | Update an actor |
| /api/usecase/actors/:id | DELETE | Delete an actor |
| /api/usecase/use-cases | GET | List all use cases |
| /api/usecase/use-cases | POST | Create an use case |
| /api/usecase/use-cases/:id | GET | Get use case details |
| /api/usecase/use-cases/:id | PUT | Update an use case |
| /api/usecase/use-cases/:id | DELETE | Delete an use case |
| /api/usecase/use-cases/:id/extension-points | GET | List extension points |
| /api/usecase/use-cases/:id/extension-points | POST | Create an extension point |
| /api/usecase/subjects | GET | List all subjects |
| /api/usecase/subjects | POST | Create a subject |
| /api/usecase/subjects/:id | GET | Get subject details |
| /api/usecase/subjects/:id | PUT | Update a subject |
| /api/usecase/subjects/:id | DELETE | Delete a subject |
| /api/usecase/associations | GET | List all associations |
| /api/usecase/associations | POST | Create an association |
| /api/usecase/associations/:id | GET | Get association details |
| /api/usecase/associations/:id | PUT | Update an association |
| /api/usecase/associations/:id | DELETE | Delete an association |
| /api/usecase/includes | GET | List all includes |
| /api/usecase/includes | POST | Create an include |
| /api/usecase/includes/:id | GET | Get include details |
| /api/usecase/includes/:id | PUT | Update an include |
| /api/usecase/includes/:id | DELETE | Delete an include |
| /api/usecase/extends | GET | List all extends |
| /api/usecase/extends | POST | Create an extend |
| /api/usecase/extends/:id | GET | Get extend details |
| /api/usecase/extends/:id | PUT | Update an extend |
| /api/usecase/extends/:id | DELETE | Delete an extend |
| /api/usecase/generalizations | GET | List all generalizations |
| /api/usecase/generalizations | POST | Create a generalization |
| /api/usecase/generalizations/:id | GET | Get generalization details |
| /api/usecase/generalizations/:id | PUT | Update a generalization |
| /api/usecase/generalizations/:id | DELETE | Delete a generalization |
| /api/usecase/dependencies | GET | List all dependencies |
| /api/usecase/dependencies | POST | Create a dependency |
| /api/usecase/dependencies/:id | GET | Get dependency details |
| /api/usecase/dependencies/:id | PUT | Update a dependency |
| /api/usecase/dependencies/:id | DELETE | Delete a dependency |
Activity Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/activity/diagrams | GET | List all activity diagrams |
| /api/activity/diagrams | POST | Create a activity diagram |
| /api/activity/diagrams/:id | GET | Get diagram details |
| /api/activity/diagrams/:id | PUT | Update a diagram |
| /api/activity/diagrams/:id | DELETE | Delete a diagram |
| /api/activity/actions | GET | List all actions |
| /api/activity/actions | POST | Create an action |
| /api/activity/actions/:id | GET | Get action details |
| /api/activity/actions/:id | PUT | Update an action |
| /api/activity/actions/:id | DELETE | Delete an action |
| /api/activity/actions/:id/pins | GET | List pins |
| /api/activity/actions/:id/pins | POST | Create a pin |
| /api/activity/actions/:id/output-pins | GET | List output pins |
| /api/activity/actions/:id/output-pins | POST | Create an output pin |
| /api/activity/control-nodes | GET | List all control nodes |
| /api/activity/control-nodes | POST | Create a control node |
| /api/activity/control-nodes/:id | GET | Get control node details |
| /api/activity/control-nodes/:id | PUT | Update a control node |
| /api/activity/control-nodes/:id | DELETE | Delete a control node |
| /api/activity/object-nodes | GET | List all object nodes |
| /api/activity/object-nodes | POST | Create an object node |
| /api/activity/object-nodes/:id | GET | Get object node details |
| /api/activity/object-nodes/:id | PUT | Update an object node |
| /api/activity/object-nodes/:id | DELETE | Delete an object node |
| /api/activity/partitions | GET | List all partitions |
| /api/activity/partitions | POST | Create a partition |
| /api/activity/partitions/:id | GET | Get partition details |
| /api/activity/partitions/:id | PUT | Update a partition |
| /api/activity/partitions/:id | DELETE | Delete a partition |
| /api/activity/regions | GET | List all regions |
| /api/activity/regions | POST | Create a region |
| /api/activity/regions/:id | GET | Get region details |
| /api/activity/regions/:id | PUT | Update a region |
| /api/activity/regions/:id | DELETE | Delete a region |
| /api/activity/control-flows | GET | List all control flows |
| /api/activity/control-flows | POST | Create a control flow |
| /api/activity/control-flows/:id | GET | Get control flow details |
| /api/activity/control-flows/:id | PUT | Update a control flow |
| /api/activity/control-flows/:id | DELETE | Delete a control flow |
| /api/activity/object-flows | GET | List all object flows |
| /api/activity/object-flows | POST | Create an object flow |
| /api/activity/object-flows/:id | GET | Get object flow details |
| /api/activity/object-flows/:id | PUT | Update an object flow |
| /api/activity/object-flows/:id | DELETE | Delete an object flow |
| /api/activity/exception-handlers | GET | List all exception handlers |
| /api/activity/exception-handlers | POST | Create an exception handler |
| /api/activity/exception-handlers/:id | GET | Get exception handler details |
| /api/activity/exception-handlers/:id | PUT | Update an exception handler |
| /api/activity/exception-handlers/:id | DELETE | Delete an exception handler |
| /api/activity/activity-interrupts | GET | List all activity interrupts |
| /api/activity/activity-interrupts | POST | Create an activity interrupt |
| /api/activity/activity-interrupts/:id | GET | Get activity interrupt details |
| /api/activity/activity-interrupts/:id | PUT | Update an activity interrupt |
| /api/activity/activity-interrupts/:id | DELETE | Delete an activity interrupt |
State Machine Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/statemachine/diagrams | GET | List all state machine diagrams |
| /api/statemachine/diagrams | POST | Create a state machine diagram |
| /api/statemachine/diagrams/:id | GET | Get diagram details |
| /api/statemachine/diagrams/:id | PUT | Update a diagram |
| /api/statemachine/diagrams/:id | DELETE | Delete a diagram |
| /api/statemachine/states | GET | List all states |
| /api/statemachine/states | POST | Create a state |
| /api/statemachine/states/:id | GET | Get state details |
| /api/statemachine/states/:id | PUT | Update a state |
| /api/statemachine/states/:id | DELETE | Delete a state |
| /api/statemachine/states/:id/regions | GET | List regions |
| /api/statemachine/states/:id/regions | POST | Create a region |
| /api/statemachine/pseudostates | GET | List all pseudostates |
| /api/statemachine/pseudostates | POST | Create a pseudostate |
| /api/statemachine/pseudostates/:id | GET | Get pseudostate details |
| /api/statemachine/pseudostates/:id | PUT | Update a pseudostate |
| /api/statemachine/pseudostates/:id | DELETE | Delete a pseudostate |
| /api/statemachine/final-states | GET | List all final states |
| /api/statemachine/final-states | POST | Create a final state |
| /api/statemachine/final-states/:id | GET | Get final state details |
| /api/statemachine/final-states/:id | PUT | Update a final state |
| /api/statemachine/final-states/:id | DELETE | Delete a final state |
| /api/statemachine/transitions | GET | List all transitions |
| /api/statemachine/transitions | POST | Create a transition |
| /api/statemachine/transitions/:id | GET | Get transition details |
| /api/statemachine/transitions/:id | PUT | Update a transition |
| /api/statemachine/transitions/:id | DELETE | Delete a transition |
Component Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/component/diagrams | GET | List all component diagrams |
| /api/component/diagrams | POST | Create a component diagram |
| /api/component/diagrams/:id | GET | Get diagram details |
| /api/component/diagrams/:id | PUT | Update a diagram |
| /api/component/diagrams/:id | DELETE | Delete a diagram |
| /api/component/components | GET | List all components |
| /api/component/components | POST | Create a component |
| /api/component/components/:id | GET | Get component details |
| /api/component/components/:id | PUT | Update a component |
| /api/component/components/:id | DELETE | Delete a component |
| /api/component/artifacts | GET | List all artifacts |
| /api/component/artifacts | POST | Create an artifact |
| /api/component/artifacts/:id | GET | Get artifact details |
| /api/component/artifacts/:id | PUT | Update an artifact |
| /api/component/artifacts/:id | DELETE | Delete an artifact |
| /api/component/component-realizations | GET | List all component realizations |
| /api/component/component-realizations | POST | Create a component realization |
| /api/component/component-realizations/:id | GET | Get component realization details |
| /api/component/component-realizations/:id | PUT | Update a component realization |
| /api/component/component-realizations/:id | DELETE | Delete a component realization |
| /api/component/dependencies | GET | List all dependencies |
| /api/component/dependencies | POST | Create a dependency |
| /api/component/dependencies/:id | GET | Get dependency details |
| /api/component/dependencies/:id | PUT | Update a dependency |
| /api/component/dependencies/:id | DELETE | Delete a dependency |
| /api/component/generalizations | GET | List all generalizations |
| /api/component/generalizations | POST | Create a generalization |
| /api/component/generalizations/:id | GET | Get generalization details |
| /api/component/generalizations/:id | PUT | Update a generalization |
| /api/component/generalizations/:id | DELETE | Delete a generalization |
| /api/component/interface-realizations | GET | List all interface realizations |
| /api/component/interface-realizations | POST | Create an interface realization |
| /api/component/interface-realizations/:id | GET | Get interface realization details |
| /api/component/interface-realizations/:id | PUT | Update an interface realization |
| /api/component/interface-realizations/:id | DELETE | Delete an interface realization |
Deployment Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/deployment/diagrams | GET | List all deployment diagrams |
| /api/deployment/diagrams | POST | Create a deployment diagram |
| /api/deployment/diagrams/:id | GET | Get diagram details |
| /api/deployment/diagrams/:id | PUT | Update a diagram |
| /api/deployment/diagrams/:id | DELETE | Delete a diagram |
| /api/deployment/nodes | GET | List all nodes |
| /api/deployment/nodes | POST | Create a node |
| /api/deployment/nodes/:id | GET | Get node details |
| /api/deployment/nodes/:id | PUT | Update a node |
| /api/deployment/nodes/:id | DELETE | Delete a node |
| /api/deployment/node-instances | GET | List all node instances |
| /api/deployment/node-instances | POST | Create a node instance |
| /api/deployment/node-instances/:id | GET | Get node instance details |
| /api/deployment/node-instances/:id | PUT | Update a node instance |
| /api/deployment/node-instances/:id | DELETE | Delete a node instance |
| /api/deployment/artifact-instances | GET | List all artifact instances |
| /api/deployment/artifact-instances | POST | Create an artifact instance |
| /api/deployment/artifact-instances/:id | GET | Get artifact instance details |
| /api/deployment/artifact-instances/:id | PUT | Update an artifact instance |
| /api/deployment/artifact-instances/:id | DELETE | Delete an artifact instance |
| /api/deployment/component-instances | GET | List all component instances |
| /api/deployment/component-instances | POST | Create a component instance |
| /api/deployment/component-instances/:id | GET | Get component instance details |
| /api/deployment/component-instances/:id | PUT | Update a component instance |
| /api/deployment/component-instances/:id | DELETE | Delete a component instance |
| /api/deployment/artifacts | GET | List all artifacts |
| /api/deployment/artifacts | POST | Create an artifact |
| /api/deployment/artifacts/:id | GET | Get artifact details |
| /api/deployment/artifacts/:id | PUT | Update an artifact |
| /api/deployment/artifacts/:id | DELETE | Delete an artifact |
| /api/deployment/deployments | GET | List all deployments |
| /api/deployment/deployments | POST | Create a deployment |
| /api/deployment/deployments/:id | GET | Get deployment details |
| /api/deployment/deployments/:id | PUT | Update a deployment |
| /api/deployment/deployments/:id | DELETE | Delete a deployment |
| /api/deployment/communication-paths | GET | List all communication paths |
| /api/deployment/communication-paths | POST | Create a communication path |
| /api/deployment/communication-paths/:id | GET | Get communication path details |
| /api/deployment/communication-paths/:id | PUT | Update a communication path |
| /api/deployment/communication-paths/:id | DELETE | Delete a communication path |
| /api/deployment/dependencies | GET | List all dependencies |
| /api/deployment/dependencies | POST | Create a dependency |
| /api/deployment/dependencies/:id | GET | Get dependency details |
| /api/deployment/dependencies/:id | PUT | Update a dependency |
| /api/deployment/dependencies/:id | DELETE | Delete a dependency |
Object Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/object/diagrams | GET | List all object diagrams |
| /api/object/diagrams | POST | Create a object diagram |
| /api/object/diagrams/:id | GET | Get diagram details |
| /api/object/diagrams/:id | PUT | Update a diagram |
| /api/object/diagrams/:id | DELETE | Delete a diagram |
| /api/object/objects | GET | List all objects |
| /api/object/objects | POST | Create an object |
| /api/object/objects/:id | GET | Get object details |
| /api/object/objects/:id | PUT | Update an object |
| /api/object/objects/:id | DELETE | Delete an object |
| /api/object/objects/:id/slots | GET | List slots |
| /api/object/objects/:id/slots | POST | Create a slot |
| /api/object/links | GET | List all links |
| /api/object/links | POST | Create a link |
| /api/object/links/:id | GET | Get link details |
| /api/object/links/:id | PUT | Update a link |
| /api/object/links/:id | DELETE | Delete a link |
Communication Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/communication/diagrams | GET | List all communication diagrams |
| /api/communication/diagrams | POST | Create a communication diagram |
| /api/communication/diagrams/:id | GET | Get diagram details |
| /api/communication/diagrams/:id | PUT | Update a diagram |
| /api/communication/diagrams/:id | DELETE | Delete a diagram |
| /api/communication/lifelines | GET | List all lifelines |
| /api/communication/lifelines | POST | Create a lifeline |
| /api/communication/lifelines/:id | GET | Get lifeline details |
| /api/communication/lifelines/:id | PUT | Update a lifeline |
| /api/communication/lifelines/:id | DELETE | Delete a lifeline |
| /api/communication/connectors | GET | List all connectors |
| /api/communication/connectors | POST | Create a connector |
| /api/communication/connectors/:id | GET | Get connector details |
| /api/communication/connectors/:id | PUT | Update a connector |
| /api/communication/connectors/:id | DELETE | Delete a connector |
Composite Structure Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/composite/diagrams | GET | List all composite structure diagrams |
| /api/composite/diagrams | POST | Create a composite structure diagram |
| /api/composite/diagrams/:id | GET | Get diagram details |
| /api/composite/diagrams/:id | PUT | Update a diagram |
| /api/composite/diagrams/:id | DELETE | Delete a diagram |
| /api/composite/ports | GET | List all ports |
| /api/composite/ports | POST | Create a port |
| /api/composite/ports/:id | GET | Get port details |
| /api/composite/ports/:id | PUT | Update a port |
| /api/composite/ports/:id | DELETE | Delete a port |
| /api/composite/parts | GET | List all parts |
| /api/composite/parts | POST | Create a part |
| /api/composite/parts/:id | GET | Get part details |
| /api/composite/parts/:id | PUT | Update a part |
| /api/composite/parts/:id | DELETE | Delete a part |
| /api/composite/collaborations | GET | List all collaborations |
| /api/composite/collaborations | POST | Create a collaboration |
| /api/composite/collaborations/:id | GET | Get collaboration details |
| /api/composite/collaborations/:id | PUT | Update a collaboration |
| /api/composite/collaborations/:id | DELETE | Delete a collaboration |
| /api/composite/collaboration-uses | GET | List all collaboration uses |
| /api/composite/collaboration-uses | POST | Create a collaboration use |
| /api/composite/collaboration-uses/:id | GET | Get collaboration use details |
| /api/composite/collaboration-uses/:id | PUT | Update a collaboration use |
| /api/composite/collaboration-uses/:id | DELETE | Delete a collaboration use |
| /api/composite/role-bindings | GET | List all role bindings |
| /api/composite/role-bindings | POST | Create a role binding |
| /api/composite/role-bindings/:id | GET | Get role binding details |
| /api/composite/role-bindings/:id | PUT | Update a role binding |
| /api/composite/role-bindings/:id | DELETE | Delete a role binding |
| /api/composite/dependencies | GET | List all dependencies |
| /api/composite/dependencies | POST | Create a dependency |
| /api/composite/dependencies/:id | GET | Get dependency details |
| /api/composite/dependencies/:id | PUT | Update a dependency |
| /api/composite/dependencies/:id | DELETE | Delete a dependency |
| /api/composite/realizations | GET | List all realizations |
| /api/composite/realizations | POST | Create a realization |
| /api/composite/realizations/:id | GET | Get realization details |
| /api/composite/realizations/:id | PUT | Update a realization |
| /api/composite/realizations/:id | DELETE | Delete a realization |
Information Flow Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/infoflow/diagrams | GET | List all information flow diagrams |
| /api/infoflow/diagrams | POST | Create a information flow diagram |
| /api/infoflow/diagrams/:id | GET | Get diagram details |
| /api/infoflow/diagrams/:id | PUT | Update a diagram |
| /api/infoflow/diagrams/:id | DELETE | Delete a diagram |
| /api/infoflow/info-items | GET | List all info items |
| /api/infoflow/info-items | POST | Create an information item |
| /api/infoflow/info-items/:id | GET | Get information item details |
| /api/infoflow/info-items/:id | PUT | Update an information item |
| /api/infoflow/info-items/:id | DELETE | Delete an information item |
| /api/infoflow/information-flows | GET | List all information flows |
| /api/infoflow/information-flows | POST | Create an information flow |
| /api/infoflow/information-flows/:id | GET | Get information flow details |
| /api/infoflow/information-flows/:id | PUT | Update an information flow |
| /api/infoflow/information-flows/:id | DELETE | Delete an information flow |
Profile Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/profile/diagrams | GET | List all profile diagrams |
| /api/profile/diagrams | POST | Create a profile diagram |
| /api/profile/diagrams/:id | GET | Get diagram details |
| /api/profile/diagrams/:id | PUT | Update a diagram |
| /api/profile/diagrams/:id | DELETE | Delete a diagram |
| /api/profile/profiles | GET | List all profiles |
| /api/profile/profiles | POST | Create a profile |
| /api/profile/profiles/:id | GET | Get profile details |
| /api/profile/profiles/:id | PUT | Update a profile |
| /api/profile/profiles/:id | DELETE | Delete a profile |
| /api/profile/stereotypes | GET | List all stereotypes |
| /api/profile/stereotypes | POST | Create a stereotype |
| /api/profile/stereotypes/:id | GET | Get stereotype details |
| /api/profile/stereotypes/:id | PUT | Update a stereotype |
| /api/profile/stereotypes/:id | DELETE | Delete a stereotype |
| /api/profile/stereotypes/:id/attributes | GET | List attributes of a stereotype |
| /api/profile/stereotypes/:id/attributes | POST | Create an attribute on a stereotype |
| /api/profile/stereotypes/:id/operations | GET | List operations of a stereotype |
| /api/profile/stereotypes/:id/operations | POST | Create an operation on a stereotype |
| /api/profile/metaclasses | GET | List all metaclasses |
| /api/profile/metaclasses | POST | Create a metaclass |
| /api/profile/metaclasses/:id | GET | Get metaclass details |
| /api/profile/metaclasses/:id | PUT | Update a metaclass |
| /api/profile/metaclasses/:id | DELETE | Delete a metaclass |
| /api/profile/extensions | GET | List all extensions |
| /api/profile/extensions | POST | Create an extension |
| /api/profile/extensions/:id | GET | Get extension details |
| /api/profile/extensions/:id | PUT | Update an extension |
| /api/profile/extensions/:id | DELETE | Delete an extension |
Timing Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/timing/diagrams | GET | List all timing diagrams |
| /api/timing/diagrams | POST | Create a timing diagram |
| /api/timing/diagrams/:id | GET | Get diagram details |
| /api/timing/diagrams/:id | PUT | Update a diagram |
| /api/timing/diagrams/:id | DELETE | Delete a diagram |
| /api/timing/lifelines | GET | List all lifelines |
| /api/timing/lifelines | POST | Create a lifeline (requires tailViewId) |
| /api/timing/lifelines/:id | GET | Get lifeline details |
| /api/timing/lifelines/:id | PUT | Update a lifeline |
| /api/timing/lifelines/:id | DELETE | Delete a lifeline |
| /api/timing/timing-states | GET | List all timing states |
| /api/timing/timing-states | POST | Create a timing state |
| /api/timing/timing-states/:id | GET | Get timing state details |
| /api/timing/timing-states/:id | PUT | Update a timing state |
| /api/timing/timing-states/:id | DELETE | Delete a timing state |
| /api/timing/time-segments | GET | List all time segments |
| /api/timing/time-segments | POST | Create a time segment |
| /api/timing/time-segments/:id | GET | Get time segment details |
| /api/timing/time-segments/:id | PUT | Update a time segment |
| /api/timing/time-segments/:id | DELETE | Delete a time segment |
Interaction Overview Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/overview/diagrams | GET | List all interaction overview diagrams |
| /api/overview/diagrams | POST | Create a interaction overview diagram |
| /api/overview/diagrams/:id | GET | Get diagram details |
| /api/overview/diagrams/:id | PUT | Update a diagram |
| /api/overview/diagrams/:id | DELETE | Delete a diagram |
| /api/overview/interaction-uses | GET | List all interaction uses |
| /api/overview/interaction-uses | POST | Create an interaction use |
| /api/overview/interaction-uses/:id | GET | Get interaction use details |
| /api/overview/interaction-uses/:id | PUT | Update an interaction use |
| /api/overview/interaction-uses/:id | DELETE | Delete an interaction use |
| /api/overview/interactions | GET | List all interactions |
| /api/overview/interactions | POST | Create an interaction |
| /api/overview/interactions/:id | GET | Get interaction details |
| /api/overview/interactions/:id | PUT | Update an interaction |
| /api/overview/interactions/:id | DELETE | Delete an interaction |
| /api/overview/control-nodes | GET | List all control nodes |
| /api/overview/control-nodes | POST | Create a control node |
| /api/overview/control-nodes/:id | GET | Get control node details |
| /api/overview/control-nodes/:id | PUT | Update a control node |
| /api/overview/control-nodes/:id | DELETE | Delete a control node |
| /api/overview/control-flows | GET | List all control flows |
| /api/overview/control-flows | POST | Create a control flow |
| /api/overview/control-flows/:id | GET | Get control flow details |
| /api/overview/control-flows/:id | PUT | Update a control flow |
| /api/overview/control-flows/:id | DELETE | Delete a control flow |
Flowchart Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/flowchart/diagrams | GET | List all flowchart diagrams |
| /api/flowchart/diagrams | POST | Create a flowchart diagram |
| /api/flowchart/diagrams/:id | GET | Get diagram details |
| /api/flowchart/diagrams/:id | PUT | Update a diagram |
| /api/flowchart/diagrams/:id | DELETE | Delete a diagram |
| /api/flowchart/nodes | GET | List all nodes |
| /api/flowchart/nodes | POST | Create a node |
| /api/flowchart/nodes/:id | GET | Get node details |
| /api/flowchart/nodes/:id | PUT | Update a node |
| /api/flowchart/nodes/:id | DELETE | Delete a node |
| /api/flowchart/flows | GET | List all flows |
| /api/flowchart/flows | POST | Create a flow |
| /api/flowchart/flows/:id | GET | Get flow details |
| /api/flowchart/flows/:id | PUT | Update a flow |
| /api/flowchart/flows/:id | DELETE | Delete a flow |
DFD Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/dfd/diagrams | GET | List all dfd diagrams |
| /api/dfd/diagrams | POST | Create a dfd diagram |
| /api/dfd/diagrams/:id | GET | Get diagram details |
| /api/dfd/diagrams/:id | PUT | Update a diagram |
| /api/dfd/diagrams/:id | DELETE | Delete a diagram |
| /api/dfd/external-entities | GET | List all external entities |
| /api/dfd/external-entities | POST | Create an external entity |
| /api/dfd/external-entities/:id | GET | Get external entity details |
| /api/dfd/external-entities/:id | PUT | Update an external entity |
| /api/dfd/external-entities/:id | DELETE | Delete an external entity |
| /api/dfd/processes | GET | List all processes |
| /api/dfd/processes | POST | Create a process |
| /api/dfd/processes/:id | GET | Get process details |
| /api/dfd/processes/:id | PUT | Update a process |
| /api/dfd/processes/:id | DELETE | Delete a process |
| /api/dfd/data-stores | GET | List all data stores |
| /api/dfd/data-stores | POST | Create a data store |
| /api/dfd/data-stores/:id | GET | Get data store details |
| /api/dfd/data-stores/:id | PUT | Update a data store |
| /api/dfd/data-stores/:id | DELETE | Delete a data store |
| /api/dfd/data-flows | GET | List all data flows |
| /api/dfd/data-flows | POST | Create a data flow |
| /api/dfd/data-flows/:id | GET | Get data flow details |
| /api/dfd/data-flows/:id | PUT | Update a data flow |
| /api/dfd/data-flows/:id | DELETE | Delete a data flow |
BPMN Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/bpmn/diagrams | GET | List all bpmn diagrams |
| /api/bpmn/diagrams | POST | Create a bpmn diagram |
| /api/bpmn/diagrams/:id | GET | Get diagram details |
| /api/bpmn/diagrams/:id | PUT | Update a diagram |
| /api/bpmn/diagrams/:id | DELETE | Delete a diagram |
| /api/bpmn/participants | GET | List all participants |
| /api/bpmn/participants | POST | Create a participant |
| /api/bpmn/participants/:id | GET | Get participant details |
| /api/bpmn/participants/:id | PUT | Update a participant |
| /api/bpmn/participants/:id | DELETE | Delete a participant |
| /api/bpmn/participants/:id/lanes | GET | List lanes |
| /api/bpmn/participants/:id/lanes | POST | Create a lane |
| /api/bpmn/tasks | GET | List all tasks |
| /api/bpmn/tasks | POST | Create a task |
| /api/bpmn/tasks/:id | GET | Get task details |
| /api/bpmn/tasks/:id | PUT | Update a task |
| /api/bpmn/tasks/:id | DELETE | Delete a task |
| /api/bpmn/sub-processes | GET | List all sub processes |
| /api/bpmn/sub-processes | POST | Create a sub-process |
| /api/bpmn/sub-processes/:id | GET | Get sub-process details |
| /api/bpmn/sub-processes/:id | PUT | Update a sub-process |
| /api/bpmn/sub-processes/:id | DELETE | Delete a sub-process |
| /api/bpmn/events | GET | List all events |
| /api/bpmn/events | POST | Create an event |
| /api/bpmn/events/:id | GET | Get event details |
| /api/bpmn/events/:id | PUT | Update an event |
| /api/bpmn/events/:id | DELETE | Delete an event |
| /api/bpmn/events/:id/event-definitions | GET | List event definitions |
| /api/bpmn/events/:id/event-definitions | POST | Create an event definition |
| /api/bpmn/gateways | GET | List all gateways |
| /api/bpmn/gateways | POST | Create a gateway |
| /api/bpmn/gateways/:id | GET | Get gateway details |
| /api/bpmn/gateways/:id | PUT | Update a gateway |
| /api/bpmn/gateways/:id | DELETE | Delete a gateway |
| /api/bpmn/data-objects | GET | List all data objects |
| /api/bpmn/data-objects | POST | Create a data object |
| /api/bpmn/data-objects/:id | GET | Get data object details |
| /api/bpmn/data-objects/:id | PUT | Update a data object |
| /api/bpmn/data-objects/:id | DELETE | Delete a data object |
| /api/bpmn/conversations | GET | List all conversations |
| /api/bpmn/conversations | POST | Create a conversation |
| /api/bpmn/conversations/:id | GET | Get conversation details |
| /api/bpmn/conversations/:id | PUT | Update a conversation |
| /api/bpmn/conversations/:id | DELETE | Delete a conversation |
| /api/bpmn/choreographies | GET | List all choreographies |
| /api/bpmn/choreographies | POST | Create a choreography |
| /api/bpmn/choreographies/:id | GET | Get choreography details |
| /api/bpmn/choreographies/:id | PUT | Update a choreography |
| /api/bpmn/choreographies/:id | DELETE | Delete a choreography |
| /api/bpmn/annotations | GET | List all annotations |
| /api/bpmn/annotations | POST | Create an annotation |
| /api/bpmn/annotations/:id | GET | Get annotation details |
| /api/bpmn/annotations/:id | PUT | Update an annotation |
| /api/bpmn/annotations/:id | DELETE | Delete an annotation |
| /api/bpmn/sequence-flows | GET | List all sequence flows |
| /api/bpmn/sequence-flows | POST | Create a sequence flow |
| /api/bpmn/sequence-flows/:id | GET | Get sequence flow details |
| /api/bpmn/sequence-flows/:id | PUT | Update a sequence flow |
| /api/bpmn/sequence-flows/:id | DELETE | Delete a sequence flow |
| /api/bpmn/message-flows | GET | List all message flows |
| /api/bpmn/message-flows | POST | Create a message flow |
| /api/bpmn/message-flows/:id | GET | Get message flow details |
| /api/bpmn/message-flows/:id | PUT | Update a message flow |
| /api/bpmn/message-flows/:id | DELETE | Delete a message flow |
| /api/bpmn/associations | GET | List all associations |
| /api/bpmn/associations | POST | Create an association |
| /api/bpmn/associations/:id | GET | Get association details |
| /api/bpmn/associations/:id | PUT | Update an association |
| /api/bpmn/associations/:id | DELETE | Delete an association |
| /api/bpmn/data-associations | GET | List all data associations |
| /api/bpmn/data-associations | POST | Create a data association |
| /api/bpmn/data-associations/:id | GET | Get data association details |
| /api/bpmn/data-associations/:id | PUT | Update a data association |
| /api/bpmn/data-associations/:id | DELETE | Delete a data association |
| /api/bpmn/message-links | GET | List all message links |
| /api/bpmn/message-links | POST | Create a message link |
| /api/bpmn/message-links/:id | GET | Get message link details |
| /api/bpmn/message-links/:id | PUT | Update a message link |
| /api/bpmn/message-links/:id | DELETE | Delete a message link |
| /api/bpmn/conversation-links | GET | List all conversation links |
| /api/bpmn/conversation-links | POST | Create a conversation link |
| /api/bpmn/conversation-links/:id | GET | Get conversation link details |
| /api/bpmn/conversation-links/:id | PUT | Update a conversation link |
| /api/bpmn/conversation-links/:id | DELETE | Delete a conversation link |
C4 Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/c4/diagrams | GET | List all c4 diagrams |
| /api/c4/diagrams | POST | Create a c4 diagram |
| /api/c4/diagrams/:id | GET | Get diagram details |
| /api/c4/diagrams/:id | PUT | Update a diagram |
| /api/c4/diagrams/:id | DELETE | Delete a diagram |
| /api/c4/elements | GET | List all elements |
| /api/c4/elements | POST | Create an element |
| /api/c4/elements/:id | GET | Get element details |
| /api/c4/elements/:id | PUT | Update an element |
| /api/c4/elements/:id | DELETE | Delete an element |
| /api/c4/relationships | GET | List all relationships |
| /api/c4/relationships | POST | Create a relationship |
| /api/c4/relationships/:id | GET | Get relationship details |
| /api/c4/relationships/:id | PUT | Update a relationship |
| /api/c4/relationships/:id | DELETE | Delete a relationship |
SysML Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/sysml/diagrams | GET | List all sysml diagrams |
| /api/sysml/diagrams | POST | Create a sysml diagram |
| /api/sysml/diagrams/:id | GET | Get diagram details |
| /api/sysml/diagrams/:id | PUT | Update a diagram |
| /api/sysml/diagrams/:id | DELETE | Delete a diagram |
| /api/sysml/requirements | GET | List all requirements |
| /api/sysml/requirements | POST | Create a requirement |
| /api/sysml/requirements/:id | GET | Get requirement details |
| /api/sysml/requirements/:id | PUT | Update a requirement |
| /api/sysml/requirements/:id | DELETE | Delete a requirement |
| /api/sysml/blocks | GET | List all blocks |
| /api/sysml/blocks | POST | Create a block |
| /api/sysml/blocks/:id | GET | Get block details |
| /api/sysml/blocks/:id | PUT | Update a block |
| /api/sysml/blocks/:id | DELETE | Delete a block |
| /api/sysml/blocks/:id/properties | GET | List properties |
| /api/sysml/blocks/:id/properties | POST | Create a property |
| /api/sysml/blocks/:id/operations | GET | List operations |
| /api/sysml/blocks/:id/operations | POST | Create an operation |
| /api/sysml/blocks/:id/flow-properties | GET | List flow properties |
| /api/sysml/blocks/:id/flow-properties | POST | Create a flow property |
| /api/sysml/stakeholders | GET | List all stakeholders |
| /api/sysml/stakeholders | POST | Create a stakeholder |
| /api/sysml/stakeholders/:id | GET | Get stakeholder details |
| /api/sysml/stakeholders/:id | PUT | Update a stakeholder |
| /api/sysml/stakeholders/:id | DELETE | Delete a stakeholder |
| /api/sysml/viewpoints | GET | List all viewpoints |
| /api/sysml/viewpoints | POST | Create a viewpoint |
| /api/sysml/viewpoints/:id | GET | Get viewpoint details |
| /api/sysml/viewpoints/:id | PUT | Update a viewpoint |
| /api/sysml/viewpoints/:id | DELETE | Delete a viewpoint |
| /api/sysml/views | GET | List all views |
| /api/sysml/views | POST | Create a view |
| /api/sysml/views/:id | GET | Get view details |
| /api/sysml/views/:id | PUT | Update a view |
| /api/sysml/views/:id | DELETE | Delete a view |
| /api/sysml/parts | GET | List all parts |
| /api/sysml/parts | POST | Create a part |
| /api/sysml/parts/:id | GET | Get part details |
| /api/sysml/parts/:id | PUT | Update a part |
| /api/sysml/parts/:id | DELETE | Delete a part |
| /api/sysml/conforms | GET | List all conforms |
| /api/sysml/conforms | POST | Create a conform |
| /api/sysml/conforms/:id | GET | Get conform details |
| /api/sysml/conforms/:id | PUT | Update a conform |
| /api/sysml/conforms/:id | DELETE | Delete a conform |
| /api/sysml/exposes | GET | List all exposes |
| /api/sysml/exposes | POST | Create an expose |
| /api/sysml/exposes/:id | GET | Get expose details |
| /api/sysml/exposes/:id | PUT | Update an expose |
| /api/sysml/exposes/:id | DELETE | Delete an expose |
| /api/sysml/copies | GET | List all copies |
| /api/sysml/copies | POST | Create a copy |
| /api/sysml/copies/:id | GET | Get copy details |
| /api/sysml/copies/:id | PUT | Update a copy |
| /api/sysml/copies/:id | DELETE | Delete a copy |
| /api/sysml/derive-reqts | GET | List all derive reqts |
| /api/sysml/derive-reqts | POST | Create a derive requirement |
| /api/sysml/derive-reqts/:id | GET | Get derive requirement details |
| /api/sysml/derive-reqts/:id | PUT | Update a derive requirement |
| /api/sysml/derive-reqts/:id | DELETE | Delete a derive requirement |
| /api/sysml/verifies | GET | List all verifies |
| /api/sysml/verifies | POST | Create a verify |
| /api/sysml/verifies/:id | GET | Get verify details |
| /api/sysml/verifies/:id | PUT | Update a verify |
| /api/sysml/verifies/:id | DELETE | Delete a verify |
| /api/sysml/satisfies | GET | List all satisfies |
| /api/sysml/satisfies | POST | Create a satisfy |
| /api/sysml/satisfies/:id | GET | Get satisfy details |
| /api/sysml/satisfies/:id | PUT | Update a satisfy |
| /api/sysml/satisfies/:id | DELETE | Delete a satisfy |
| /api/sysml/refines | GET | List all refines |
| /api/sysml/refines | POST | Create a refine |
| /api/sysml/refines/:id | GET | Get refine details |
| /api/sysml/refines/:id | PUT | Update a refine |
| /api/sysml/refines/:id | DELETE | Delete a refine |
| /api/sysml/connectors | GET | List all connectors |
| /api/sysml/connectors | POST | Create a connector |
| /api/sysml/connectors/:id | GET | Get connector details |
| /api/sysml/connectors/:id | PUT | Update a connector |
| /api/sysml/connectors/:id | DELETE | Delete a connector |
Wireframe Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/wireframe/diagrams | GET | List all wireframe diagrams |
| /api/wireframe/diagrams | POST | Create a wireframe diagram |
| /api/wireframe/diagrams/:id | GET | Get diagram details |
| /api/wireframe/diagrams/:id | PUT | Update a diagram |
| /api/wireframe/diagrams/:id | DELETE | Delete a diagram |
| /api/wireframe/frames | GET | List all frames |
| /api/wireframe/frames | POST | Create a frame |
| /api/wireframe/frames/:id | GET | Get frame details |
| /api/wireframe/frames/:id | PUT | Update a frame |
| /api/wireframe/frames/:id | DELETE | Delete a frame |
| /api/wireframe/widgets | GET | List all widgets |
| /api/wireframe/widgets | POST | Create a widget |
| /api/wireframe/widgets/:id | GET | Get widget details |
| /api/wireframe/widgets/:id | PUT | Update a widget |
| /api/wireframe/widgets/:id | DELETE | Delete a widget |
MindMap Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/mindmap/diagrams | GET | List all mindmap diagrams |
| /api/mindmap/diagrams | POST | Create a mindmap diagram |
| /api/mindmap/diagrams/:id | GET | Get diagram details |
| /api/mindmap/diagrams/:id | PUT | Update a diagram |
| /api/mindmap/diagrams/:id | DELETE | Delete a diagram |
| /api/mindmap/nodes | GET | List all nodes |
| /api/mindmap/nodes | POST | Create a node |
| /api/mindmap/nodes/:id | GET | Get node details |
| /api/mindmap/nodes/:id | PUT | Update a node |
| /api/mindmap/nodes/:id | DELETE | Delete a node |
| /api/mindmap/edges | GET | List all edges |
| /api/mindmap/edges | POST | Create an edge |
| /api/mindmap/edges/:id | GET | Get edge details |
| /api/mindmap/edges/:id | PUT | Update an edge |
| /api/mindmap/edges/:id | DELETE | Delete an edge |
AWS Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/aws/diagrams | GET | List all aws diagrams |
| /api/aws/diagrams | POST | Create a aws diagram |
| /api/aws/diagrams/:id | GET | Get diagram details |
| /api/aws/diagrams/:id | PUT | Update a diagram |
| /api/aws/diagrams/:id | DELETE | Delete a diagram |
| /api/aws/elements | GET | List all elements |
| /api/aws/elements | POST | Create an element |
| /api/aws/elements/:id | GET | Get element details |
| /api/aws/elements/:id | PUT | Update an element |
| /api/aws/elements/:id | DELETE | Delete an element |
| /api/aws/arrows | GET | List all arrows |
| /api/aws/arrows | POST | Create an arrow |
| /api/aws/arrows/:id | GET | Get arrow details |
| /api/aws/arrows/:id | PUT | Update an arrow |
| /api/aws/arrows/:id | DELETE | Delete an arrow |
Azure Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/azure/diagrams | GET | List all azure diagrams |
| /api/azure/diagrams | POST | Create a azure diagram |
| /api/azure/diagrams/:id | GET | Get diagram details |
| /api/azure/diagrams/:id | PUT | Update a diagram |
| /api/azure/diagrams/:id | DELETE | Delete a diagram |
| /api/azure/elements | GET | List all elements |
| /api/azure/elements | POST | Create an element |
| /api/azure/elements/:id | GET | Get element details |
| /api/azure/elements/:id | PUT | Update an element |
| /api/azure/elements/:id | DELETE | Delete an element |
| /api/azure/connectors | GET | List all connectors |
| /api/azure/connectors | POST | Create a connector |
| /api/azure/connectors/:id | GET | Get connector details |
| /api/azure/connectors/:id | PUT | Update a connector |
| /api/azure/connectors/:id | DELETE | Delete a connector |
GCP Diagram
| Endpoint | Method | Description |
|---|---|---|
| /api/gcp/diagrams | GET | List all gcp diagrams |
| /api/gcp/diagrams | POST | Create a gcp diagram |
| /api/gcp/diagrams/:id | GET | Get diagram details |
| /api/gcp/diagrams/:id | PUT | Update a diagram |
| /api/gcp/diagrams/:id | DELETE | Delete a diagram |
| /api/gcp/elements | GET | List all elements |
| /api/gcp/elements | POST | Create an element |
| /api/gcp/elements/:id | GET | Get element details |
| /api/gcp/elements/:id | PUT | Update an element |
| /api/gcp/elements/:id | DELETE | Delete an element |
| /api/gcp/paths | GET | List all paths |
| /api/gcp/paths | POST | Create a path |
| /api/gcp/paths/:id | GET | Get path details |
| /api/gcp/paths/:id | PUT | Update a path |
| /api/gcp/paths/:id | DELETE | Delete a path |
General
Status
GET /api/status
GET / returns the same response.Request: None
Response example:
{
"success": true,
"message": "Server is running",
"request": { "method": "GET", "path": "/api/status" },
"data": {
"status": "running",
"version": "1.0.0",
"allowedColumnTypes": ["CHAR", "VARCHAR", "TEXT", "..."],
"allowedTagKinds": { "0": "string", "1": "boolean", "2": "number", "3": "reference", "4": "hidden" },
"endpoints": [
"GET /api/status",
"GET /api/erd/diagrams",
"GET /api/erd/data-models",
"..."
]
}
}
Elements
GET /api/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response: An object in the format corresponding to the element's type:
| Type | Serialization format |
|---|---|
| ERDEntity | Entity object (including columns and tags) |
| ERDColumn | Column object |
| ERDDiagram | Diagram object |
| ERDRelationship | Relationship object |
| Tag | Tag object |
| Other | Basic object (_id, _type, name, documentation) |
Errors:
- 404: Element with the specified ID not found
Tags
GET /api/elements/:id/tags
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response example:
{
"success": true,
"message": "Retrieved 1 tag(s) from \"users\"",
"request": { "method": "GET", "path": "/api/elements/AAAAAAGVyyyy/tags" },
"data": [
{
"_id": "AAAAAAGVtttt",
"_type": "Tag",
"name": "schema",
"kind": 0,
"value": "public",
"_parentId": "AAAAAAGVyyyy"
}
]
}
Errors:
- 404: Element with the specified ID not found
POST /api/elements/:id/tags
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Request body:
| Field | Type | Required | Description | ||
|---|---|---|---|---|---|
| name | string | No | Tag name (default: "new_tag") |
||
| kind | number | No | Tag kind. 0=string, 1=boolean, 2=number, 3=reference, 4=hidden |
||
| value | string\ | number\ | boolean | No | Tag value |
Request example:
{
"name": "schema",
"kind": 0,
"value": "public"
}
Response: The created tag object. message includes creation details.
Errors:
- 400: Unknown fields, type mismatch, or empty name
- 400:
kindis not an allowed value (error message lists allowed values) - 400:
valueis not a string, number, or boolean - 404: Element with the specified ID not found
Tag object fields:
| Field | Type | Description | ||
|---|---|---|---|---|
| _id | string | Unique identifier of the tag | ||
| _type | string | Always "Tag" |
||
| name | string | Tag name | ||
| kind | number | Tag kind (0=string, 1=boolean, 2=number, 3=reference, 4=hidden) | ||
| value | string\ | number\ | boolean | Tag value |
| _parentId | string | Parent element ID |
GET /api/tags/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Tag ID |
Response: Tag object (same format as POST /api/elements/:id/tags response)
Errors:
- 404: Tag with the specified ID not found
PUT /api/tags/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Tag ID |
Request body:
| Field | Type | Required | Description | ||
|---|---|---|---|---|---|
| name | string | No | Tag name | ||
| kind | number | No | Tag kind | ||
| value | string\ | number\ | boolean | No | Tag value |
Request example:
{
"value": "private"
}
Response: The updated tag object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
kindis not an allowed value (error message lists allowed values) - 400:
valueis not a string, number, or boolean - 404: Tag with the specified ID not found
DELETE /api/tags/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Tag ID |
Response example:
{
"success": true,
"message": "Deleted tag \"schema\"",
"request": { "method": "DELETE", "path": "/api/tags/AAAAAAGVtttt" },
"data": { "deleted": "AAAAAAGVtttt", "name": "schema" }
}
Errors:
- 404: Tag with the specified ID not found
Project
POST /api/project/save
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| path | string | Yes | Absolute path to save the project (e.g., "/Users/xxx/project.mdj"). Extension must be .mdj |
Request example:
{
"path": "/Users/xxx/my-project.mdj"
}
Response example:
{
"success": true,
"message": "Project saved to \"/Users/xxx/my-project.mdj\"",
"request": { "method": "POST", "path": "/api/project/save", "body": { "path": "/Users/xxx/my-project.mdj" } },
"data": { "path": "/Users/xxx/my-project.mdj" }
}
Errors:
- 400:
pathis missing, empty, or not a string - 400:
pathis not an absolute path (relative paths are not allowed) - 400:
pathextension is not.mdj - 400: Unknown fields present
- 400: Save operation failed (filesystem error, etc.)
POST /api/project/open
.mdj file from the specified absolute path. No dialog is displayed.Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| path | string | Yes | Absolute path to the file (e.g., "/Users/xxx/project.mdj"). Extension must be .mdj |
Request example:
{
"path": "/Users/xxx/my-project.mdj"
}
Response example:
{
"success": true,
"message": "Project opened from \"/Users/xxx/my-project.mdj\"",
"request": { "method": "POST", "path": "/api/project/open", "body": { "path": "/Users/xxx/my-project.mdj" } },
"data": { "path": "/Users/xxx/my-project.mdj", "projectName": "MyProject" }
}
Response fields:
| Field | Type | Description |
|---|---|---|
| path | string | Absolute path of the opened file |
| projectName | string | Project name |
Errors:
- 400:
pathis missing, empty, or not a string - 400:
pathis not an absolute path (relative paths are not allowed) - 400:
pathextension is not.mdj - 400: Unknown fields present
- 400: Open operation failed (file does not exist, etc.)
Diagram Views
GET /api/diagrams/:id/views
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 5 view(s) from diagram \"MyDiagram\"",
"request": { "method": "GET", "path": "/api/diagrams/AAAAAAGVxxxx/views" },
"data": [
{
"_id": "AAAAAAGVvvvv",
"_type": "SysMLBlockView",
"modelId": "AAAAAAGVmmmm",
"left": 100,
"top": 100,
"width": 250,
"height": 150
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | View ID (use for PUT /api/views/:id/style) |
| _type | string | View type (e.g., SysMLBlockView, UMLClassView, ERDEntityView) |
| modelId | string | ID of the model element this view represents |
| left | number | Left position in pixels |
| top | number | Top position in pixels |
| width | number | Width in pixels |
| height | number | Height in pixels |
Errors:
- 404: Diagram not found
PUT /api/views/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID (from GET /api/diagrams/:id/views) |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| left | number | No | Left position |
| top | number | No | Top position |
| width | number | No | Width |
| height | number | No | Height |
Response: The updated view object.
Errors:
- 400: Empty body, unknown fields, or type mismatch
- 404: View not found
PUT /api/views/:id/style
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID (from GET /api/diagrams/:id/views) |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| fillColor | string | No | Fill/background color (e.g., "#FFFF00", "#C8E6C9") |
| lineColor | string | No | Border/line color (e.g., "#000000") |
| fontColor | string | No | Text color (e.g., "#333333") |
| fontFace | string | No | Font family name (e.g., "Arial", "Courier New") |
| fontSize | number | No | Font size in points (e.g., 13) |
| fontStyle | number | No | Font style: 0=normal, 1=bold, 2=italic, 3=bold+italic |
| lineStyle | number | No | Line style |
| showShadow | boolean | No | Show drop shadow |
| autoResize | boolean | No | Auto-resize the view to fit its content |
| stereotypeDisplay | string | No | Stereotype display mode (e.g., "label", "icon", "decoration", "none") |
| suppressAttributes | boolean | No | Hide the attributes/properties compartment. Default: false |
| suppressOperations | boolean | No | Hide the operations compartment. Default: true for SysML blocks; false for UML classes. Set to false to show operations |
| suppressReceptions | boolean | No | Hide the receptions compartment. Default: false |
Request example:
{
"fillColor": "#C8E6C9",
"fontStyle": 1,
"showShadow": true,
"suppressOperations": false,
"autoResize": true
}
Response example:
{
"success": true,
"message": "Updated style (fields: fillColor, fontStyle, showShadow, suppressOperations, autoResize)",
"request": {
"method": "PUT",
"path": "/api/views/AAAAAAGVvvvv/style",
"body": { "fillColor": "#C8E6C9", "fontStyle": 1, "showShadow": true, "suppressOperations": false, "autoResize": true }
},
"data": {
"_id": "AAAAAAGVvvvv",
"_type": "SysMLBlockView",
"modelId": "AAAAAAGVmmmm",
"left": 100,
"top": 100,
"width": 250,
"height": 150
}
}
Errors:
- 400: Empty body
- 400: Unknown fields (allowed: fillColor, lineColor, fontColor, fontFace, fontSize, fontStyle, lineStyle, showShadow, autoResize, stereotypeDisplay, suppressAttributes, suppressOperations, suppressReceptions)
- 400: Field type mismatch
- 404: View not found
PUT /api/views/:id/reconnect
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID of a relation/edge view |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| tailViewId | string | No | New source view ID |
| headViewId | string | No | New target view ID |
Errors:
- 400: Empty body or unknown fields
- 404: View not found
View Alignment
POST /api/views/align
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| viewIds | array | Yes | Array of view IDs to align |
| action | string | Yes | Alignment action (see allowed values below) |
Allowed alignment actions: align-left, align-right, align-center, align-top, align-bottom, align-middle, space-equally-horizontally, space-equally-vertically, set-width-equally, set-height-equally, set-size-equally, send-to-back, bring-to-front
Errors:
- 400: Missing viewIds or action
- 400: Invalid action value
ER Diagram
Diagrams
GET /api/erd/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/erd/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "ERDDiagram",
"name": "ERDDiagram1",
"entityIds": ["AAAAAAGVyyyy", "AAAAAAGVzzzz"],
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the diagram |
| _type | string | Always "ERDDiagram" |
| name | string | Diagram name |
| documentation | string | Description (present only if set) |
| entityIds | string[] | IDs of entities displayed on this diagram |
| _parentId | string | Parent element (typically ERDDataModel) ID |
POST /api/erd/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | Yes | Parent element (ERDDataModel) ID |
| name | string | No | Diagram name (default: "ERDDiagram1") |
Request example:
{
"parentId": "AAAAAAGVwwww",
"name": "Main ER Diagram"
}
Response: The created diagram object (same format as GET /api/erd/diagrams data array element). message includes creation details.
Errors:
- 400:
parentIdis missing or the corresponding ERDDataModel not found - 400: Unknown fields present
- 400: Field type mismatch
- 400:
nameis empty
GET /api/erd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as GET /api/erd/diagrams data array element)
Errors:
- 404: ERDDiagram with the specified ID not found
PUT /api/erd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Main ER Diagram"
}
Response: The updated diagram object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: ERDDiagram with the specified ID not found
DELETE /api/erd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"ERDDiagram1\"",
"request": { "method": "DELETE", "path": "/api/erd/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ERDDiagram1" }
}
Errors:
- 404: ERDDiagram with the specified ID not found
Data Models
GET /api/erd/data-models
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 data model(s)",
"request": { "method": "GET", "path": "/api/erd/data-models" },
"data": [
{
"_id": "AAAAAAGVwwww",
"_type": "ERDDataModel",
"name": "Data Model1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the data model |
| _type | string | Always "ERDDataModel" |
| name | string | Data model name |
| documentation | string | Description (present only if set) |
POST /api/erd/data-models
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data model name (default: "ERDDataModel1") |
Request example:
{
"name": "MyDatabase"
}
Response example:
{
"success": true,
"message": "Created data model \"MyDatabase\"",
"request": { "method": "POST", "path": "/api/erd/data-models", "body": { "name": "MyDatabase" } },
"data": {
"_id": "AAAAAAGVwwww",
"_type": "ERDDataModel",
"name": "MyDatabase"
}
}
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400:
nameis empty - 400: No project is open
GET /api/erd/data-models/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data model ID |
Response: Data model object (same format as GET /api/erd/data-models data array element)
Errors:
- 404: ERDDataModel with the specified ID not found
PUT /api/erd/data-models/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data model ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data model name |
Request example:
{
"name": "MyDatabase_v2"
}
Response: The updated data model object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: ERDDataModel with the specified ID not found
DELETE /api/erd/data-models/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data model ID |
Response example:
{
"success": true,
"message": "Deleted data model \"MyDatabase\"",
"request": { "method": "DELETE", "path": "/api/erd/data-models/AAAAAAGVwwww" },
"data": { "deleted": "AAAAAAGVwwww", "name": "MyDatabase" }
}
Errors:
- 400: Contains entities, relationships, or diagrams (error message includes counts)
- 404: ERDDataModel with the specified ID not found
Entities
GET /api/erd/entities
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| dataModelId | string | No | Return only entities under the specified data model |
| diagramId | string | No | Return only entities displayed on the specified diagram |
Note: The entity's tags array excludes tags managed as sequences (sequence# prefix) and indexes (index# prefix). Use the dedicated endpoints (/api/erd/entities/:id/sequences, /api/erd/entities/:id/indexes) to retrieve these.
Request example: GET /api/erd/entities?dataModelId=AAAAAAGVwwww
Response example:
{
"success": true,
"message": "Retrieved 1 entity(ies)",
"request": { "method": "GET", "path": "/api/erd/entities", "query": { "dataModelId": "AAAAAAGVwwww" } },
"data": [
{
"_id": "AAAAAAGVyyyy",
"_type": "ERDEntity",
"name": "users",
"columns": [
{
"_id": "AAAAAAGVaaaa",
"_type": "ERDColumn",
"name": "id",
"type": "INTEGER",
"length": "",
"primaryKey": true,
"foreignKey": false,
"nullable": false,
"unique": false,
"_parentId": "AAAAAAGVyyyy",
"tags": []
}
],
"tags": [],
"_parentId": "AAAAAAGVwwww"
}
]
}
Errors:
- 400: Unknown query parameters present
- 404: ERDDataModel with the specified
dataModelIdnot found - 404: ERDDiagram with the specified
diagramIdnot found
POST /api/erd/entities
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | Yes | Parent element (ERDDataModel) ID |
| name | string | No | Entity name (default: "NewEntity") |
| documentation | string | No | Description |
| diagramId | string | No | If specified, a view (visual representation) is also created on the diagram |
| x1 | number | No | Top-left X coordinate of the view (default: 100) |
| y1 | number | No | Top-left Y coordinate of the view (default: 100) |
| x2 | number | No | Bottom-right X coordinate of the view (default: 300) |
| y2 | number | No | Bottom-right Y coordinate of the view (default: 200) |
Request example:
{
"parentId": "AAAAAAGVwwww",
"name": "orders",
"diagramId": "AAAAAAGVxxxx"
}
Response: The created entity object (same format as GET /api/erd/entities/:id). message includes creation details.
Errors:
- 400:
parentIdis missing or the corresponding ERDDataModel not found - 400: ERDDiagram with the specified
diagramIdnot found - 400: Unknown fields present
- 400: Field type mismatch
GET /api/erd/entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Response: Entity object (same format as GET /api/erd/entities data array element)
Errors:
- 404: ERDEntity with the specified ID not found
PUT /api/erd/entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Entity name |
| documentation | string | No | Description |
Request example:
{
"name": "customers"
}
Response: The updated entity object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: ERDEntity with the specified ID not found
DELETE /api/erd/entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Response example:
{
"success": true,
"message": "Deleted entity \"users\"",
"request": { "method": "DELETE", "path": "/api/erd/entities/AAAAAAGVyyyy" },
"data": { "deleted": "AAAAAAGVyyyy", "name": "users" }
}
Errors:
- 400: Columns in other entities reference this entity's columns via referenceTo (message includes referencing details)
- 400: Relationships reference this entity via end1/end2 (message includes referencing details)
- 404: ERDEntity with the specified ID not found
Columns
GET /api/erd/entities/:id/columns
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Response example:
{
"success": true,
"message": "Retrieved 1 column(s) from entity \"users\"",
"request": { "method": "GET", "path": "/api/erd/entities/AAAAAAGVyyyy/columns" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "ERDColumn",
"name": "id",
"type": "INTEGER",
"length": "",
"primaryKey": true,
"foreignKey": false,
"nullable": false,
"unique": false,
"_parentId": "AAAAAAGVyyyy",
"tags": []
}
]
}
Errors:
- 404: ERDEntity with the specified ID not found
POST /api/erd/entities/:id/columns
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Column name (default: "new_column") |
| type | string | No | Data type (e.g., "VARCHAR", "INTEGER", "BOOLEAN") |
| length | string | No | Length/precision (e.g., "255") |
| primaryKey | boolean | No | Whether this is a primary key (default: false) |
| foreignKey | boolean | No | Whether this is a foreign key (default: false) |
| nullable | boolean | No | Whether NULL is allowed (default: false) |
| unique | boolean | No | Whether a unique constraint applies (default: false) |
| documentation | string | No | Description |
| referenceToId | string | No | ID of the foreign key target column |
Request example:
{
"name": "email",
"type": "VARCHAR",
"length": "255",
"nullable": false,
"unique": true
}
Response: The created column object. message includes creation details.
Errors:
- 400:
typeis not an allowed value (error message lists allowed types) - 400: Unknown fields, type mismatch, or empty name
- 400: ERDColumn with the specified
referenceToIdnot found - 404: ERDEntity with the specified ID not found
GET /api/erd/columns/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Column ID |
Response: Column object (same format as POST /api/erd/entities/:id/columns response)
Column object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the column |
| _type | string | Always "ERDColumn" |
| name | string | Column name |
| type | string | Data type |
| length | string | Length/precision |
| primaryKey | boolean | Primary key flag |
| foreignKey | boolean | Foreign key flag |
| nullable | boolean | Nullable flag |
| unique | boolean | Unique constraint flag |
| documentation | string | Description (present only if set) |
| referenceTo | string | Foreign key target column ID (present only if set) |
| _parentId | string | Parent entity ID |
| tags | Tag[] | Tags attached to this column |
Errors:
- 404: ERDColumn with the specified ID not found
PUT /api/erd/columns/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Column ID |
Request body:
| Field | Type | Required | Description | |
|---|---|---|---|---|
| name | string | No | Column name | |
| type | string | No | Data type | |
| length | string | No | Length/precision | |
| primaryKey | boolean | No | Primary key flag | |
| foreignKey | boolean | No | Foreign key flag | |
| nullable | boolean | No | Nullable flag | |
| unique | boolean | No | Unique constraint flag | |
| documentation | string | No | Description | |
| referenceToId | string\ | null | No | Foreign key target column ID (null to remove reference) |
Request example:
{
"type": "BIGINT",
"nullable": true
}
Response: The updated column object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
typeis not an allowed value (error message lists allowed types) - 400:
referenceToIdis the column's own ID (self-reference) - 400: ERDColumn with the specified
referenceToIdnot found - 404: ERDColumn with the specified ID not found
DELETE /api/erd/columns/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Column ID |
Response example:
{
"success": true,
"message": "Deleted column \"email\"",
"request": { "method": "DELETE", "path": "/api/erd/columns/AAAAAAGVaaaa" },
"data": { "deleted": "AAAAAAGVaaaa", "name": "email" }
}
Errors:
- 400: Other columns reference this column via referenceTo (message includes referencing details)
- 404: ERDColumn with the specified ID not found
Sequences
GET /api/erd/entities/:id/sequences
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Response example:
{
"success": true,
"message": "Retrieved 1 sequence(s) from entity \"users\"",
"request": { "method": "GET", "path": "/api/erd/entities/AAAAAAGVyyyy/sequences" },
"data": [
{
"_id": "AAAAAAGVssss",
"_type": "Sequence",
"name": "users_id_seq",
"value": "CREATE SEQUENCE users_id_seq",
"_parentId": "AAAAAAGVyyyy"
}
]
}
Sequence object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier (internal tag ID) |
| _type | string | Always "Sequence" |
| name | string | Sequence name |
| value | string | Value in CREATE SEQUENCE <name> format |
| _parentId | string | Parent entity ID |
Errors:
- 404: ERDEntity with the specified ID not found
POST /api/erd/entities/:id/sequences
sequence#<name>, tag value: CREATE SEQUENCE <name>).Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Sequence name |
Request example:
{
"name": "users_id_seq"
}
Response: The created sequence object. message includes creation details.
Errors:
- 400:
nameis missing, empty, or not a string - 400: A sequence with the same name already exists on this entity
- 400: Unknown fields present
- 404: ERDEntity with the specified ID not found
GET /api/erd/sequences/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence ID |
Response: Sequence object (same format as GET /api/erd/entities/:id/sequences data array element)
Errors:
- 404: Sequence (tag with
sequence#prefix) with the specified ID not found
PUT /api/erd/sequences/:id
sequence#<name>) and value (CREATE SEQUENCE <name>) are updated accordingly.Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | New sequence name |
Request example:
{
"name": "orders_id_seq"
}
Response: The updated sequence object. message includes update details.
Errors:
- 400: Empty body
- 400:
nameis empty or not a string - 400: A sequence with the same name already exists on this entity
- 400: Unknown fields present
- 404: Sequence with the specified ID not found
DELETE /api/erd/sequences/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence ID |
Response example:
{
"success": true,
"message": "Deleted sequence \"users_id_seq\"",
"request": { "method": "DELETE", "path": "/api/erd/sequences/AAAAAAGVssss" },
"data": { "deleted": "AAAAAAGVssss", "name": "users_id_seq" }
}
Errors:
- 404: Sequence with the specified ID not found
Indexes
GET /api/erd/entities/:id/indexes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Response example:
{
"success": true,
"message": "Retrieved 1 index(es) from entity \"users\"",
"request": { "method": "GET", "path": "/api/erd/entities/AAAAAAGVyyyy/indexes" },
"data": [
{
"_id": "AAAAAAGViiii",
"_type": "Index",
"name": "idx_email",
"definition": "CREATE INDEX idx_email ON users (email)",
"_parentId": "AAAAAAGVyyyy"
}
]
}
Index object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier (internal tag ID) |
| _type | string | Always "Index" |
| name | string | Index name |
| definition | string | Full CREATE INDEX ... statement |
| _parentId | string | Parent entity ID |
Errors:
- 404: ERDEntity with the specified ID not found
POST /api/erd/entities/:id/indexes
index#<name>, tag value: full definition).Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Entity ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Index name |
| definition | string | Yes | Full CREATE INDEX statement (e.g., "CREATE INDEX idx_email ON users (email)") |
Request example:
{
"name": "idx_email",
"definition": "CREATE INDEX idx_email ON users (email)"
}
Response: The created index object. message includes creation details.
Errors:
- 400:
nameordefinitionis missing, empty, or not a string - 400: An index with the same name already exists on this entity
- 400: Unknown fields present
- 404: ERDEntity with the specified ID not found
GET /api/erd/indexes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Index ID |
Response: Index object (same format as GET /api/erd/entities/:id/indexes data array element)
Errors:
- 404: Index (tag with
index#prefix) with the specified ID not found
PUT /api/erd/indexes/:id
name or definition (or both) can be specified.Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Index ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | New index name |
| definition | string | No | New full CREATE INDEX statement |
Request example:
{
"name": "idx_users_email",
"definition": "CREATE INDEX idx_users_email ON users (email)"
}
Response: The updated index object. message includes the names of updated fields.
Errors:
- 400: Empty body
- 400:
nameordefinitionis empty or not a string - 400: An index with the same name already exists on this entity
- 400: Unknown fields present
- 404: Index with the specified ID not found
DELETE /api/erd/indexes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Index ID |
Response example:
{
"success": true,
"message": "Deleted index \"idx_email\"",
"request": { "method": "DELETE", "path": "/api/erd/indexes/AAAAAAGViiii" },
"data": { "deleted": "AAAAAAGViiii", "name": "idx_email" }
}
Errors:
- 404: Index with the specified ID not found
Relationships
GET /api/erd/relationships
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| dataModelId | string | No | Return only relationships under the specified data model |
Response example:
{
"success": true,
"message": "Retrieved 1 relationship(s)",
"request": { "method": "GET", "path": "/api/erd/relationships" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "ERDRelationship",
"name": "",
"identifying": true,
"end1": {
"name": "",
"cardinality": "1",
"reference": "AAAAAAGVyyyy"
},
"end2": {
"name": "",
"cardinality": "0..*",
"reference": "AAAAAAGVzzzz"
},
"_parentId": "AAAAAAGVwwww"
}
]
}
Relationship object fields:
| Field | Type | Description | |
|---|---|---|---|
| _id | string | Unique identifier of the relationship | |
| _type | string | Always "ERDRelationship" |
|
| name | string | Relationship name | |
| identifying | boolean | Whether this is an identifying relationship | |
| end1 | object | Endpoint 1 of the association | |
| end1.name | string | Endpoint name | |
| end1.cardinality | string | Cardinality (e.g., "1", "0..*", "1..*") |
|
| end1.reference | string\ | null | Referenced entity ID |
| end2 | object | Endpoint 2 of the association | |
| end2.name | string | Endpoint name | |
| end2.cardinality | string | Cardinality | |
| end2.reference | string\ | null | Referenced entity ID |
| _parentId | string | Parent element ID |
Errors:
- 400: Unknown query parameters present
- 404: ERDDataModel with the specified
dataModelIdnot found
POST /api/erd/relationships
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | Yes | Parent element (ERDDataModel) ID |
| end1 | object | Yes | Endpoint 1 of the association |
| end1.reference | string | Yes | Entity ID for endpoint 1 |
| end1.cardinality | string | No | Cardinality for endpoint 1 (default: "1") |
| end1.name | string | No | Name for endpoint 1 |
| end2 | object | Yes | Endpoint 2 of the association |
| end2.reference | string | Yes | Entity ID for endpoint 2 |
| end2.cardinality | string | No | Cardinality for endpoint 2 (default: "0..*") |
| end2.name | string | No | Name for endpoint 2 |
| name | string | No | Relationship name (default: "") |
| identifying | boolean | No | Identifying relationship flag |
| diagramId | string | Yes | Diagram ID. Must specify a diagram where the entity views are placed |
Note: The entities specified by end1.reference and end2.reference must have views (visual representations) on the diagram specified by diagramId. A 400 error is returned if the views do not exist.
Request example:
{
"parentId": "AAAAAAGcVcL1CP7Diws=",
"end1": { "reference": "AAAAAAGcVcP7jf7I68Q=", "cardinality": "1" },
"end2": { "reference": "AAAAAAGcVcSvoP7yKw0=", "cardinality": "0..*" },
"name": "user_orders",
"identifying": false,
"diagramId": "AAAAAAGcVcL1CP7E0iI="
}
Response: The created relationship object (same format as GET /api/erd/relationships/:id). message includes creation details.
Errors:
- 400:
parentIdordiagramIdis missing - 400: ERDDataModel with the specified
parentIdnot found - 400:
end1.referenceorend2.referenceis missing - 400: ERDEntity with the specified
end1.referenceorend2.referencenot found - 400: ERDDiagram with the specified
diagramIdnot found - 400: Entity view does not exist on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
GET /api/erd/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Response: Relationship object (same format as GET /api/erd/relationships data array element)
Errors:
- 404: ERDRelationship with the specified ID not found
PUT /api/erd/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Relationship name |
| identifying | boolean | No | Identifying relationship flag |
| end1 | object | No | Endpoint 1 update |
| end1.name | string | No | Endpoint name |
| end1.cardinality | string | No | Cardinality |
| end1.reference | string | No | Referenced entity ID |
| end2 | object | No | Endpoint 2 update |
| end2.name | string | No | Endpoint name |
| end2.cardinality | string | No | Cardinality |
| end2.reference | string | No | Referenced entity ID |
Request example:
{
"end2": {
"cardinality": "1..*"
}
}
Reference change example:
{
"end1": {
"reference": "AAAAAAGVneww"
}
}
Response: The updated relationship object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, or type mismatch
- 400:
end1orend2is an empty object ({}) - 400: Unknown sub-fields or type mismatch within
end1orend2 - 400: ERDEntity with the specified
end1.referenceorend2.referencenot found - 404: ERDRelationship with the specified ID not found
DELETE /api/erd/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Response example:
{
"success": true,
"message": "Deleted relationship \"AAAAAAGVrrrr\"",
"request": { "method": "DELETE", "path": "/api/erd/relationships/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "AAAAAAGVrrrr" }
}
Errors:
- 404: ERDRelationship with the specified ID not found
PostgreSQL DDL
POST /api/erd/postgresql/ddl
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| path | string | Yes | Absolute path for the output DDL file (e.g., "/Users/xxx/output.sql") |
| dataModelId | string | No | If specified, only entities under this data model are included. If omitted, all data models are included |
Request example:
{
"path": "/Users/xxx/database.sql"
}
Data model filter example:
{
"path": "/Users/xxx/database.sql",
"dataModelId": "AAAAAAGVwwww"
}
Response example:
{
"success": true,
"message": "DDL generated to \"/Users/xxx/database.sql\"",
"request": {
"method": "POST",
"path": "/api/erd/postgresql/ddl",
"body": { "path": "/Users/xxx/database.sql" }
},
"data": {
"path": "/Users/xxx/database.sql"
}
}
Response fields:
| Field | Type | Description |
|---|---|---|
| path | string | Absolute path of the generated DDL file |
Generated DDL contents:
The DDL file contains the following sections in order:
1. Header comment (generation timestamp in local time)
2. Schema creation (if not public; specified by the data model's schema tag)
3. DROP SEQUENCE IF EXISTS ... CASCADE statements (from sequence# tags)
4. DROP TABLE IF EXISTS ... CASCADE statements (in reverse dependency order)
5. CREATE SEQUENCE statements (from entity sequence# tags)
6. CREATE TABLE statements (with column definitions and PRIMARY KEY constraints)
7. ALTER TABLE ... ADD UNIQUE constraints
8. FK auto-indexes (anonymous CREATE INDEX ON statements for FK columns)
9. ALTER TABLE ... ADD CONSTRAINT FK ... FOREIGN KEY constraints (auto-generated from column referenceTo references)
10. CREATE INDEX statements (from entity index# tags)
11. COMMENT ON TABLE / COMMENT ON COLUMN statements (from documentation attributes)
PostgreSQL type mapping:
| StarUML type | PostgreSQL type | Notes |
|---|---|---|
| CHAR | char(n) | With length |
| VARCHAR | varchar(n) | With length |
| TEXT | text | |
| CLOB | text | |
| BOOLEAN | boolean | |
| SMALLINT | smallint / smallserial | smallserial when length=-1 |
| INTEGER, INT | integer / serial | serial when length=-1 |
| BIGINT | bigint / bigserial | bigserial when length=-1 |
| TINYINT | smallint | No tinyint in PostgreSQL |
| FLOAT | real | |
| DOUBLE | double precision | |
| REAL | real | |
| DECIMAL | numeric(n) | With length |
| NUMERIC | numeric(n) | With length |
| DATE | date | |
| TIME | time without time zone | |
| DATETIME | timestamp with time zone | |
| TIMESTAMP | timestamp without time zone | |
| BLOB | bytea | |
| BINARY | bytea | |
| VARBINARY | bytea | |
| UUID | uuid | |
| JSON | json | |
| JSONB | jsonb | |
| XML | xml | |
| SERIAL | serial | |
| BIGSERIAL | bigserial |
DDL customization via tags:
| Tag name | Target element | Description |
|---|---|---|
| schema | ERDDataModel | Schema name (default: public) |
| table | ERDEntity | Override table name (defaults to entity name) |
| column | ERDColumn | Override column name (defaults to column name) |
| default | ERDColumn | DEFAULT value (e.g., "0", "'active'", "now()") |
Errors:
- 400:
pathis missing, empty, or not a string - 400:
pathis not an absolute path - 400: ERDDataModel with the specified
dataModelIdnot found - 400: Unknown fields present
- 400: DDL generation failed (filesystem error, etc.)
Sequence Diagram
Interactions
GET /api/seq/interactions
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 interaction(s)",
"request": { "method": "GET", "path": "/api/seq/interactions" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInteraction",
"name": "Interaction1",
"participants": [
{ "_id": "AAAAAAGVaaaa", "name": "Lifeline1" }
],
"messages": [
{ "_id": "AAAAAAGVbbbb", "name": "message1" }
],
"fragments": [
{ "_id": "AAAAAAGVcccc", "_type": "UMLCombinedFragment", "name": "alt1" }
],
"_parentId": "AAAAAAGVrrrr"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the interaction |
| _type | string | Always "UMLInteraction" |
| name | string | Interaction name |
| documentation | string | Description (present only if set) |
| participants | object[] | Lifelines in this interaction (_id, name) |
| messages | object[] | Messages in this interaction (_id, name) |
| fragments | object[] | Fragments in this interaction (_id, _type, name) |
| _parentId | string | Parent element ID |
POST /api/seq/interactions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction name (default: "Interaction1") |
| documentation | string | No | Description |
Request example:
{
"name": "LoginSequence"
}
Response example:
{
"success": true,
"message": "Created interaction \"LoginSequence\"",
"request": { "method": "POST", "path": "/api/seq/interactions", "body": { "name": "LoginSequence" } },
"data": {
"_id": "AAAAAAGVxxxx",
"_type": "UMLInteraction",
"name": "LoginSequence",
"participants": [],
"messages": [],
"fragments": [],
"_parentId": "AAAAAAGVrrrr"
}
}
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400:
nameis empty - 400: No project is open
GET /api/seq/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response: Interaction object (same format as GET /api/seq/interactions data array element)
Errors:
- 404: UMLInteraction with the specified ID not found
PUT /api/seq/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction name |
| documentation | string | No | Description |
Request example:
{
"name": "CheckoutSequence"
}
Response: The updated interaction object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: UMLInteraction with the specified ID not found
DELETE /api/seq/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Deleted interaction \"LoginSequence\"",
"request": { "method": "DELETE", "path": "/api/seq/interactions/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "LoginSequence" }
}
Errors:
- 400: Contains lifelines, messages, fragments, or diagrams (error message includes counts)
- 404: UMLInteraction with the specified ID not found
Sequence Diagrams
GET /api/seq/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/seq/diagrams" },
"data": [
{
"_id": "AAAAAAGVdddd",
"_type": "UMLSequenceDiagram",
"name": "SequenceDiagram1",
"lifelineIds": ["AAAAAAGVaaaa", "AAAAAAGVeeee"],
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the diagram |
| _type | string | Always "UMLSequenceDiagram" |
| name | string | Diagram name |
| documentation | string | Description (present only if set) |
| lifelineIds | string[] | IDs of lifelines displayed on this diagram |
| _parentId | string | Parent element (typically UMLInteraction) ID |
POST /api/seq/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | Yes | Parent element (UMLInteraction) ID |
| name | string | No | Diagram name (default: "SequenceDiagram1") |
| documentation | string | No | Description |
| width | number | No | Frame width in pixels (default: 692) |
| height | number | No | Frame height in pixels (default: 592) |
Request example:
{
"parentId": "AAAAAAGVxxxx",
"name": "Login Flow"
}
Response: The created diagram object (same format as GET /api/seq/diagrams data array element). message includes creation details.
Errors:
- 400:
parentIdis missing or the corresponding UMLInteraction not found - 400: Unknown fields present
- 400: Field type mismatch
- 400:
nameis empty
GET /api/seq/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as GET /api/seq/diagrams data array element)
Errors:
- 404: UMLSequenceDiagram with the specified ID not found
PUT /api/seq/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
| documentation | string | No | Description |
Request example:
{
"name": "Login Flow Diagram"
}
Response: The updated diagram object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: UMLSequenceDiagram with the specified ID not found
DELETE /api/seq/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"SequenceDiagram1\"",
"request": { "method": "DELETE", "path": "/api/seq/diagrams/AAAAAAGVdddd" },
"data": { "deleted": "AAAAAAGVdddd", "name": "SequenceDiagram1" }
}
Errors:
- 404: UMLSequenceDiagram with the specified ID not found
Lifelines
GET /api/seq/interactions/:id/lifelines
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Retrieved 2 lifeline(s) from interaction \"LoginSequence\"",
"request": { "method": "GET", "path": "/api/seq/interactions/AAAAAAGVxxxx/lifelines" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLLifeline",
"name": "Client",
"_parentId": "AAAAAAGVxxxx"
},
{
"_id": "AAAAAAGVeeee",
"_type": "UMLLifeline",
"name": "Server",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: UMLInteraction with the specified ID not found
POST /api/seq/interactions/:id/lifelines
diagramId is specified, a view (visual representation) is also created on the diagram.Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Lifeline name (default: "Lifeline1") |
| documentation | string | No | Description |
| diagramId | string | No | If specified, a view is created on the UMLSequenceDiagram |
| x | number | No | X coordinate of the view |
| y | number | No | Y coordinate of the view |
| height | number | No | Lifeline height in pixels (default: 200) |
Request example:
{
"name": "AuthService",
"diagramId": "AAAAAAGVdddd"
}
Response: The created lifeline object. message includes creation details.
Lifeline object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the lifeline |
| _type | string | Always "UMLLifeline" |
| name | string | Lifeline name |
| documentation | string | Description (present only if set) |
| represent | string | Represented element (present only if set) |
| _parentId | string | Parent interaction ID |
Errors:
- 400: Unknown fields, type mismatch, or empty name
- 400: UMLSequenceDiagram with the specified
diagramIdnot found - 404: UMLInteraction with the specified ID not found
GET /api/seq/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response: Lifeline object (same format as POST /api/seq/interactions/:id/lifelines response)
Errors:
- 404: UMLLifeline with the specified ID not found
PUT /api/seq/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Lifeline name |
| documentation | string | No | Description |
Request example:
{
"name": "DatabaseService"
}
Response: The updated lifeline object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: UMLLifeline with the specified ID not found
DELETE /api/seq/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response example:
{
"success": true,
"message": "Deleted lifeline \"AuthService\"",
"request": { "method": "DELETE", "path": "/api/seq/lifelines/AAAAAAGVaaaa" },
"data": { "deleted": "AAAAAAGVaaaa", "name": "AuthService" }
}
Errors:
- 400: Messages reference this lifeline as source or target (message includes referencing details)
- 400: State invariants reference this lifeline via covered (message includes referencing details)
- 404: UMLLifeline with the specified ID not found
Messages
GET /api/seq/interactions/:id/messages
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Retrieved 1 message(s) from interaction \"LoginSequence\"",
"request": { "method": "GET", "path": "/api/seq/interactions/AAAAAAGVxxxx/messages" },
"data": [
{
"_id": "AAAAAAGVbbbb",
"_type": "UMLMessage",
"name": "authenticate",
"messageSort": "synchCall",
"source": "AAAAAAGVaaaa",
"target": "AAAAAAGVeeee",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: UMLInteraction with the specified ID not found
POST /api/seq/interactions/:id/messages
createModelAndView to create both model and view on the diagram.Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Message name |
| messageSort | string | No | Message sort. Allowed values: synchCall, asynchCall, asynchSignal, createMessage, deleteMessage, reply |
| documentation | string | No | Description |
| source | string | Yes | Source lifeline ID |
| target | string | Yes | Target lifeline ID |
| diagramId | string | Yes | UMLSequenceDiagram ID |
| y | number | No | Vertical position (y-coordinate) on the diagram |
| activationHeight | number | No | Height of the activation bar on the target lifeline (for synchCall messages) |
Request example:
{
"name": "authenticate",
"messageSort": "synchCall",
"source": "AAAAAAGVaaaa",
"target": "AAAAAAGVeeee",
"diagramId": "AAAAAAGVdddd"
}
Response: The created message object. message includes creation details.
Message object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the message |
| _type | string | Always "UMLMessage" |
| name | string | Message name |
| messageSort | string | Message sort (e.g., "synchCall", "asynchCall") |
| source | string | Source lifeline ID (present only if set) |
| target | string | Target lifeline ID (present only if set) |
| signature | string | Signature (present only if set) |
| connector | string | Connector (present only if set) |
| documentation | string | Description (present only if set) |
| _parentId | string | Parent interaction ID |
Errors:
- 400:
sourceortargetis missing - 400:
diagramIdis missing - 400: UMLLifeline with the specified
sourceortargetnot found - 400: UMLSequenceDiagram with the specified
diagramIdnot found - 400:
messageSortis not an allowed value (error message lists allowed values) - 400: Unknown fields, type mismatch, or empty name
- 404: UMLInteraction with the specified ID not found
GET /api/seq/messages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message ID |
Response: Message object (same format as POST /api/seq/interactions/:id/messages response)
Errors:
- 404: UMLMessage with the specified ID not found
PUT /api/seq/messages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Message name |
| messageSort | string | No | Message sort |
| documentation | string | No | Description |
Request example:
{
"name": "login",
"messageSort": "asynchCall"
}
Response: The updated message object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
messageSortis not an allowed value (error message lists allowed values) - 404: UMLMessage with the specified ID not found
DELETE /api/seq/messages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message ID |
Response example:
{
"success": true,
"message": "Deleted message \"authenticate\"",
"request": { "method": "DELETE", "path": "/api/seq/messages/AAAAAAGVbbbb" },
"data": { "deleted": "AAAAAAGVbbbb", "name": "authenticate" }
}
Errors:
- 404: UMLMessage with the specified ID not found
Combined Fragments
GET /api/seq/interactions/:id/combined-fragments
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Retrieved 1 combined fragment(s) from interaction \"LoginSequence\"",
"request": { "method": "GET", "path": "/api/seq/interactions/AAAAAAGVxxxx/combined-fragments" },
"data": [
{
"_id": "AAAAAAGVcccc",
"_type": "UMLCombinedFragment",
"name": "alt1",
"interactionOperator": "alt",
"operands": [
{ "_id": "AAAAAAGVffff", "name": "success", "guard": "isValid" },
{ "_id": "AAAAAAGVgggg", "name": "failure", "guard": "else" }
],
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: UMLInteraction with the specified ID not found
POST /api/seq/interactions/:id/combined-fragments
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Fragment name |
| interactionOperator | string | No | Interaction operator (default: "alt"). Allowed values: alt, opt, par, loop, critical, neg, assert, strict, seq, ignore, consider, break |
| documentation | string | No | Description |
| diagramId | string | No | If specified, a view is created on the UMLSequenceDiagram |
| x | number | No | X position on the diagram |
| y | number | No | Y position on the diagram |
| width | number | No | Width on the diagram (default: 350) |
| height | number | No | Height on the diagram (default: 200) |
Request example:
{
"name": "authCheck",
"interactionOperator": "alt",
"diagramId": "AAAAAAGVdddd"
}
Response: The created combined fragment object. message includes creation details.
Combined fragment object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the combined fragment |
| _type | string | Always "UMLCombinedFragment" |
| name | string | Fragment name |
| interactionOperator | string | Interaction operator (e.g., "alt", "loop") |
| operands | object[] | Child operands (_id, name, guard) |
| documentation | string | Description (present only if set) |
| _parentId | string | Parent interaction ID |
Errors:
- 400:
interactionOperatoris not an allowed value (error message lists allowed values) - 400: Unknown fields, type mismatch, or empty name
- 400: UMLSequenceDiagram with the specified
diagramIdnot found - 404: UMLInteraction with the specified ID not found
GET /api/seq/combined-fragments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Combined fragment ID |
Response: Combined fragment object (same format as GET /api/seq/interactions/:id/combined-fragments data array element)
Errors:
- 404: UMLCombinedFragment with the specified ID not found
PUT /api/seq/combined-fragments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Combined fragment ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Fragment name |
| interactionOperator | string | No | Interaction operator |
| documentation | string | No | Description |
Request example:
{
"interactionOperator": "loop"
}
Response: The updated combined fragment object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
interactionOperatoris not an allowed value (error message lists allowed values) - 404: UMLCombinedFragment with the specified ID not found
DELETE /api/seq/combined-fragments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Combined fragment ID |
Response example:
{
"success": true,
"message": "Deleted combined fragment \"authCheck\"",
"request": { "method": "DELETE", "path": "/api/seq/combined-fragments/AAAAAAGVcccc" },
"data": { "deleted": "AAAAAAGVcccc", "name": "authCheck" }
}
Errors:
- 404: UMLCombinedFragment with the specified ID not found
Interaction Operands
GET /api/seq/combined-fragments/:id/operands
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Combined fragment ID |
Response example:
{
"success": true,
"message": "Retrieved 2 operand(s) from combined fragment \"authCheck\"",
"request": { "method": "GET", "path": "/api/seq/combined-fragments/AAAAAAGVcccc/operands" },
"data": [
{
"_id": "AAAAAAGVffff",
"_type": "UMLInteractionOperand",
"name": "success",
"guard": "isValid",
"_parentId": "AAAAAAGVcccc"
},
{
"_id": "AAAAAAGVgggg",
"_type": "UMLInteractionOperand",
"name": "failure",
"guard": "else",
"_parentId": "AAAAAAGVcccc"
}
]
}
Errors:
- 404: UMLCombinedFragment with the specified ID not found
POST /api/seq/combined-fragments/:id/operands
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Combined fragment ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operand name |
| guard | string | No | Guard condition |
| documentation | string | No | Description |
Request example:
{
"name": "timeout",
"guard": "elapsed > 30s"
}
Response: The created operand object. message includes creation details.
Interaction operand object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the operand |
| _type | string | Always "UMLInteractionOperand" |
| name | string | Operand name |
| guard | string | Guard condition |
| documentation | string | Description (present only if set) |
| _parentId | string | Parent combined fragment ID |
Errors:
- 400: Unknown fields, type mismatch, or empty name
- 404: UMLCombinedFragment with the specified ID not found
GET /api/seq/operands/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Operand ID |
Response: Operand object (same format as POST /api/seq/combined-fragments/:id/operands response)
Errors:
- 404: UMLInteractionOperand with the specified ID not found
PUT /api/seq/operands/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Operand ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operand name |
| guard | string | No | Guard condition |
| documentation | string | No | Description |
Request example:
{
"guard": "retryCount < 3"
}
Response: The updated operand object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: UMLInteractionOperand with the specified ID not found
DELETE /api/seq/operands/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Operand ID |
Response example:
{
"success": true,
"message": "Deleted operand \"timeout\"",
"request": { "method": "DELETE", "path": "/api/seq/operands/AAAAAAGVhhhh" },
"data": { "deleted": "AAAAAAGVhhhh", "name": "timeout" }
}
Errors:
- 400: Parent combined fragment has only 1 operand remaining (error message)
- 404: UMLInteractionOperand with the specified ID not found
State Invariants
GET /api/seq/interactions/:id/state-invariants
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Retrieved 1 state invariant(s) from interaction \"LoginSequence\"",
"request": { "method": "GET", "path": "/api/seq/interactions/AAAAAAGVxxxx/state-invariants" },
"data": [
{
"_id": "AAAAAAGViiii",
"_type": "UMLStateInvariant",
"name": "authenticated",
"covered": "AAAAAAGVaaaa",
"invariant": "isLoggedIn == true",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: UMLInteraction with the specified ID not found
POST /api/seq/interactions/:id/state-invariants
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | State invariant name |
| covered | string | Conditional | Lifeline ID that this state invariant covers. Required when diagramId is specified |
| invariant | string | No | Invariant expression |
| documentation | string | No | Description |
| diagramId | string | No | If specified, a view is created on the UMLSequenceDiagram |
| x | number | No | X position on the diagram |
| y | number | No | Y position on the diagram |
Request example:
{
"name": "authenticated",
"covered": "AAAAAAGVaaaa",
"invariant": "isLoggedIn == true",
"diagramId": "AAAAAAGVdddd"
}
Response: The created state invariant object. message includes creation details.
State invariant object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the state invariant |
| _type | string | Always "UMLStateInvariant" |
| name | string | State invariant name |
| covered | string | Covered lifeline ID (present only if set) |
| invariant | string | Invariant expression (present only if set) |
| documentation | string | Description (present only if set) |
| _parentId | string | Parent interaction ID |
Errors:
- 400: Unknown fields, type mismatch, or empty name
- 400: UMLLifeline with the specified
coverednot found - 400:
coveredis required whendiagramIdis specified - 400: Covered lifeline does not have a view on the specified diagram
- 400: UMLSequenceDiagram with the specified
diagramIdnot found - 404: UMLInteraction with the specified ID not found
GET /api/seq/state-invariants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State invariant ID |
Response: State invariant object (same format as POST /api/seq/interactions/:id/state-invariants response)
Errors:
- 404: UMLStateInvariant with the specified ID not found
PUT /api/seq/state-invariants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State invariant ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | State invariant name |
| covered | string | No | Lifeline ID |
| invariant | string | No | Invariant expression |
| documentation | string | No | Description |
Request example:
{
"invariant": "sessionActive == true"
}
Response: The updated state invariant object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400: UMLLifeline with the specified
coverednot found - 404: UMLStateInvariant with the specified ID not found
DELETE /api/seq/state-invariants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State invariant ID |
Response example:
{
"success": true,
"message": "Deleted state invariant \"authenticated\"",
"request": { "method": "DELETE", "path": "/api/seq/state-invariants/AAAAAAGViiii" },
"data": { "deleted": "AAAAAAGViiii", "name": "authenticated" }
}
Errors:
- 404: UMLStateInvariant with the specified ID not found
Interaction Uses
GET /api/seq/interactions/:id/interaction-uses
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interaction use(s) from interaction \"LoginSequence\"",
"request": { "method": "GET", "path": "/api/seq/interactions/AAAAAAGVxxxx/interaction-uses" },
"data": [
{
"_id": "AAAAAAGVjjjj",
"_type": "UMLInteractionUse",
"name": "validateToken",
"refersTo": "AAAAAAGVkkkk",
"arguments": "token, userId",
"returnValue": "boolean",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: UMLInteraction with the specified ID not found
POST /api/seq/interactions/:id/interaction-uses
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction use name |
| refersTo | string | No | Referenced UMLInteraction ID |
| arguments | string | No | Arguments |
| returnValue | string | No | Return value |
| documentation | string | No | Description |
| diagramId | string | No | If specified, a view is created on the UMLSequenceDiagram |
| x | number | No | X position on the diagram |
| y | number | No | Y position on the diagram |
| width | number | No | Width on the diagram (default: 350) |
| height | number | No | Height on the diagram (default: 100) |
Request example:
{
"name": "validateToken",
"refersTo": "AAAAAAGVkkkk",
"arguments": "token, userId",
"returnValue": "boolean",
"diagramId": "AAAAAAGVdddd"
}
Response: The created interaction use object. message includes creation details.
Interaction use object fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier of the interaction use |
| _type | string | Always "UMLInteractionUse" |
| name | string | Interaction use name |
| refersTo | string | Referenced UMLInteraction ID (present only if set) |
| arguments | string | Arguments (present only if set) |
| returnValue | string | Return value (present only if set) |
| documentation | string | Description (present only if set) |
| _parentId | string | Parent interaction ID |
Errors:
- 400: Unknown fields, type mismatch, or empty name
- 400: UMLInteraction with the specified
refersTonot found - 400: UMLSequenceDiagram with the specified
diagramIdnot found - 404: UMLInteraction with the specified ID not found
GET /api/seq/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction use ID |
Response: Interaction use object (same format as POST /api/seq/interactions/:id/interaction-uses response)
Errors:
- 404: UMLInteractionUse with the specified ID not found
PUT /api/seq/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction use ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction use name |
| refersTo | string | No | Referenced UMLInteraction ID |
| arguments | string | No | Arguments |
| returnValue | string | No | Return value |
| documentation | string | No | Description |
Request example:
{
"arguments": "token, userId, sessionId",
"returnValue": "AuthResult"
}
Response: The updated interaction use object. message includes the names of updated fields.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400: UMLInteraction with the specified
refersTonot found - 404: UMLInteractionUse with the specified ID not found
DELETE /api/seq/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction use ID |
Response example:
{
"success": true,
"message": "Deleted interaction use \"validateToken\"",
"request": { "method": "DELETE", "path": "/api/seq/interaction-uses/AAAAAAGVjjjj" },
"data": { "deleted": "AAAAAAGVjjjj", "name": "validateToken" }
}
Errors:
- 404: UMLInteractionUse with the specified ID not found
Shapes
Shapes are view-only elements (no backing model) such as text labels, rectangles, ellipses, hyperlinks, and images.
Allowed shape types
Text, TextBox, Rect, RoundRect, Ellipse, Hyperlink, Image, UMLFrame
| Shape type | Internal _type |
|---|---|
| Text | UMLTextView |
| TextBox | UMLTextBoxView |
| Rect | RectangleView |
| RoundRect | RoundRectView |
| Ellipse | EllipseView |
| Hyperlink | HyperlinkView |
| Image | ImageView |
| UMLFrame | UMLFrameView |
GET /api/diagrams/:id/shapes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 2 shape(s) from diagram \"MyDiagram\"",
"data": [
{
"_id": "AAAAAAGVshape1",
"_type": "UMLTextBoxView",
"shapeType": "TextBox",
"left": 50,
"top": 50,
"width": 150,
"height": 50,
"text": "Important Note"
},
{
"_id": "AAAAAAGVshape2",
"_type": "EllipseView",
"shapeType": "Ellipse",
"left": 300,
"top": 100,
"width": 100,
"height": 80
}
]
}
Errors:
- 404: Diagram not found
POST /api/diagrams/:id/shapes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Shape type (see allowed types above) |
| text | string | No | Text content (for Text, TextBox, Rect, etc.) |
| url | string | No | URL (for Hyperlink type) |
| imageFile | string | No | Image file path (for Image type) |
| x1 | number | No | Left coordinate (default: 100) |
| y1 | number | No | Top coordinate (default: 100) |
| x2 | number | No | Right coordinate (default: 200) |
| y2 | number | No | Bottom coordinate (default: 150) |
Request example:
{
"type": "TextBox",
"text": "Important Note",
"x1": 50,
"y1": 50,
"x2": 200,
"y2": 100
}
Response example:
{
"success": true,
"message": "Created shape \"TextBox\" on diagram \"MyDiagram\"",
"data": {
"_id": "AAAAAAGVshape1",
"_type": "UMLTextBoxView",
"shapeType": "TextBox",
"left": 50,
"top": 50,
"width": 150,
"height": 50,
"text": "Important Note"
}
}
Errors:
- 400:
typeis required - 400: Invalid shape type (must be one of the allowed types)
- 400: Unknown fields present
- 404: Diagram not found
GET /api/shapes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Shape (view) ID |
Response: Shape object (same format as list response element).
Errors:
- 404: Shape not found
PUT /api/shapes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Shape (view) ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| text | string | No | Text content |
| url | string | No | URL (for Hyperlink) |
Errors:
- 400: Empty body or unknown fields
- 404: Shape not found
DELETE /api/shapes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Shape (view) ID |
Response example:
{
"success": true,
"message": "Deleted shape \"TextBox\" from diagram \"MyDiagram\"",
"data": { "deleted": "AAAAAAGVshape1", "shapeType": "TextBox" }
}
Errors:
- 404: Diagram not found
- 404: Shape not found on the diagram
Diagram Family APIs - Common CRUD Patterns
The following diagram families share a common CRUD pattern. Each family provides dedicated endpoints under its own URL prefix for managing diagrams, resources (nodes), relations (edges), and child elements.
Common Response Format
All family endpoints use the same response format as the rest of the API (see Common Response Format).
Diagrams
Each family provides 5 diagram endpoints:
| Method | Path | Description |
|---|---|---|
| GET | /api/{prefix}/diagrams | List all diagrams |
| POST | /api/{prefix}/diagrams | Create a diagram |
| GET | /api/{prefix}/diagrams/:id | Get diagram details |
| PUT | /api/{prefix}/diagrams/:id | Update a diagram |
| DELETE | /api/{prefix}/diagrams/:id | Delete a diagram |
Fields: parentId (create), name (create/update), type (create, for multi-diagram families).
Resources (Nodes)
Each resource provides 5 endpoints:
| Method | Path | Description |
|---|---|---|
| GET | /api/{prefix}/{resource} | List all (filterable by diagramId) |
| POST | /api/{prefix}/{resource} | Create (requires diagramId) |
| GET | /api/{prefix}/{resource}/:id | Get details |
| PUT | /api/{prefix}/{resource}/:id | Update (name, documentation) |
| DELETE | /api/{prefix}/{resource}/:id | Delete |
Create fields: diagramId (required), name, type (for multi-type resources), x1, y1, x2, y2.
Serialization: { _id, _type, name, _parentId } + documentation (if set). Some resources have custom serialization with additional fields.
Children
Child elements belong to a parent resource. Each child type provides 2 endpoints:
| Method | Path | Description |
|---|---|---|
| GET | /api/{prefix}/{parent}/:id/{children} | List children |
| POST | /api/{prefix}/{parent}/:id/{children} | Create a child |
Create fields: Vary by child type (typically name + type-specific fields).
Relations (Edges)
Each relation provides 5 endpoints:
| Method | Path | Description |
|---|---|---|
| GET | /api/{prefix}/{relation} | List all (filterable by diagramId) |
| POST | /api/{prefix}/{relation} | Create (requires diagramId, sourceId, targetId) |
| GET | /api/{prefix}/{relation}/:id | Get details |
| PUT | /api/{prefix}/{relation}/:id | Update (name, documentation) |
| DELETE | /api/{prefix}/{relation}/:id | Delete |
hasEnds pattern: Some relations (e.g., UMLAssociation) use end1/end2 objects instead of sourceId/targetId. These include additional fields like name, navigable, aggregation, multiplicity.
Serialization: { _id, _type, name, _parentId, sourceId, sourceName, targetId, targetName } + documentation (if set). For hasEnds relations: { _id, _type, name, _parentId, end1: {...}, end2: {...} }.
Class/Package Diagram
Prefix: /api/class/
Diagram types: UMLClassDiagram, UMLPackageDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/class/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/class/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLClassDiagram",
"name": "UMLClassDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Diagram type (UMLClassDiagram or UMLPackageDiagram) |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/class/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
| type | string | No | Diagram type: UMLClassDiagram, UMLPackageDiagram (default: "UMLClassDiagram") |
Request example:
{
"name": "My Class/Package Diagram",
"type": "UMLPackageDiagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid diagram type (must be one of
UMLClassDiagram,UMLPackageDiagram) - 404: Parent element not found
GET /api/class/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/class/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Class/Package Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/class/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLClassDiagram1\"",
"request": { "method": "DELETE", "path": "/api/class/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLClassDiagram1" }
}
Errors:
- 404: Diagram not found
Classes
Types: UMLClass
GET /api/class/classes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 classes",
"request": { "method": "GET", "path": "/api/class/classes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLClass",
"name": "Class1",
"_parentId": "AAAAAAGVwwww",
"isAbstract": false,
"attributes": [],
"operations": []
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLClass" |
| name | string | Class name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| isAbstract | boolean | Whether the class is abstract (present only if true) |
| isLeaf | boolean | Whether the class is a leaf (present only if true) |
| isActive | boolean | Whether the class is active (present only if true) |
| attributes | array | List of attributes (each with _id, name, type, visibility, isStatic) |
| operations | array | List of operations (each with _id, name, visibility, isStatic) |
POST /api/class/classes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Class name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyClass"
}
Response: The created class object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/class/classes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response: Class object (same format as list response element).
Errors:
- 404: Class not found
PUT /api/class/classes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Class name |
| documentation | string | No | Documentation text |
| isAbstract | boolean | No | Whether the class is abstract |
| isLeaf | boolean | No | Whether the class is a leaf (cannot be further specialized) |
| isActive | boolean | No | Whether the class is active (has its own thread of control) |
Request example:
{
"name": "UpdatedClass",
"isAbstract": true
}
Response: The updated class object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Class not found
DELETE /api/class/classes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response example:
{
"success": true,
"message": "Deleted class \"Class1\"",
"request": { "method": "DELETE", "path": "/api/class/classes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Class1" }
}
Errors:
- 404: Class not found
GET /api/class/classes/:id/attributes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response example:
{
"success": true,
"message": "Retrieved 1 attributes",
"request": { "method": "GET", "path": "/api/class/classes/AAAAAAGVxxxx/attributes" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLAttribute",
"name": "attribute1",
"type": "",
"visibility": "public",
"isStatic": false,
"defaultValue": "",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLAttribute" |
| name | string | Attribute name |
| type | string | Type annotation |
| visibility | string | Visibility (public, protected, private, package) |
| isStatic | boolean | Whether the element is static |
| defaultValue | string | Default value |
| _parentId | string | Parent element ID |
Errors:
- 404: Class not found
POST /api/class/classes/:id/attributes
Child type: UMLAttribute. Fields: name, type, visibility, isStatic, defaultValue.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Attribute name |
| type | string | No | Type annotation |
| visibility | string | No | Visibility (public, protected, private, package) |
| isStatic | boolean | No | Whether the element is static |
| defaultValue | string | No | Default value |
Request example:
{
"name": "myAttribute",
"type": "string",
"visibility": "public",
"isStatic": false,
"defaultValue": ""
}
Response: The created attribute object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Class not found
GET /api/class/classes/:id/operations
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response example:
{
"success": true,
"message": "Retrieved 1 operations",
"request": { "method": "GET", "path": "/api/class/classes/AAAAAAGVxxxx/operations" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLOperation",
"name": "operation1",
"visibility": "public",
"isStatic": false,
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLOperation" |
| name | string | Operation name |
| visibility | string | Visibility (public, protected, private, package) |
| isStatic | boolean | Whether the element is static |
| _parentId | string | Parent element ID |
Errors:
- 404: Class not found
POST /api/class/classes/:id/operations
Child type: UMLOperation. Fields: name, visibility, isStatic.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operation name |
| visibility | string | No | Visibility (public, protected, private, package) |
| isStatic | boolean | No | Whether the element is static |
Request example:
{
"name": "myOperation",
"visibility": "public",
"isStatic": false
}
Response: The created operation object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Class not found
GET /api/class/classes/:id/receptions
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response example:
{
"success": true,
"message": "Retrieved 1 receptions",
"request": { "method": "GET", "path": "/api/class/classes/AAAAAAGVxxxx/receptions" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLReception",
"name": "reception1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLReception" |
| name | string | Reception name |
| _parentId | string | Parent element ID |
Errors:
- 404: Class not found
POST /api/class/classes/:id/receptions
Child type: UMLReception. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Reception name |
Request example:
{
"name": "myReception"
}
Response: The created reception object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Class not found
GET /api/class/classes/:id/template-parameters
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Response example:
{
"success": true,
"message": "Retrieved 1 template parameters",
"request": { "method": "GET", "path": "/api/class/classes/AAAAAAGVxxxx/template-parameters" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLTemplateParameter",
"name": "templateparameter1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTemplateParameter" |
| name | string | Template Parameter name |
| _parentId | string | Parent element ID |
Errors:
- 404: Class not found
POST /api/class/classes/:id/template-parameters
Child type: UMLTemplateParameter. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Class ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Template Parameter name |
Request example:
{
"name": "myTemplateParameter"
}
Response: The created template parameter object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Class not found
Interfaces
Types: UMLInterface
GET /api/class/interfaces
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interfaces",
"request": { "method": "GET", "path": "/api/class/interfaces" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInterface",
"name": "Interface1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInterface" |
| name | string | Interface name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/class/interfaces
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Interface name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyInterface"
}
Response: The created interface object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/class/interfaces/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Response: Interface object (same format as list response element).
Errors:
- 404: Interface not found
PUT /api/class/interfaces/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interface name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedInterface"
}
Response: The updated interface object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Interface not found
DELETE /api/class/interfaces/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Response example:
{
"success": true,
"message": "Deleted interface \"Interface1\"",
"request": { "method": "DELETE", "path": "/api/class/interfaces/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Interface1" }
}
Errors:
- 404: Interface not found
GET /api/class/interfaces/:id/attributes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Response example:
{
"success": true,
"message": "Retrieved 1 attributes",
"request": { "method": "GET", "path": "/api/class/interfaces/AAAAAAGVxxxx/attributes" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLAttribute",
"name": "attribute1",
"type": "",
"visibility": "public",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLAttribute" |
| name | string | Attribute name |
| type | string | Type annotation |
| visibility | string | Visibility (public, protected, private, package) |
| _parentId | string | Parent element ID |
Errors:
- 404: Interface not found
POST /api/class/interfaces/:id/attributes
Child type: UMLAttribute. Fields: name, type, visibility.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Attribute name |
| type | string | No | Type annotation |
| visibility | string | No | Visibility (public, protected, private, package) |
Request example:
{
"name": "myAttribute",
"type": "string",
"visibility": "public"
}
Response: The created attribute object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Interface not found
GET /api/class/interfaces/:id/operations
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Response example:
{
"success": true,
"message": "Retrieved 1 operations",
"request": { "method": "GET", "path": "/api/class/interfaces/AAAAAAGVxxxx/operations" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLOperation",
"name": "operation1",
"visibility": "public",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLOperation" |
| name | string | Operation name |
| visibility | string | Visibility (public, protected, private, package) |
| _parentId | string | Parent element ID |
Errors:
- 404: Interface not found
POST /api/class/interfaces/:id/operations
Child type: UMLOperation. Fields: name, visibility.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operation name |
| visibility | string | No | Visibility (public, protected, private, package) |
Request example:
{
"name": "myOperation",
"visibility": "public"
}
Response: The created operation object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Interface not found
Enumerations
Types: UMLEnumeration
GET /api/class/enumerations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 enumerations",
"request": { "method": "GET", "path": "/api/class/enumerations" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLEnumeration",
"name": "Enumeration1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLEnumeration" |
| name | string | Enumeration name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/class/enumerations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Enumeration name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyEnumeration"
}
Response: The created enumeration object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/class/enumerations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Enumeration ID |
Response: Enumeration object (same format as list response element).
Errors:
- 404: Enumeration not found
PUT /api/class/enumerations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Enumeration ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Enumeration name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedEnumeration"
}
Response: The updated enumeration object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Enumeration not found
DELETE /api/class/enumerations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Enumeration ID |
Response example:
{
"success": true,
"message": "Deleted enumeration \"Enumeration1\"",
"request": { "method": "DELETE", "path": "/api/class/enumerations/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Enumeration1" }
}
Errors:
- 404: Enumeration not found
GET /api/class/enumerations/:id/literals
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Enumeration ID |
Response example:
{
"success": true,
"message": "Retrieved 1 literals",
"request": { "method": "GET", "path": "/api/class/enumerations/AAAAAAGVxxxx/literals" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLEnumerationLiteral",
"name": "literal1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLEnumerationLiteral" |
| name | string | Literal name |
| _parentId | string | Parent element ID |
Errors:
- 404: Enumeration not found
POST /api/class/enumerations/:id/literals
Child type: UMLEnumerationLiteral. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Enumeration ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Literal name |
Request example:
{
"name": "myLiteral"
}
Response: The created literal object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Enumeration not found
Data Types
Types: UMLDataType, UMLPrimitiveType, UMLSignal
GET /api/class/data-types
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 data types",
"request": { "method": "GET", "path": "/api/class/data-types" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLDataType",
"name": "DataType1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLDataType, UMLPrimitiveType, UMLSignal) |
| name | string | Data Type name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/class/data-types
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Data Type name |
| type | string | No | Element type: UMLDataType, UMLPrimitiveType, UMLSignal (default: "UMLDataType") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyDataType",
"type": "UMLDataType"
}
Response: The created data type object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLDataType,UMLPrimitiveType,UMLSignal) - 404: Diagram not found
GET /api/class/data-types/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Type ID |
Response: Data Type object (same format as list response element).
Errors:
- 404: Data Type not found
PUT /api/class/data-types/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Type ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data Type name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedDataType"
}
Response: The updated data type object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Data Type not found
DELETE /api/class/data-types/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Type ID |
Response example:
{
"success": true,
"message": "Deleted data type \"DataType1\"",
"request": { "method": "DELETE", "path": "/api/class/data-types/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "DataType1" }
}
Errors:
- 404: Data Type not found
Packages
Types: UMLPackage, UMLModel, UMLSubsystem
GET /api/class/packages
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 packages",
"request": { "method": "GET", "path": "/api/class/packages" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLPackage",
"name": "Package1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLPackage, UMLModel, UMLSubsystem) |
| name | string | Package name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/class/packages
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Package name |
| type | string | No | Element type: UMLPackage, UMLModel, UMLSubsystem (default: "UMLPackage") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPackage",
"type": "UMLPackage"
}
Response: The created package object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLPackage,UMLModel,UMLSubsystem) - 404: Diagram not found
GET /api/class/packages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Package ID |
Response: Package object (same format as list response element).
Errors:
- 404: Package not found
PUT /api/class/packages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Package ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Package name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPackage"
}
Response: The updated package object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Package not found
DELETE /api/class/packages/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Package ID |
Response example:
{
"success": true,
"message": "Deleted package \"Package1\"",
"request": { "method": "DELETE", "path": "/api/class/packages/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Package1" }
}
Errors:
- 404: Package not found
Custom Serialization
Classes have a custom serializer that includes additional fields:
| Field | Type | Description |
|---|---|---|
| isAbstract | boolean | Whether the class is abstract |
| attributes | array | List of attributes (each with _id, name, type, visibility, isStatic) |
| operations | array | List of operations (each with _id, name, visibility, isStatic) |
Associations
Type: UMLAssociation (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/class/associations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 associations",
"request": { "method": "GET", "path": "/api/class/associations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLAssociation",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLAssociation" |
| name | string | Association name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/class/associations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Association name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created association object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response: Association object (same format as list response element).
Errors:
- 404: Association not found
PUT /api/class/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Association name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedAssociation",
"end1": {
"name": "value"
}
}
Response: The updated association object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Association not found
DELETE /api/class/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response example:
{
"success": true,
"message": "Deleted association \"\"",
"request": { "method": "DELETE", "path": "/api/class/associations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Association not found
Generalizations
Type: UMLGeneralization
GET /api/class/generalizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 generalizations",
"request": { "method": "GET", "path": "/api/class/generalizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLGeneralization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLGeneralization" |
| name | string | Generalization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/class/generalizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Generalization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created generalization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response: Generalization object (same format as list response element).
Errors:
- 404: Generalization not found
PUT /api/class/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Generalization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedGeneralization"
}
Response: The updated generalization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Generalization not found
DELETE /api/class/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response example:
{
"success": true,
"message": "Deleted generalization \"\"",
"request": { "method": "DELETE", "path": "/api/class/generalizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Generalization not found
Dependencies
Type: UMLDependency
GET /api/class/dependencies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 dependencies",
"request": { "method": "GET", "path": "/api/class/dependencies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDependency",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDependency" |
| name | string | Dependency name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/class/dependencies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Dependency name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created dependency object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response: Dependency object (same format as list response element).
Errors:
- 404: Dependency not found
PUT /api/class/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Dependency name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDependency"
}
Response: The updated dependency object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Dependency not found
DELETE /api/class/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response example:
{
"success": true,
"message": "Deleted dependency \"\"",
"request": { "method": "DELETE", "path": "/api/class/dependencies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Dependency not found
Interface Realizations
Type: UMLInterfaceRealization
GET /api/class/interface-realizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interface realizations",
"request": { "method": "GET", "path": "/api/class/interface-realizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLInterfaceRealization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInterfaceRealization" |
| name | string | Interface Realization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/class/interface-realizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Interface Realization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created interface realization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Response: Interface Realization object (same format as list response element).
Errors:
- 404: Interface Realization not found
PUT /api/class/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interface Realization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedInterfaceRealization"
}
Response: The updated interface realization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Interface Realization not found
DELETE /api/class/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Response example:
{
"success": true,
"message": "Deleted interface realization \"\"",
"request": { "method": "DELETE", "path": "/api/class/interface-realizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Interface Realization not found
Realizations
Type: UMLRealization
GET /api/class/realizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 realizations",
"request": { "method": "GET", "path": "/api/class/realizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLRealization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLRealization" |
| name | string | Realization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/class/realizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Realization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created realization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Response: Realization object (same format as list response element).
Errors:
- 404: Realization not found
PUT /api/class/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Realization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedRealization"
}
Response: The updated realization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Realization not found
DELETE /api/class/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Response example:
{
"success": true,
"message": "Deleted realization \"\"",
"request": { "method": "DELETE", "path": "/api/class/realizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Realization not found
Template Bindings
Type: UMLTemplateBinding
GET /api/class/template-bindings
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 template bindings",
"request": { "method": "GET", "path": "/api/class/template-bindings" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLTemplateBinding",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTemplateBinding" |
| name | string | Template Binding name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/class/template-bindings
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Template Binding name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created template binding object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/class/template-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Template Binding ID |
Response: Template Binding object (same format as list response element).
Errors:
- 404: Template Binding not found
PUT /api/class/template-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Template Binding ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Template Binding name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedTemplateBinding"
}
Response: The updated template binding object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Template Binding not found
DELETE /api/class/template-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Template Binding ID |
Response example:
{
"success": true,
"message": "Deleted template binding \"\"",
"request": { "method": "DELETE", "path": "/api/class/template-bindings/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Template Binding not found
Endpoint count: 5 (diagrams) + 25 (classes, interfaces, enumerations, data-types, packages) + 14 (children) + 30 (associations, generalizations, dependencies, interface-realizations, realizations, template-bindings) = 74
Use Case Diagram
Prefix: /api/usecase/
Diagram types: UMLUseCaseDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/usecase/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/usecase/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLUseCaseDiagram",
"name": "UMLUseCaseDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLUseCaseDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/usecase/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Use Case Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/usecase/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/usecase/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Use Case Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/usecase/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLUseCaseDiagram1\"",
"request": { "method": "DELETE", "path": "/api/usecase/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLUseCaseDiagram1" }
}
Errors:
- 404: Diagram not found
Actors
Types: UMLActor
GET /api/usecase/actors
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 actors",
"request": { "method": "GET", "path": "/api/usecase/actors" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLActor",
"name": "Actor1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLActor" |
| name | string | Actor name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/usecase/actors
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Actor name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyActor"
}
Response: The created actor object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/usecase/actors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Actor ID |
Response: Actor object (same format as list response element).
Errors:
- 404: Actor not found
PUT /api/usecase/actors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Actor ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Actor name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedActor"
}
Response: The updated actor object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Actor not found
DELETE /api/usecase/actors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Actor ID |
Response example:
{
"success": true,
"message": "Deleted actor \"Actor1\"",
"request": { "method": "DELETE", "path": "/api/usecase/actors/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Actor1" }
}
Errors:
- 404: Actor not found
Use Cases
Types: UMLUseCase
GET /api/usecase/use-cases
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 use cases",
"request": { "method": "GET", "path": "/api/usecase/use-cases" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLUseCase",
"name": "UseCase1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLUseCase" |
| name | string | Use Case name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/usecase/use-cases
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Use Case name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyUseCase"
}
Response: The created use case object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/usecase/use-cases/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Use Case ID |
Response: Use Case object (same format as list response element).
Errors:
- 404: Use Case not found
PUT /api/usecase/use-cases/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Use Case ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Use Case name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedUseCase"
}
Response: The updated use case object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Use Case not found
DELETE /api/usecase/use-cases/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Use Case ID |
Response example:
{
"success": true,
"message": "Deleted use case \"UseCase1\"",
"request": { "method": "DELETE", "path": "/api/usecase/use-cases/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UseCase1" }
}
Errors:
- 404: Use Case not found
GET /api/usecase/use-cases/:id/extension-points
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Use Case ID |
Response example:
{
"success": true,
"message": "Retrieved 1 extension points",
"request": { "method": "GET", "path": "/api/usecase/use-cases/AAAAAAGVxxxx/extension-points" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLExtensionPoint",
"name": "extensionpoint1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLExtensionPoint" |
| name | string | Extension Point name |
| _parentId | string | Parent element ID |
Errors:
- 404: Use Case not found
POST /api/usecase/use-cases/:id/extension-points
Child type: UMLExtensionPoint. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Use Case ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Extension Point name |
Request example:
{
"name": "myExtensionPoint"
}
Response: The created extension point object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Use Case not found
Subjects
Types: UMLUseCaseSubject
GET /api/usecase/subjects
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 subjects",
"request": { "method": "GET", "path": "/api/usecase/subjects" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLUseCaseSubject",
"name": "Subject1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLUseCaseSubject" |
| name | string | Subject name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/usecase/subjects
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Subject name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MySubject"
}
Response: The created subject object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/usecase/subjects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Subject ID |
Response: Subject object (same format as list response element).
Errors:
- 404: Subject not found
PUT /api/usecase/subjects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Subject ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Subject name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedSubject"
}
Response: The updated subject object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Subject not found
DELETE /api/usecase/subjects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Subject ID |
Response example:
{
"success": true,
"message": "Deleted subject \"Subject1\"",
"request": { "method": "DELETE", "path": "/api/usecase/subjects/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Subject1" }
}
Errors:
- 404: Subject not found
Associations
Type: UMLAssociation (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/usecase/associations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 associations",
"request": { "method": "GET", "path": "/api/usecase/associations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLAssociation",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLAssociation" |
| name | string | Association name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/usecase/associations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Association name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created association object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/usecase/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response: Association object (same format as list response element).
Errors:
- 404: Association not found
PUT /api/usecase/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Association name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedAssociation",
"end1": {
"name": "value"
}
}
Response: The updated association object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Association not found
DELETE /api/usecase/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response example:
{
"success": true,
"message": "Deleted association \"\"",
"request": { "method": "DELETE", "path": "/api/usecase/associations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Association not found
Includes
Type: UMLInclude
GET /api/usecase/includes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 includes",
"request": { "method": "GET", "path": "/api/usecase/includes" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLInclude",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInclude" |
| name | string | Include name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/usecase/includes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Include name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created include object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/usecase/includes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Include ID |
Response: Include object (same format as list response element).
Errors:
- 404: Include not found
PUT /api/usecase/includes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Include ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Include name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedInclude"
}
Response: The updated include object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Include not found
DELETE /api/usecase/includes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Include ID |
Response example:
{
"success": true,
"message": "Deleted include \"\"",
"request": { "method": "DELETE", "path": "/api/usecase/includes/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Include not found
Extends
Type: UMLExtend
GET /api/usecase/extends
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 extends",
"request": { "method": "GET", "path": "/api/usecase/extends" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLExtend",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLExtend" |
| name | string | Extend name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/usecase/extends
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Extend name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created extend object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/usecase/extends/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extend ID |
Response: Extend object (same format as list response element).
Errors:
- 404: Extend not found
PUT /api/usecase/extends/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extend ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Extend name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedExtend"
}
Response: The updated extend object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Extend not found
DELETE /api/usecase/extends/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extend ID |
Response example:
{
"success": true,
"message": "Deleted extend \"\"",
"request": { "method": "DELETE", "path": "/api/usecase/extends/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Extend not found
Generalizations
Type: UMLGeneralization
GET /api/usecase/generalizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 generalizations",
"request": { "method": "GET", "path": "/api/usecase/generalizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLGeneralization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLGeneralization" |
| name | string | Generalization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/usecase/generalizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Generalization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created generalization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/usecase/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response: Generalization object (same format as list response element).
Errors:
- 404: Generalization not found
PUT /api/usecase/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Generalization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedGeneralization"
}
Response: The updated generalization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Generalization not found
DELETE /api/usecase/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response example:
{
"success": true,
"message": "Deleted generalization \"\"",
"request": { "method": "DELETE", "path": "/api/usecase/generalizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Generalization not found
Dependencies
Type: UMLDependency
GET /api/usecase/dependencies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 dependencies",
"request": { "method": "GET", "path": "/api/usecase/dependencies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDependency",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDependency" |
| name | string | Dependency name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/usecase/dependencies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Dependency name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created dependency object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/usecase/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response: Dependency object (same format as list response element).
Errors:
- 404: Dependency not found
PUT /api/usecase/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Dependency name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDependency"
}
Response: The updated dependency object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Dependency not found
DELETE /api/usecase/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response example:
{
"success": true,
"message": "Deleted dependency \"\"",
"request": { "method": "DELETE", "path": "/api/usecase/dependencies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Dependency not found
Endpoint count: 5 (diagrams) + 15 (actors, use-cases, subjects) + 2 (children) + 25 (associations, includes, extends, generalizations, dependencies) = 47
Activity Diagram
Prefix: /api/activity/
Diagram types: UMLActivityDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/activity/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/activity/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLActivityDiagram",
"name": "UMLActivityDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLActivityDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/activity/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Activity Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/activity/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/activity/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Activity Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/activity/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLActivityDiagram1\"",
"request": { "method": "DELETE", "path": "/api/activity/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLActivityDiagram1" }
}
Errors:
- 404: Diagram not found
Actions
Types: UMLAction
GET /api/activity/actions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 actions",
"request": { "method": "GET", "path": "/api/activity/actions" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLAction",
"name": "Action1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLAction" |
| name | string | Action name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| body | string | Action body (multiline, present only if set) |
POST /api/activity/actions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Action name |
| body | string | No | Action body (multiline) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyAction"
}
Response: The created action object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/activity/actions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Response: Action object (same format as list response element).
Errors:
- 404: Action not found
PUT /api/activity/actions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Action name |
| documentation | string | No | Documentation text |
| body | string | No | Action body (multiline) |
Request example:
{
"name": "UpdatedAction"
}
Response: The updated action object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Action not found
DELETE /api/activity/actions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Response example:
{
"success": true,
"message": "Deleted action \"Action1\"",
"request": { "method": "DELETE", "path": "/api/activity/actions/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Action1" }
}
Errors:
- 404: Action not found
GET /api/activity/actions/:id/pins
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Response example:
{
"success": true,
"message": "Retrieved 1 pins",
"request": { "method": "GET", "path": "/api/activity/actions/AAAAAAGVxxxx/pins" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLInputPin",
"name": "pin1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInputPin" |
| name | string | Pin name |
| _parentId | string | Parent element ID |
Errors:
- 404: Action not found
POST /api/activity/actions/:id/pins
Child type: UMLInputPin. Fields: name, diagramId.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Pin name |
| diagramId | string | No | Diagram ID where the pin view should be placed. If omitted, auto-detected from the parent action's views. |
Request example:
{
"name": "myPin"
}
Response: The created pin object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Action not found
GET /api/activity/actions/:id/output-pins
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Response example:
{
"success": true,
"message": "Retrieved 1 output pins",
"request": { "method": "GET", "path": "/api/activity/actions/AAAAAAGVxxxx/output-pins" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLOutputPin",
"name": "outputpin1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLOutputPin" |
| name | string | Output Pin name |
| _parentId | string | Parent element ID |
Errors:
- 404: Action not found
POST /api/activity/actions/:id/output-pins
Child type: UMLOutputPin. Fields: name, diagramId.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Action ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Output Pin name |
| diagramId | string | No | Diagram ID where the output pin view should be placed. If omitted, auto-detected from the parent action's views. |
Request example:
{
"name": "myOutputPin"
}
Response: The created output pin object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Action not found
Control Nodes
Types: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode, UMLActivityEdgeConnector
GET /api/activity/control-nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 control nodes",
"request": { "method": "GET", "path": "/api/activity/control-nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInitialNode",
"name": "ControlNode1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode, UMLActivityEdgeConnector) |
| name | string | Control Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/activity/control-nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Control Node name |
| type | string | No | Element type: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode, UMLActivityEdgeConnector (default: "UMLInitialNode") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyControlNode",
"type": "UMLInitialNode"
}
Response: The created control node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLInitialNode,UMLActivityFinalNode,UMLFlowFinalNode,UMLForkNode,UMLJoinNode,UMLMergeNode,UMLDecisionNode,UMLActivityEdgeConnector) - 404: Diagram not found
GET /api/activity/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Response: Control Node object (same format as list response element).
Errors:
- 404: Control Node not found
PUT /api/activity/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Control Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedControlNode"
}
Response: The updated control node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Control Node not found
DELETE /api/activity/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Response example:
{
"success": true,
"message": "Deleted control node \"ControlNode1\"",
"request": { "method": "DELETE", "path": "/api/activity/control-nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ControlNode1" }
}
Errors:
- 404: Control Node not found
Object Nodes
Types: UMLObjectNode, UMLCentralBufferNode, UMLDataStoreNode
GET /api/activity/object-nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 object nodes",
"request": { "method": "GET", "path": "/api/activity/object-nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLObjectNode",
"name": "ObjectNode1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLObjectNode, UMLCentralBufferNode, UMLDataStoreNode) |
| name | string | Object Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/activity/object-nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Object Node name |
| type | string | No | Element type: UMLObjectNode, UMLCentralBufferNode, UMLDataStoreNode (default: "UMLObjectNode") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyObjectNode",
"type": "UMLObjectNode"
}
Response: The created object node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLObjectNode,UMLCentralBufferNode,UMLDataStoreNode) - 404: Diagram not found
GET /api/activity/object-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Node ID |
Response: Object Node object (same format as list response element).
Errors:
- 404: Object Node not found
PUT /api/activity/object-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Object Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedObjectNode"
}
Response: The updated object node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Object Node not found
DELETE /api/activity/object-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Node ID |
Response example:
{
"success": true,
"message": "Deleted object node \"ObjectNode1\"",
"request": { "method": "DELETE", "path": "/api/activity/object-nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ObjectNode1" }
}
Errors:
- 404: Object Node not found
Partitions
Types: UMLActivityPartition
GET /api/activity/partitions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 partitions",
"request": { "method": "GET", "path": "/api/activity/partitions" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLActivityPartition",
"name": "Partition1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLActivityPartition" |
| name | string | Partition name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/activity/partitions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Partition name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPartition"
}
Response: The created partition object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/activity/partitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Partition ID |
Response: Partition object (same format as list response element).
Errors:
- 404: Partition not found
PUT /api/activity/partitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Partition ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Partition name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPartition"
}
Response: The updated partition object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Partition not found
DELETE /api/activity/partitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Partition ID |
Response example:
{
"success": true,
"message": "Deleted partition \"Partition1\"",
"request": { "method": "DELETE", "path": "/api/activity/partitions/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Partition1" }
}
Errors:
- 404: Partition not found
Regions
Types: UMLExpansionRegion, UMLInterruptibleActivityRegion
GET /api/activity/regions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 regions",
"request": { "method": "GET", "path": "/api/activity/regions" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLExpansionRegion",
"name": "Region1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLExpansionRegion, UMLInterruptibleActivityRegion) |
| name | string | Region name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/activity/regions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Region name |
| type | string | No | Element type: UMLExpansionRegion, UMLInterruptibleActivityRegion (default: "UMLExpansionRegion") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyRegion",
"type": "UMLExpansionRegion"
}
Response: The created region object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLExpansionRegion,UMLInterruptibleActivityRegion) - 404: Diagram not found
GET /api/activity/regions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Region ID |
Response: Region object (same format as list response element).
Errors:
- 404: Region not found
PUT /api/activity/regions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Region ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Region name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedRegion"
}
Response: The updated region object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Region not found
DELETE /api/activity/regions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Region ID |
Response example:
{
"success": true,
"message": "Deleted region \"Region1\"",
"request": { "method": "DELETE", "path": "/api/activity/regions/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Region1" }
}
Errors:
- 404: Region not found
Control Flows
Type: UMLControlFlow
GET /api/activity/control-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 control flows",
"request": { "method": "GET", "path": "/api/activity/control-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLControlFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLControlFlow" |
| name | string | Control Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/activity/control-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Control Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created control flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/activity/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Response: Control Flow object (same format as list response element).
Errors:
- 404: Control Flow not found
PUT /api/activity/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Control Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedControlFlow"
}
Response: The updated control flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Control Flow not found
DELETE /api/activity/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Response example:
{
"success": true,
"message": "Deleted control flow \"\"",
"request": { "method": "DELETE", "path": "/api/activity/control-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Control Flow not found
Object Flows
Type: UMLObjectFlow
GET /api/activity/object-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 object flows",
"request": { "method": "GET", "path": "/api/activity/object-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLObjectFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLObjectFlow" |
| name | string | Object Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/activity/object-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Object Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created object flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/activity/object-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Flow ID |
Response: Object Flow object (same format as list response element).
Errors:
- 404: Object Flow not found
PUT /api/activity/object-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Object Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedObjectFlow"
}
Response: The updated object flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Object Flow not found
DELETE /api/activity/object-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object Flow ID |
Response example:
{
"success": true,
"message": "Deleted object flow \"\"",
"request": { "method": "DELETE", "path": "/api/activity/object-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Object Flow not found
Exception Handlers
Type: UMLExceptionHandler
GET /api/activity/exception-handlers
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 exception handlers",
"request": { "method": "GET", "path": "/api/activity/exception-handlers" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLExceptionHandler",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLExceptionHandler" |
| name | string | Exception Handler name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/activity/exception-handlers
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Exception Handler name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created exception handler object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/activity/exception-handlers/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Exception Handler ID |
Response: Exception Handler object (same format as list response element).
Errors:
- 404: Exception Handler not found
PUT /api/activity/exception-handlers/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Exception Handler ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Exception Handler name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedExceptionHandler"
}
Response: The updated exception handler object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Exception Handler not found
DELETE /api/activity/exception-handlers/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Exception Handler ID |
Response example:
{
"success": true,
"message": "Deleted exception handler \"\"",
"request": { "method": "DELETE", "path": "/api/activity/exception-handlers/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Exception Handler not found
Activity Interrupts
Type: UMLActivityInterrupt
GET /api/activity/activity-interrupts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 activity interrupts",
"request": { "method": "GET", "path": "/api/activity/activity-interrupts" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLActivityInterrupt",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLActivityInterrupt" |
| name | string | Activity Interrupt name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/activity/activity-interrupts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Activity Interrupt name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created activity interrupt object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/activity/activity-interrupts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Activity Interrupt ID |
Response: Activity Interrupt object (same format as list response element).
Errors:
- 404: Activity Interrupt not found
PUT /api/activity/activity-interrupts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Activity Interrupt ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Activity Interrupt name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedActivityInterrupt"
}
Response: The updated activity interrupt object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Activity Interrupt not found
DELETE /api/activity/activity-interrupts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Activity Interrupt ID |
Response example:
{
"success": true,
"message": "Deleted activity interrupt \"\"",
"request": { "method": "DELETE", "path": "/api/activity/activity-interrupts/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Activity Interrupt not found
Endpoint count: 5 (diagrams) + 25 (actions, control-nodes, object-nodes, partitions, regions) + 4 (children) + 20 (control-flows, object-flows, exception-handlers, activity-interrupts) = 54
State Machine Diagram
Prefix: /api/statemachine/
Diagram types: UMLStatechartDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/statemachine/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/statemachine/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLStatechartDiagram",
"name": "UMLStatechartDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLStatechartDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/statemachine/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My State Machine Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/statemachine/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/statemachine/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed State Machine Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/statemachine/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLStatechartDiagram1\"",
"request": { "method": "DELETE", "path": "/api/statemachine/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLStatechartDiagram1" }
}
Errors:
- 404: Diagram not found
States
Types: UMLState, UMLSubmachineState
GET /api/statemachine/states
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 states",
"request": { "method": "GET", "path": "/api/statemachine/states" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLState",
"name": "State1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLState, UMLSubmachineState) |
| name | string | State name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/statemachine/states
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | State name |
| type | string | No | Element type: UMLState, UMLSubmachineState (default: "UMLState") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyState",
"type": "UMLState"
}
Response: The created state object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLState,UMLSubmachineState) - 404: Diagram not found
GET /api/statemachine/states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State ID |
Response: State object (same format as list response element).
Errors:
- 404: State not found
PUT /api/statemachine/states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | State name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedState"
}
Response: The updated state object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: State not found
DELETE /api/statemachine/states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State ID |
Response example:
{
"success": true,
"message": "Deleted state \"State1\"",
"request": { "method": "DELETE", "path": "/api/statemachine/states/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "State1" }
}
Errors:
- 404: State not found
GET /api/statemachine/states/:id/regions
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State ID |
Response example:
{
"success": true,
"message": "Retrieved 1 regions",
"request": { "method": "GET", "path": "/api/statemachine/states/AAAAAAGVxxxx/regions" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLRegion",
"name": "region1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLRegion" |
| name | string | Region name |
| _parentId | string | Parent element ID |
Errors:
- 404: State not found
POST /api/statemachine/states/:id/regions
Child type: UMLRegion. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | State ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Region name |
Request example:
{
"name": "myRegion"
}
Response: The created region object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: State not found
Pseudostates
Types: UMLPseudostate
GET /api/statemachine/pseudostates
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 pseudostates",
"request": { "method": "GET", "path": "/api/statemachine/pseudostates" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLPseudostate",
"name": "Pseudostate1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLPseudostate" |
| name | string | Pseudostate name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/statemachine/pseudostates
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Pseudostate name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPseudostate"
}
Response: The created pseudostate object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/statemachine/pseudostates/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Pseudostate ID |
Response: Pseudostate object (same format as list response element).
Errors:
- 404: Pseudostate not found
PUT /api/statemachine/pseudostates/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Pseudostate ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Pseudostate name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPseudostate"
}
Response: The updated pseudostate object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Pseudostate not found
DELETE /api/statemachine/pseudostates/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Pseudostate ID |
Response example:
{
"success": true,
"message": "Deleted pseudostate \"Pseudostate1\"",
"request": { "method": "DELETE", "path": "/api/statemachine/pseudostates/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Pseudostate1" }
}
Errors:
- 404: Pseudostate not found
Final States
Types: UMLFinalState
GET /api/statemachine/final-states
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 final states",
"request": { "method": "GET", "path": "/api/statemachine/final-states" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLFinalState",
"name": "FinalState1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLFinalState" |
| name | string | Final State name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/statemachine/final-states
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Final State name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyFinalState"
}
Response: The created final state object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/statemachine/final-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Final State ID |
Response: Final State object (same format as list response element).
Errors:
- 404: Final State not found
PUT /api/statemachine/final-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Final State ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Final State name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedFinalState"
}
Response: The updated final state object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Final State not found
DELETE /api/statemachine/final-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Final State ID |
Response example:
{
"success": true,
"message": "Deleted final state \"FinalState1\"",
"request": { "method": "DELETE", "path": "/api/statemachine/final-states/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "FinalState1" }
}
Errors:
- 404: Final State not found
Pseudostate Creation
When creating a pseudostate via POST /api/statemachine/pseudostates, include pseudostateKind in the request body.
Valid values: initial, deepHistory, shallowHistory, join, fork, junction, choice, entryPoint, exitPoint
Transitions
Type: UMLTransition
GET /api/statemachine/transitions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 transitions",
"request": { "method": "GET", "path": "/api/statemachine/transitions" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLTransition",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTransition" |
| name | string | Transition name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/statemachine/transitions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Transition name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created transition object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/statemachine/transitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Transition ID |
Response: Transition object (same format as list response element).
Errors:
- 404: Transition not found
PUT /api/statemachine/transitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Transition ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Transition name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedTransition"
}
Response: The updated transition object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Transition not found
DELETE /api/statemachine/transitions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Transition ID |
Response example:
{
"success": true,
"message": "Deleted transition \"\"",
"request": { "method": "DELETE", "path": "/api/statemachine/transitions/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Transition not found
Endpoint count: 5 (diagrams) + 15 (states, pseudostates, final-states) + 2 (children) + 5 (transitions) = 27
Component Diagram
Prefix: /api/component/
Diagram types: UMLComponentDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/component/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/component/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLComponentDiagram",
"name": "UMLComponentDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLComponentDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/component/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Component Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/component/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/component/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Component Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/component/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLComponentDiagram1\"",
"request": { "method": "DELETE", "path": "/api/component/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLComponentDiagram1" }
}
Errors:
- 404: Diagram not found
Components
Types: UMLComponent
GET /api/component/components
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 components",
"request": { "method": "GET", "path": "/api/component/components" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLComponent",
"name": "Component1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLComponent" |
| name | string | Component name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/component/components
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Component name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyComponent"
}
Response: The created component object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/component/components/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component ID |
Response: Component object (same format as list response element).
Errors:
- 404: Component not found
PUT /api/component/components/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Component name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedComponent"
}
Response: The updated component object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Component not found
DELETE /api/component/components/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component ID |
Response example:
{
"success": true,
"message": "Deleted component \"Component1\"",
"request": { "method": "DELETE", "path": "/api/component/components/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Component1" }
}
Errors:
- 404: Component not found
Artifacts
Types: UMLArtifact
GET /api/component/artifacts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 artifacts",
"request": { "method": "GET", "path": "/api/component/artifacts" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLArtifact",
"name": "Artifact1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLArtifact" |
| name | string | Artifact name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| fileName | string | File name (present only if set) |
POST /api/component/artifacts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Artifact name |
| fileName | string | No | File name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyArtifact"
}
Response: The created artifact object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/component/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Response: Artifact object (same format as list response element).
Errors:
- 404: Artifact not found
PUT /api/component/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Artifact name |
| documentation | string | No | Documentation text |
| fileName | string | No | File name |
Request example:
{
"name": "UpdatedArtifact"
}
Response: The updated artifact object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Artifact not found
DELETE /api/component/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Response example:
{
"success": true,
"message": "Deleted artifact \"Artifact1\"",
"request": { "method": "DELETE", "path": "/api/component/artifacts/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Artifact1" }
}
Errors:
- 404: Artifact not found
Component Realizations
Type: UMLComponentRealization
GET /api/component/component-realizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 component realizations",
"request": { "method": "GET", "path": "/api/component/component-realizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLComponentRealization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLComponentRealization" |
| name | string | Component Realization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/component/component-realizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Component Realization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created component realization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/component/component-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Realization ID |
Response: Component Realization object (same format as list response element).
Errors:
- 404: Component Realization not found
PUT /api/component/component-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Realization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Component Realization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedComponentRealization"
}
Response: The updated component realization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Component Realization not found
DELETE /api/component/component-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Realization ID |
Response example:
{
"success": true,
"message": "Deleted component realization \"\"",
"request": { "method": "DELETE", "path": "/api/component/component-realizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Component Realization not found
Dependencies
Type: UMLDependency
GET /api/component/dependencies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 dependencies",
"request": { "method": "GET", "path": "/api/component/dependencies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDependency",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDependency" |
| name | string | Dependency name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/component/dependencies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Dependency name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created dependency object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/component/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response: Dependency object (same format as list response element).
Errors:
- 404: Dependency not found
PUT /api/component/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Dependency name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDependency"
}
Response: The updated dependency object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Dependency not found
DELETE /api/component/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response example:
{
"success": true,
"message": "Deleted dependency \"\"",
"request": { "method": "DELETE", "path": "/api/component/dependencies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Dependency not found
Generalizations
Type: UMLGeneralization
GET /api/component/generalizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 generalizations",
"request": { "method": "GET", "path": "/api/component/generalizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLGeneralization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLGeneralization" |
| name | string | Generalization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/component/generalizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Generalization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created generalization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/component/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response: Generalization object (same format as list response element).
Errors:
- 404: Generalization not found
PUT /api/component/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Generalization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedGeneralization"
}
Response: The updated generalization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Generalization not found
DELETE /api/component/generalizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Generalization ID |
Response example:
{
"success": true,
"message": "Deleted generalization \"\"",
"request": { "method": "DELETE", "path": "/api/component/generalizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Generalization not found
Interface Realizations
Type: UMLInterfaceRealization
GET /api/component/interface-realizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interface realizations",
"request": { "method": "GET", "path": "/api/component/interface-realizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLInterfaceRealization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInterfaceRealization" |
| name | string | Interface Realization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/component/interface-realizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Interface Realization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created interface realization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/component/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Response: Interface Realization object (same format as list response element).
Errors:
- 404: Interface Realization not found
PUT /api/component/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interface Realization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedInterfaceRealization"
}
Response: The updated interface realization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Interface Realization not found
DELETE /api/component/interface-realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interface Realization ID |
Response example:
{
"success": true,
"message": "Deleted interface realization \"\"",
"request": { "method": "DELETE", "path": "/api/component/interface-realizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Interface Realization not found
Endpoint count: 5 (diagrams) + 10 (components, artifacts) + 20 (component-realizations, dependencies, generalizations, interface-realizations) = 35
Deployment Diagram
Prefix: /api/deployment/
Diagram types: UMLDeploymentDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/deployment/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/deployment/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLDeploymentDiagram",
"name": "UMLDeploymentDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDeploymentDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/deployment/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Deployment Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/deployment/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/deployment/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Deployment Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/deployment/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLDeploymentDiagram1\"",
"request": { "method": "DELETE", "path": "/api/deployment/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLDeploymentDiagram1" }
}
Errors:
- 404: Diagram not found
Nodes
Types: UMLNode
GET /api/deployment/nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 nodes",
"request": { "method": "GET", "path": "/api/deployment/nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLNode",
"name": "Node1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLNode" |
| name | string | Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/deployment/nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Node name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyNode"
}
Response: The created node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/deployment/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response: Node object (same format as list response element).
Errors:
- 404: Node not found
PUT /api/deployment/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedNode"
}
Response: The updated node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Node not found
DELETE /api/deployment/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response example:
{
"success": true,
"message": "Deleted node \"Node1\"",
"request": { "method": "DELETE", "path": "/api/deployment/nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Node1" }
}
Errors:
- 404: Node not found
Node Instances
Types: UMLNodeInstance
GET /api/deployment/node-instances
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 node instances",
"request": { "method": "GET", "path": "/api/deployment/node-instances" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLNodeInstance",
"name": "NodeInstance1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLNodeInstance" |
| name | string | Node Instance name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/deployment/node-instances
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Node Instance name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyNodeInstance"
}
Response: The created node instance object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/deployment/node-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node Instance ID |
Response: Node Instance object (same format as list response element).
Errors:
- 404: Node Instance not found
PUT /api/deployment/node-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node Instance ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Node Instance name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedNodeInstance"
}
Response: The updated node instance object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Node Instance not found
DELETE /api/deployment/node-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node Instance ID |
Response example:
{
"success": true,
"message": "Deleted node instance \"NodeInstance1\"",
"request": { "method": "DELETE", "path": "/api/deployment/node-instances/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "NodeInstance1" }
}
Errors:
- 404: Node Instance not found
Artifact Instances
Types: UMLArtifactInstance
GET /api/deployment/artifact-instances
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 artifact instances",
"request": { "method": "GET", "path": "/api/deployment/artifact-instances" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLArtifactInstance",
"name": "ArtifactInstance1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLArtifactInstance" |
| name | string | Artifact Instance name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/deployment/artifact-instances
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Artifact Instance name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyArtifactInstance"
}
Response: The created artifact instance object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/deployment/artifact-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact Instance ID |
Response: Artifact Instance object (same format as list response element).
Errors:
- 404: Artifact Instance not found
PUT /api/deployment/artifact-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact Instance ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Artifact Instance name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedArtifactInstance"
}
Response: The updated artifact instance object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Artifact Instance not found
DELETE /api/deployment/artifact-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact Instance ID |
Response example:
{
"success": true,
"message": "Deleted artifact instance \"ArtifactInstance1\"",
"request": { "method": "DELETE", "path": "/api/deployment/artifact-instances/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ArtifactInstance1" }
}
Errors:
- 404: Artifact Instance not found
Component Instances
Types: UMLComponentInstance
GET /api/deployment/component-instances
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 component instances",
"request": { "method": "GET", "path": "/api/deployment/component-instances" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLComponentInstance",
"name": "ComponentInstance1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLComponentInstance" |
| name | string | Component Instance name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/deployment/component-instances
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Component Instance name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyComponentInstance"
}
Response: The created component instance object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/deployment/component-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Instance ID |
Response: Component Instance object (same format as list response element).
Errors:
- 404: Component Instance not found
PUT /api/deployment/component-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Instance ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Component Instance name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedComponentInstance"
}
Response: The updated component instance object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Component Instance not found
DELETE /api/deployment/component-instances/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Component Instance ID |
Response example:
{
"success": true,
"message": "Deleted component instance \"ComponentInstance1\"",
"request": { "method": "DELETE", "path": "/api/deployment/component-instances/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ComponentInstance1" }
}
Errors:
- 404: Component Instance not found
Artifacts
Types: UMLArtifact
GET /api/deployment/artifacts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 artifacts",
"request": { "method": "GET", "path": "/api/deployment/artifacts" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLArtifact",
"name": "Artifact1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLArtifact" |
| name | string | Artifact name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/deployment/artifacts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Artifact name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyArtifact"
}
Response: The created artifact object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/deployment/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Response: Artifact object (same format as list response element).
Errors:
- 404: Artifact not found
PUT /api/deployment/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Artifact name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedArtifact"
}
Response: The updated artifact object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Artifact not found
DELETE /api/deployment/artifacts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Artifact ID |
Response example:
{
"success": true,
"message": "Deleted artifact \"Artifact1\"",
"request": { "method": "DELETE", "path": "/api/deployment/artifacts/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Artifact1" }
}
Errors:
- 404: Artifact not found
Deployments
Type: UMLDeployment
GET /api/deployment/deployments
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 deployments",
"request": { "method": "GET", "path": "/api/deployment/deployments" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDeployment",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDeployment" |
| name | string | Deployment name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/deployment/deployments
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Deployment name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created deployment object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/deployment/deployments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Deployment ID |
Response: Deployment object (same format as list response element).
Errors:
- 404: Deployment not found
PUT /api/deployment/deployments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Deployment ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Deployment name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDeployment"
}
Response: The updated deployment object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Deployment not found
DELETE /api/deployment/deployments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Deployment ID |
Response example:
{
"success": true,
"message": "Deleted deployment \"\"",
"request": { "method": "DELETE", "path": "/api/deployment/deployments/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Deployment not found
Communication Paths
Type: UMLCommunicationPath (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/deployment/communication-paths
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 communication paths",
"request": { "method": "GET", "path": "/api/deployment/communication-paths" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLCommunicationPath",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLCommunicationPath" |
| name | string | Communication Path name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/deployment/communication-paths
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Communication Path name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created communication path object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/deployment/communication-paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Communication Path ID |
Response: Communication Path object (same format as list response element).
Errors:
- 404: Communication Path not found
PUT /api/deployment/communication-paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Communication Path ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Communication Path name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedCommunicationPath",
"end1": {
"name": "value"
}
}
Response: The updated communication path object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Communication Path not found
DELETE /api/deployment/communication-paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Communication Path ID |
Response example:
{
"success": true,
"message": "Deleted communication path \"\"",
"request": { "method": "DELETE", "path": "/api/deployment/communication-paths/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Communication Path not found
Dependencies
Type: UMLDependency
GET /api/deployment/dependencies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 dependencies",
"request": { "method": "GET", "path": "/api/deployment/dependencies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDependency",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDependency" |
| name | string | Dependency name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/deployment/dependencies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Dependency name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created dependency object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/deployment/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response: Dependency object (same format as list response element).
Errors:
- 404: Dependency not found
PUT /api/deployment/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Dependency name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDependency"
}
Response: The updated dependency object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Dependency not found
DELETE /api/deployment/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response example:
{
"success": true,
"message": "Deleted dependency \"\"",
"request": { "method": "DELETE", "path": "/api/deployment/dependencies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Dependency not found
Endpoint count: 5 (diagrams) + 25 (nodes, node-instances, artifact-instances, component-instances, artifacts) + 15 (deployments, communication-paths, dependencies) = 45
Object Diagram
Prefix: /api/object/
Diagram types: UMLObjectDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/object/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/object/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLObjectDiagram",
"name": "UMLObjectDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLObjectDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/object/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Object Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/object/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/object/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Object Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/object/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLObjectDiagram1\"",
"request": { "method": "DELETE", "path": "/api/object/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLObjectDiagram1" }
}
Errors:
- 404: Diagram not found
Objects
Types: UMLObject
GET /api/object/objects
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 objects",
"request": { "method": "GET", "path": "/api/object/objects" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLObject",
"name": "Object1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLObject" |
| name | string | Object name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/object/objects
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Object name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyObject"
}
Response: The created object object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/object/objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object ID |
Response: Object object (same format as list response element).
Errors:
- 404: Object not found
PUT /api/object/objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Object name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedObject"
}
Response: The updated object object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Object not found
DELETE /api/object/objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object ID |
Response example:
{
"success": true,
"message": "Deleted object \"Object1\"",
"request": { "method": "DELETE", "path": "/api/object/objects/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Object1" }
}
Errors:
- 404: Object not found
GET /api/object/objects/:id/slots
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object ID |
Response example:
{
"success": true,
"message": "Retrieved 1 slots",
"request": { "method": "GET", "path": "/api/object/objects/AAAAAAGVxxxx/slots" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLSlot",
"name": "slot1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLSlot" |
| name | string | Slot name |
| _parentId | string | Parent element ID |
Errors:
- 404: Object not found
POST /api/object/objects/:id/slots
Child type: UMLSlot. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Object ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Slot name |
Request example:
{
"name": "mySlot"
}
Response: The created slot object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Object not found
Links
Type: UMLLink (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/object/links
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 links",
"request": { "method": "GET", "path": "/api/object/links" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLLink",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLLink" |
| name | string | Link name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/object/links
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Link name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created link object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/object/links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Link ID |
Response: Link object (same format as list response element).
Errors:
- 404: Link not found
PUT /api/object/links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Link ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Link name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedLink",
"end1": {
"name": "value"
}
}
Response: The updated link object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Link not found
DELETE /api/object/links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Link ID |
Response example:
{
"success": true,
"message": "Deleted link \"\"",
"request": { "method": "DELETE", "path": "/api/object/links/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Link not found
Endpoint count: 5 (diagrams) + 5 (objects) + 2 (children) + 5 (links) = 17
Communication Diagram
Prefix: /api/communication/
Diagram types: UMLCommunicationDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/communication/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/communication/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLCommunicationDiagram",
"name": "UMLCommunicationDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLCommunicationDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/communication/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Communication Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/communication/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/communication/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Communication Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/communication/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLCommunicationDiagram1\"",
"request": { "method": "DELETE", "path": "/api/communication/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLCommunicationDiagram1" }
}
Errors:
- 404: Diagram not found
Lifelines
Types: UMLLifeline
GET /api/communication/lifelines
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 lifelines",
"request": { "method": "GET", "path": "/api/communication/lifelines" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLLifeline",
"name": "Lifeline1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLLifeline" |
| name | string | Lifeline name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/communication/lifelines
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Lifeline name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyLifeline"
}
Response: The created lifeline object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/communication/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response: Lifeline object (same format as list response element).
Errors:
- 404: Lifeline not found
PUT /api/communication/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Lifeline name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedLifeline"
}
Response: The updated lifeline object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Lifeline not found
DELETE /api/communication/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response example:
{
"success": true,
"message": "Deleted lifeline \"Lifeline1\"",
"request": { "method": "DELETE", "path": "/api/communication/lifelines/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Lifeline1" }
}
Errors:
- 404: Lifeline not found
Connectors
Type: UMLConnector (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/communication/connectors
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 connectors",
"request": { "method": "GET", "path": "/api/communication/connectors" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLConnector",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLConnector" |
| name | string | Connector name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/communication/connectors
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Connector name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created connector object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/communication/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response: Connector object (same format as list response element).
Errors:
- 404: Connector not found
PUT /api/communication/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Connector name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedConnector",
"end1": {
"name": "value"
}
}
Response: The updated connector object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Connector not found
DELETE /api/communication/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response example:
{
"success": true,
"message": "Deleted connector \"\"",
"request": { "method": "DELETE", "path": "/api/communication/connectors/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Connector not found
Endpoint count: 5 (diagrams) + 5 (lifelines) + 5 (connectors) = 15
Composite Structure Diagram
Prefix: /api/composite/
Diagram types: UMLCompositeStructureDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/composite/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/composite/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLCompositeStructureDiagram",
"name": "UMLCompositeStructureDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLCompositeStructureDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/composite/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Composite Structure Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/composite/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/composite/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Composite Structure Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/composite/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLCompositeStructureDiagram1\"",
"request": { "method": "DELETE", "path": "/api/composite/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLCompositeStructureDiagram1" }
}
Errors:
- 404: Diagram not found
Ports
Types: UMLPort
GET /api/composite/ports
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 ports",
"request": { "method": "GET", "path": "/api/composite/ports" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLPort",
"name": "Port1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLPort" |
| name | string | Port name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/composite/ports
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Port name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPort"
}
Response: The created port object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/composite/ports/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Port ID |
Response: Port object (same format as list response element).
Errors:
- 404: Port not found
PUT /api/composite/ports/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Port ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Port name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPort"
}
Response: The updated port object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Port not found
DELETE /api/composite/ports/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Port ID |
Response example:
{
"success": true,
"message": "Deleted port \"Port1\"",
"request": { "method": "DELETE", "path": "/api/composite/ports/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Port1" }
}
Errors:
- 404: Port not found
Parts
Types: UMLPart
GET /api/composite/parts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 parts",
"request": { "method": "GET", "path": "/api/composite/parts" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLPart",
"name": "Part1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLPart" |
| name | string | Part name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/composite/parts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Part name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPart"
}
Response: The created part object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/composite/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Response: Part object (same format as list response element).
Errors:
- 404: Part not found
PUT /api/composite/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Part name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPart"
}
Response: The updated part object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Part not found
DELETE /api/composite/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Response example:
{
"success": true,
"message": "Deleted part \"Part1\"",
"request": { "method": "DELETE", "path": "/api/composite/parts/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Part1" }
}
Errors:
- 404: Part not found
Collaborations
Types: UMLCollaboration
GET /api/composite/collaborations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 collaborations",
"request": { "method": "GET", "path": "/api/composite/collaborations" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLCollaboration",
"name": "Collaboration1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLCollaboration" |
| name | string | Collaboration name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/composite/collaborations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Collaboration name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyCollaboration"
}
Response: The created collaboration object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/composite/collaborations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration ID |
Response: Collaboration object (same format as list response element).
Errors:
- 404: Collaboration not found
PUT /api/composite/collaborations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Collaboration name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedCollaboration"
}
Response: The updated collaboration object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Collaboration not found
DELETE /api/composite/collaborations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration ID |
Response example:
{
"success": true,
"message": "Deleted collaboration \"Collaboration1\"",
"request": { "method": "DELETE", "path": "/api/composite/collaborations/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Collaboration1" }
}
Errors:
- 404: Collaboration not found
Collaboration Uses
Types: UMLCollaborationUse
GET /api/composite/collaboration-uses
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 collaboration uses",
"request": { "method": "GET", "path": "/api/composite/collaboration-uses" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLCollaborationUse",
"name": "CollaborationUse1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLCollaborationUse" |
| name | string | Collaboration Use name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/composite/collaboration-uses
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Collaboration Use name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyCollaborationUse"
}
Response: The created collaboration use object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/composite/collaboration-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration Use ID |
Response: Collaboration Use object (same format as list response element).
Errors:
- 404: Collaboration Use not found
PUT /api/composite/collaboration-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration Use ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Collaboration Use name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedCollaborationUse"
}
Response: The updated collaboration use object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Collaboration Use not found
DELETE /api/composite/collaboration-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Collaboration Use ID |
Response example:
{
"success": true,
"message": "Deleted collaboration use \"CollaborationUse1\"",
"request": { "method": "DELETE", "path": "/api/composite/collaboration-uses/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "CollaborationUse1" }
}
Errors:
- 404: Collaboration Use not found
Role Bindings
Type: UMLRoleBinding (hasEnds)
End fields: name, navigable, aggregation, multiplicity
GET /api/composite/role-bindings
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 role bindings",
"request": { "method": "GET", "path": "/api/composite/role-bindings" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLRoleBinding",
"name": "",
"_parentId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
},
"end2": {
"reference": "AAAAAAGVyyyy",
"name": "",
"navigable": "",
"aggregation": "",
"multiplicity": ""
}
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLRoleBinding" |
| name | string | Role Binding name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| end1 | object | Source endpoint |
| end1.reference | string | Source element ID |
| end1.name | string | Name |
| end1.navigable | string | Navigable |
| end1.aggregation | string | Aggregation |
| end1.multiplicity | string | Multiplicity |
| end2 | object | Target endpoint |
| end2.reference | string | Target element ID |
| end2.name | string | Name |
| end2.navigable | string | Navigable |
| end2.aggregation | string | Aggregation |
| end2.multiplicity | string | Multiplicity |
POST /api/composite/role-bindings
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| end1 | object | Yes | Source endpoint |
| end1.reference | string | Yes | Source element ID (must exist on the diagram) |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | Yes | Target endpoint |
| end2.reference | string | Yes | Target element ID (must exist on the diagram) |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
| name | string | No | Role Binding name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"end1": {
"reference": "AAAAAAGVxxxx"
},
"end2": {
"reference": "AAAAAAGVyyyy"
}
}
Response: The created role binding object.
Errors:
- 400:
diagramIdis required - 400:
end1.referenceorend2.referenceis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/composite/role-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Role Binding ID |
Response: Role Binding object (same format as list response element).
Errors:
- 404: Role Binding not found
PUT /api/composite/role-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Role Binding ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Role Binding name |
| documentation | string | No | Documentation text |
| end1 | object | No | Source endpoint update |
| end1.name | string | No | Name |
| end1.navigable | string | No | Navigable |
| end1.aggregation | string | No | Aggregation |
| end1.multiplicity | string | No | Multiplicity |
| end2 | object | No | Target endpoint update |
| end2.name | string | No | Name |
| end2.navigable | string | No | Navigable |
| end2.aggregation | string | No | Aggregation |
| end2.multiplicity | string | No | Multiplicity |
Request example:
{
"name": "updatedRoleBinding",
"end1": {
"name": "value"
}
}
Response: The updated role binding object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 400:
end1orend2is an empty object - 404: Role Binding not found
DELETE /api/composite/role-bindings/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Role Binding ID |
Response example:
{
"success": true,
"message": "Deleted role binding \"\"",
"request": { "method": "DELETE", "path": "/api/composite/role-bindings/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Role Binding not found
Dependencies
Type: UMLDependency
GET /api/composite/dependencies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 dependencies",
"request": { "method": "GET", "path": "/api/composite/dependencies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLDependency",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLDependency" |
| name | string | Dependency name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/composite/dependencies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Dependency name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created dependency object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/composite/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response: Dependency object (same format as list response element).
Errors:
- 404: Dependency not found
PUT /api/composite/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Dependency name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDependency"
}
Response: The updated dependency object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Dependency not found
DELETE /api/composite/dependencies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Dependency ID |
Response example:
{
"success": true,
"message": "Deleted dependency \"\"",
"request": { "method": "DELETE", "path": "/api/composite/dependencies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Dependency not found
Realizations
Type: UMLRealization
GET /api/composite/realizations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 realizations",
"request": { "method": "GET", "path": "/api/composite/realizations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLRealization",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLRealization" |
| name | string | Realization name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/composite/realizations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Realization name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created realization object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/composite/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Response: Realization object (same format as list response element).
Errors:
- 404: Realization not found
PUT /api/composite/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Realization name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedRealization"
}
Response: The updated realization object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Realization not found
DELETE /api/composite/realizations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Realization ID |
Response example:
{
"success": true,
"message": "Deleted realization \"\"",
"request": { "method": "DELETE", "path": "/api/composite/realizations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Realization not found
Endpoint count: 5 (diagrams) + 20 (ports, parts, collaborations, collaboration-uses) + 15 (role-bindings, dependencies, realizations) = 40
Information Flow Diagram
Prefix: /api/infoflow/
Diagram types: UMLInformationFlowDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/infoflow/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/infoflow/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInformationFlowDiagram",
"name": "UMLInformationFlowDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInformationFlowDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/infoflow/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Information Flow Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/infoflow/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/infoflow/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Information Flow Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/infoflow/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLInformationFlowDiagram1\"",
"request": { "method": "DELETE", "path": "/api/infoflow/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLInformationFlowDiagram1" }
}
Errors:
- 404: Diagram not found
Info Items
Types: UMLInformationItem
GET /api/infoflow/info-items
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 info items",
"request": { "method": "GET", "path": "/api/infoflow/info-items" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInformationItem",
"name": "InformationItem1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInformationItem" |
| name | string | Information Item name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/infoflow/info-items
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Information Item name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyInformationItem"
}
Response: The created information item object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/infoflow/info-items/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Item ID |
Response: Information Item object (same format as list response element).
Errors:
- 404: Information Item not found
PUT /api/infoflow/info-items/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Item ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Information Item name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedInformationItem"
}
Response: The updated information item object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Information Item not found
DELETE /api/infoflow/info-items/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Item ID |
Response example:
{
"success": true,
"message": "Deleted information item \"InformationItem1\"",
"request": { "method": "DELETE", "path": "/api/infoflow/info-items/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "InformationItem1" }
}
Errors:
- 404: Information Item not found
Information Flows
Type: UMLInformationFlow
GET /api/infoflow/information-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 information flows",
"request": { "method": "GET", "path": "/api/infoflow/information-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLInformationFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInformationFlow" |
| name | string | Information Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/infoflow/information-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Information Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created information flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/infoflow/information-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Flow ID |
Response: Information Flow object (same format as list response element).
Errors:
- 404: Information Flow not found
PUT /api/infoflow/information-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Information Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedInformationFlow"
}
Response: The updated information flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Information Flow not found
DELETE /api/infoflow/information-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Information Flow ID |
Response example:
{
"success": true,
"message": "Deleted information flow \"\"",
"request": { "method": "DELETE", "path": "/api/infoflow/information-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Information Flow not found
Endpoint count: 5 (diagrams) + 5 (info-items) + 5 (information-flows) = 15
Profile Diagram
Prefix: /api/profile/
Diagram types: UMLProfileDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/profile/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/profile/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLProfileDiagram",
"name": "UMLProfileDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLProfileDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/profile/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Profile Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/profile/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/profile/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Profile Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/profile/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLProfileDiagram1\"",
"request": { "method": "DELETE", "path": "/api/profile/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLProfileDiagram1" }
}
Errors:
- 404: Diagram not found
Profiles
Types: UMLProfile
GET /api/profile/profiles
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 profiles",
"request": { "method": "GET", "path": "/api/profile/profiles" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLProfile",
"name": "Profile1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLProfile" |
| name | string | Profile name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/profile/profiles
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Profile name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyProfile"
}
Response: The created profile object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/profile/profiles/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Profile ID |
Response: Profile object (same format as list response element).
Errors:
- 404: Profile not found
PUT /api/profile/profiles/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Profile ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Profile name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedProfile"
}
Response: The updated profile object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Profile not found
DELETE /api/profile/profiles/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Profile ID |
Response example:
{
"success": true,
"message": "Deleted profile \"Profile1\"",
"request": { "method": "DELETE", "path": "/api/profile/profiles/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Profile1" }
}
Errors:
- 404: Profile not found
Stereotypes
Types: UMLStereotype
GET /api/profile/stereotypes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 stereotypes",
"request": { "method": "GET", "path": "/api/profile/stereotypes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLStereotype",
"name": "Stereotype1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLStereotype" |
| name | string | Stereotype name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/profile/stereotypes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Stereotype name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyStereotype"
}
Response: The created stereotype object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/profile/stereotypes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Response: Stereotype object (same format as list response element).
Errors:
- 404: Stereotype not found
PUT /api/profile/stereotypes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Stereotype name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedStereotype"
}
Response: The updated stereotype object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Stereotype not found
DELETE /api/profile/stereotypes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Response example:
{
"success": true,
"message": "Deleted stereotype \"Stereotype1\"",
"request": { "method": "DELETE", "path": "/api/profile/stereotypes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Stereotype1" }
}
Errors:
- 404: Stereotype not found
GET /api/profile/stereotypes/:id/attributes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Response example:
{
"success": true,
"message": "Retrieved 2 attributes",
"request": { "method": "GET", "path": "/api/profile/stereotypes/AAAAAAGVxxxx/attributes" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLAttribute",
"name": "basePath",
"type": "String",
"visibility": "public",
"isStatic": false,
"defaultValue": "",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: Stereotype not found
POST /api/profile/stereotypes/:id/attributes
Child type: UMLAttribute. Fields: name, type.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Attribute name |
| type | string | No | Type annotation (e.g., String, Boolean, Integer) |
Request example:
{
"name": "basePath",
"type": "String"
}
Response: The created attribute object.
Errors:
- 400: Unknown fields present
- 404: Stereotype not found
GET /api/profile/stereotypes/:id/operations
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Response example:
{
"success": true,
"message": "Retrieved 1 operations",
"request": { "method": "GET", "path": "/api/profile/stereotypes/AAAAAAGVxxxx/operations" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "UMLOperation",
"name": "validate",
"visibility": "public",
"isStatic": false,
"_parentId": "AAAAAAGVxxxx"
}
]
}
Errors:
- 404: Stereotype not found
POST /api/profile/stereotypes/:id/operations
Child type: UMLOperation. Fields: name, visibility, isStatic.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stereotype ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operation name |
| visibility | string | No | Visibility: "public", "protected", "private", "package" |
| isStatic | boolean | No | Whether the operation is static |
Request example:
{
"name": "validate",
"visibility": "public",
"isStatic": false
}
Response: The created operation object.
Errors:
- 400: Unknown fields present
- 404: Stereotype not found
Metaclasses
Types: UMLMetaClass
GET /api/profile/metaclasses
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 metaclasses",
"request": { "method": "GET", "path": "/api/profile/metaclasses" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLMetaClass",
"name": "Metaclass1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLMetaClass" |
| name | string | Metaclass name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/profile/metaclasses
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Metaclass name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyMetaclass"
}
Response: The created metaclass object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/profile/metaclasses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Metaclass ID |
Response: Metaclass object (same format as list response element).
Errors:
- 404: Metaclass not found
PUT /api/profile/metaclasses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Metaclass ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Metaclass name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedMetaclass"
}
Response: The updated metaclass object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Metaclass not found
DELETE /api/profile/metaclasses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Metaclass ID |
Response example:
{
"success": true,
"message": "Deleted metaclass \"Metaclass1\"",
"request": { "method": "DELETE", "path": "/api/profile/metaclasses/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Metaclass1" }
}
Errors:
- 404: Metaclass not found
Extensions
Type: UMLExtension
GET /api/profile/extensions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 extensions",
"request": { "method": "GET", "path": "/api/profile/extensions" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLExtension",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLExtension" |
| name | string | Extension name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/profile/extensions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Extension name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created extension object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/profile/extensions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extension ID |
Response: Extension object (same format as list response element).
Errors:
- 404: Extension not found
PUT /api/profile/extensions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extension ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Extension name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedExtension"
}
Response: The updated extension object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Extension not found
DELETE /api/profile/extensions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Extension ID |
Response example:
{
"success": true,
"message": "Deleted extension \"\"",
"request": { "method": "DELETE", "path": "/api/profile/extensions/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Extension not found
Endpoint count: 5 (diagrams) + 15 (profiles, stereotypes, metaclasses) + 5 (extensions) = 25
Timing Diagram
Prefix: /api/timing/
Diagram types: UMLTimingDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/timing/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/timing/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLTimingDiagram",
"name": "UMLTimingDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTimingDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/timing/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Timing Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/timing/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/timing/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Timing Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/timing/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLTimingDiagram1\"",
"request": { "method": "DELETE", "path": "/api/timing/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLTimingDiagram1" }
}
Errors:
- 404: Diagram not found
Lifelines
Types: UMLLifeline
GET /api/timing/lifelines
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 lifelines",
"request": { "method": "GET", "path": "/api/timing/lifelines" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLLifeline",
"name": "Lifeline1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLLifeline" |
| name | string | Lifeline name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/timing/lifelines
tailViewId pointing to the UMLTimingFrameView on the diagram.Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Lifeline name |
| tailViewId | string | Yes | View ID of the UMLTimingFrameView (container) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyLifeline",
"tailViewId": "AAAAAAGVffff"
}
Response: The created lifeline object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: View not found on diagram (invalid tailViewId)
- 404: Diagram not found
GET /api/timing/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response: Lifeline object (same format as list response element).
Errors:
- 404: Lifeline not found
PUT /api/timing/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Lifeline name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedLifeline"
}
Response: The updated lifeline object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Lifeline not found
DELETE /api/timing/lifelines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Lifeline ID |
Response example:
{
"success": true,
"message": "Deleted lifeline \"Lifeline1\"",
"request": { "method": "DELETE", "path": "/api/timing/lifelines/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Lifeline1" }
}
Errors:
- 404: Lifeline not found
Timing States
Types: UMLTimingState
GET /api/timing/timing-states
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 timing states",
"request": { "method": "GET", "path": "/api/timing/timing-states" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLTimingState",
"name": "TimingState1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTimingState" |
| name | string | Timing State name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/timing/timing-states
tailViewId pointing to the UMLTimingLifelineView on the diagram.Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Timing State name |
| tailViewId | string | Yes | View ID of the UMLTimingLifelineView (container lifeline) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyTimingState",
"tailViewId": "AAAAAAGVllll"
}
Response: The created timing state object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/timing/timing-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Timing State ID |
Response: Timing State object (same format as list response element).
Errors:
- 404: Timing State not found
PUT /api/timing/timing-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Timing State ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Timing State name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedTimingState"
}
Response: The updated timing state object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Timing State not found
DELETE /api/timing/timing-states/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Timing State ID |
Response example:
{
"success": true,
"message": "Deleted timing state \"TimingState1\"",
"request": { "method": "DELETE", "path": "/api/timing/timing-states/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "TimingState1" }
}
Errors:
- 404: Timing State not found
Time Segments
Type: UMLTimeSegment
GET /api/timing/time-segments
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 time segments",
"request": { "method": "GET", "path": "/api/timing/time-segments" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLTimeSegment",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLTimeSegment" |
| name | string | Time Segment name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/timing/time-segments
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Time Segment name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created time segment object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/timing/time-segments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Time Segment ID |
Response: Time Segment object (same format as list response element).
Errors:
- 404: Time Segment not found
PUT /api/timing/time-segments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Time Segment ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Time Segment name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedTimeSegment"
}
Response: The updated time segment object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Time Segment not found
DELETE /api/timing/time-segments/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Time Segment ID |
Response example:
{
"success": true,
"message": "Deleted time segment \"\"",
"request": { "method": "DELETE", "path": "/api/timing/time-segments/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Time Segment not found
Endpoint count: 5 (diagrams) + 10 (lifelines, timing-states) + 5 (time-segments) = 20
Interaction Overview Diagram
Prefix: /api/overview/
Diagram types: UMLInteractionOverviewDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/overview/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/overview/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInteractionOverviewDiagram",
"name": "UMLInteractionOverviewDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInteractionOverviewDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/overview/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Interaction Overview Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/overview/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/overview/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Interaction Overview Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/overview/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"UMLInteractionOverviewDiagram1\"",
"request": { "method": "DELETE", "path": "/api/overview/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "UMLInteractionOverviewDiagram1" }
}
Errors:
- 404: Diagram not found
Interaction Uses
Types: UMLInteractionUseInOverview
GET /api/overview/interaction-uses
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interaction uses",
"request": { "method": "GET", "path": "/api/overview/interaction-uses" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInteractionUseInOverview",
"name": "InteractionUse1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInteractionUseInOverview" |
| name | string | Interaction Use name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/overview/interaction-uses
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Interaction Use name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyInteractionUse"
}
Response: The created interaction use object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/overview/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction Use ID |
Response: Interaction Use object (same format as list response element).
Errors:
- 404: Interaction Use not found
PUT /api/overview/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction Use ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction Use name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedInteractionUse"
}
Response: The updated interaction use object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Interaction Use not found
DELETE /api/overview/interaction-uses/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction Use ID |
Response example:
{
"success": true,
"message": "Deleted interaction use \"InteractionUse1\"",
"request": { "method": "DELETE", "path": "/api/overview/interaction-uses/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "InteractionUse1" }
}
Errors:
- 404: Interaction Use not found
Interactions
Types: UMLInteractionInOverview
GET /api/overview/interactions
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 interactions",
"request": { "method": "GET", "path": "/api/overview/interactions" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInteractionInOverview",
"name": "Interaction1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLInteractionInOverview" |
| name | string | Interaction name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/overview/interactions
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Interaction name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyInteraction"
}
Response: The created interaction object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/overview/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response: Interaction object (same format as list response element).
Errors:
- 404: Interaction not found
PUT /api/overview/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Interaction name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedInteraction"
}
Response: The updated interaction object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Interaction not found
DELETE /api/overview/interactions/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Interaction ID |
Response example:
{
"success": true,
"message": "Deleted interaction \"Interaction1\"",
"request": { "method": "DELETE", "path": "/api/overview/interactions/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Interaction1" }
}
Errors:
- 404: Interaction not found
Control Nodes
Types: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode
GET /api/overview/control-nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 control nodes",
"request": { "method": "GET", "path": "/api/overview/control-nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "UMLInitialNode",
"name": "ControlNode1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode) |
| name | string | Control Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/overview/control-nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Control Node name |
| type | string | No | Element type: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode (default: "UMLInitialNode") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyControlNode",
"type": "UMLInitialNode"
}
Response: The created control node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
UMLInitialNode,UMLActivityFinalNode,UMLFlowFinalNode,UMLForkNode,UMLJoinNode,UMLMergeNode,UMLDecisionNode) - 404: Diagram not found
GET /api/overview/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Response: Control Node object (same format as list response element).
Errors:
- 404: Control Node not found
PUT /api/overview/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Control Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedControlNode"
}
Response: The updated control node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Control Node not found
DELETE /api/overview/control-nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Node ID |
Response example:
{
"success": true,
"message": "Deleted control node \"ControlNode1\"",
"request": { "method": "DELETE", "path": "/api/overview/control-nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ControlNode1" }
}
Errors:
- 404: Control Node not found
Control Flows
Type: UMLControlFlow
GET /api/overview/control-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 control flows",
"request": { "method": "GET", "path": "/api/overview/control-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "UMLControlFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "UMLControlFlow" |
| name | string | Control Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/overview/control-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Control Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created control flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/overview/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Response: Control Flow object (same format as list response element).
Errors:
- 404: Control Flow not found
PUT /api/overview/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Control Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedControlFlow"
}
Response: The updated control flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Control Flow not found
DELETE /api/overview/control-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Control Flow ID |
Response example:
{
"success": true,
"message": "Deleted control flow \"\"",
"request": { "method": "DELETE", "path": "/api/overview/control-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Control Flow not found
Endpoint count: 5 (diagrams) + 15 (interaction-uses, interactions, control-nodes) + 5 (control-flows) = 25
Flowchart Diagram
Prefix: /api/flowchart/
Diagram types: FCFlowchartDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/flowchart/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/flowchart/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "FCFlowchartDiagram",
"name": "FCFlowchartDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "FCFlowchartDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/flowchart/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Flowchart Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/flowchart/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/flowchart/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Flowchart Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/flowchart/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"FCFlowchartDiagram1\"",
"request": { "method": "DELETE", "path": "/api/flowchart/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "FCFlowchartDiagram1" }
}
Errors:
- 404: Diagram not found
Nodes
Types: FCProcess, FCTerminator, FCDecision, FCDelay, FCPredefinedProcess, FCAlternateProcess, FCData, FCDocument, FCMultiDocument, FCPreparation, FCDisplay, FCManualInput, FCManualOperation, FCCard, FCPunchedTape, FCConnector, FCOffPageConnector, FCOr, FCSummingJunction, FCCollate, FCSort, FCMerge, FCExtract, FCStoredData, FCDatabase, FCDirectAccessStorage, FCInternalStorage
GET /api/flowchart/nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 nodes",
"request": { "method": "GET", "path": "/api/flowchart/nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "FCProcess",
"name": "Node1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (FCProcess, FCTerminator, FCDecision, FCDelay, FCPredefinedProcess, FCAlternateProcess, FCData, FCDocument, FCMultiDocument, FCPreparation, FCDisplay, FCManualInput, FCManualOperation, FCCard, FCPunchedTape, FCConnector, FCOffPageConnector, FCOr, FCSummingJunction, FCCollate, FCSort, FCMerge, FCExtract, FCStoredData, FCDatabase, FCDirectAccessStorage, FCInternalStorage) |
| name | string | Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/flowchart/nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Node name |
| type | string | No | Element type: FCProcess, FCTerminator, FCDecision, FCDelay, FCPredefinedProcess, FCAlternateProcess, FCData, FCDocument, FCMultiDocument, FCPreparation, FCDisplay, FCManualInput, FCManualOperation, FCCard, FCPunchedTape, FCConnector, FCOffPageConnector, FCOr, FCSummingJunction, FCCollate, FCSort, FCMerge, FCExtract, FCStoredData, FCDatabase, FCDirectAccessStorage, FCInternalStorage (default: "FCProcess") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyNode",
"type": "FCProcess"
}
Response: The created node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
FCProcess,FCTerminator,FCDecision,FCDelay,FCPredefinedProcess,FCAlternateProcess,FCData,FCDocument,FCMultiDocument,FCPreparation,FCDisplay,FCManualInput,FCManualOperation,FCCard,FCPunchedTape,FCConnector,FCOffPageConnector,FCOr,FCSummingJunction,FCCollate,FCSort,FCMerge,FCExtract,FCStoredData,FCDatabase,FCDirectAccessStorage,FCInternalStorage) - 404: Diagram not found
GET /api/flowchart/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response: Node object (same format as list response element).
Errors:
- 404: Node not found
PUT /api/flowchart/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedNode"
}
Response: The updated node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Node not found
DELETE /api/flowchart/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response example:
{
"success": true,
"message": "Deleted node \"Node1\"",
"request": { "method": "DELETE", "path": "/api/flowchart/nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Node1" }
}
Errors:
- 404: Node not found
Flows
Type: FCFlow
GET /api/flowchart/flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 flows",
"request": { "method": "GET", "path": "/api/flowchart/flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "FCFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "FCFlow" |
| name | string | Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/flowchart/flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/flowchart/flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Flow ID |
Response: Flow object (same format as list response element).
Errors:
- 404: Flow not found
PUT /api/flowchart/flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedFlow"
}
Response: The updated flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Flow not found
DELETE /api/flowchart/flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Flow ID |
Response example:
{
"success": true,
"message": "Deleted flow \"\"",
"request": { "method": "DELETE", "path": "/api/flowchart/flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Flow not found
Endpoint count: 5 (diagrams) + 5 (nodes) + 5 (flows) = 15
DFD Diagram
Prefix: /api/dfd/
Diagram types: DFDDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/dfd/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/dfd/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "DFDDiagram",
"name": "DFDDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "DFDDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/dfd/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My DFD Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/dfd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/dfd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed DFD Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/dfd/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"DFDDiagram1\"",
"request": { "method": "DELETE", "path": "/api/dfd/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "DFDDiagram1" }
}
Errors:
- 404: Diagram not found
External Entities
Types: DFDExternalEntity
GET /api/dfd/external-entities
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 external entities",
"request": { "method": "GET", "path": "/api/dfd/external-entities" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "DFDExternalEntity",
"name": "ExternalEntity1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "DFDExternalEntity" |
| name | string | External Entity name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/dfd/external-entities
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | External Entity name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyExternalEntity"
}
Response: The created external entity object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/dfd/external-entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | External Entity ID |
Response: External Entity object (same format as list response element).
Errors:
- 404: External Entity not found
PUT /api/dfd/external-entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | External Entity ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | External Entity name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedExternalEntity"
}
Response: The updated external entity object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: External Entity not found
DELETE /api/dfd/external-entities/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | External Entity ID |
Response example:
{
"success": true,
"message": "Deleted external entity \"ExternalEntity1\"",
"request": { "method": "DELETE", "path": "/api/dfd/external-entities/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "ExternalEntity1" }
}
Errors:
- 404: External Entity not found
Processes
Types: DFDProcess
GET /api/dfd/processes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 processes",
"request": { "method": "GET", "path": "/api/dfd/processes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "DFDProcess",
"name": "Process1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "DFDProcess" |
| name | string | Process name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/dfd/processes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Process name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyProcess"
}
Response: The created process object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/dfd/processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Process ID |
Response: Process object (same format as list response element).
Errors:
- 404: Process not found
PUT /api/dfd/processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Process ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Process name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedProcess"
}
Response: The updated process object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Process not found
DELETE /api/dfd/processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Process ID |
Response example:
{
"success": true,
"message": "Deleted process \"Process1\"",
"request": { "method": "DELETE", "path": "/api/dfd/processes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Process1" }
}
Errors:
- 404: Process not found
Data Stores
Types: DFDDataStore
GET /api/dfd/data-stores
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 data stores",
"request": { "method": "GET", "path": "/api/dfd/data-stores" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "DFDDataStore",
"name": "DataStore1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "DFDDataStore" |
| name | string | Data Store name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/dfd/data-stores
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Data Store name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyDataStore"
}
Response: The created data store object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/dfd/data-stores/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Store ID |
Response: Data Store object (same format as list response element).
Errors:
- 404: Data Store not found
PUT /api/dfd/data-stores/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Store ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data Store name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedDataStore"
}
Response: The updated data store object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Data Store not found
DELETE /api/dfd/data-stores/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Store ID |
Response example:
{
"success": true,
"message": "Deleted data store \"DataStore1\"",
"request": { "method": "DELETE", "path": "/api/dfd/data-stores/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "DataStore1" }
}
Errors:
- 404: Data Store not found
Data Flows
Type: DFDDataFlow
GET /api/dfd/data-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 data flows",
"request": { "method": "GET", "path": "/api/dfd/data-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "DFDDataFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "DFDDataFlow" |
| name | string | Data Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/dfd/data-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Data Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created data flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/dfd/data-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Flow ID |
Response: Data Flow object (same format as list response element).
Errors:
- 404: Data Flow not found
PUT /api/dfd/data-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDataFlow"
}
Response: The updated data flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Data Flow not found
DELETE /api/dfd/data-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Flow ID |
Response example:
{
"success": true,
"message": "Deleted data flow \"\"",
"request": { "method": "DELETE", "path": "/api/dfd/data-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Data Flow not found
Endpoint count: 5 (diagrams) + 15 (external-entities, processes, data-stores) + 5 (data-flows) = 25
BPMN Diagram
Prefix: /api/bpmn/
Diagram types: BPMNDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/bpmn/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/bpmn/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNDiagram",
"name": "BPMNDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/bpmn/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My BPMN Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/bpmn/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/bpmn/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed BPMN Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/bpmn/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"BPMNDiagram1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "BPMNDiagram1" }
}
Errors:
- 404: Diagram not found
Participants
Types: BPMNParticipant
GET /api/bpmn/participants
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 participants",
"request": { "method": "GET", "path": "/api/bpmn/participants" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNParticipant",
"name": "Participant1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNParticipant" |
| name | string | Participant name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/participants
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Participant name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyParticipant"
}
Response: The created participant object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/bpmn/participants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Participant ID |
Response: Participant object (same format as list response element).
Errors:
- 404: Participant not found
PUT /api/bpmn/participants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Participant ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Participant name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedParticipant"
}
Response: The updated participant object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Participant not found
DELETE /api/bpmn/participants/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Participant ID |
Response example:
{
"success": true,
"message": "Deleted participant \"Participant1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/participants/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Participant1" }
}
Errors:
- 404: Participant not found
GET /api/bpmn/participants/:id/lanes
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Participant ID |
Response example:
{
"success": true,
"message": "Retrieved 1 lanes",
"request": { "method": "GET", "path": "/api/bpmn/participants/AAAAAAGVxxxx/lanes" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "BPMNLane",
"name": "lane1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNLane" |
| name | string | Lane name |
| _parentId | string | Parent element ID |
Errors:
- 404: Participant not found
POST /api/bpmn/participants/:id/lanes
Child type: BPMNLane. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Participant ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Lane name |
Request example:
{
"name": "myLane"
}
Response: The created lane object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Participant not found
Tasks
Types: BPMNTask, BPMNSendTask, BPMNReceiveTask, BPMNServiceTask, BPMNUserTask, BPMNManualTask, BPMNBusinessRuleTask, BPMNScriptTask, BPMNCallActivity
GET /api/bpmn/tasks
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 tasks",
"request": { "method": "GET", "path": "/api/bpmn/tasks" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNTask",
"name": "Task1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNTask, BPMNSendTask, BPMNReceiveTask, BPMNServiceTask, BPMNUserTask, BPMNManualTask, BPMNBusinessRuleTask, BPMNScriptTask, BPMNCallActivity) |
| name | string | Task name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| script | string | Script content (present only for BPMNScriptTask) |
POST /api/bpmn/tasks
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Task name |
| type | string | No | Element type: BPMNTask, BPMNSendTask, BPMNReceiveTask, BPMNServiceTask, BPMNUserTask, BPMNManualTask, BPMNBusinessRuleTask, BPMNScriptTask, BPMNCallActivity (default: "BPMNTask") |
| script | string | No | Script content (only applicable to BPMNScriptTask) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyTask",
"type": "BPMNTask"
}
Response: The created task object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNTask,BPMNSendTask,BPMNReceiveTask,BPMNServiceTask,BPMNUserTask,BPMNManualTask,BPMNBusinessRuleTask,BPMNScriptTask,BPMNCallActivity) - 404: Diagram not found
GET /api/bpmn/tasks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Task ID |
Response: Task object (same format as list response element).
Errors:
- 404: Task not found
PUT /api/bpmn/tasks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Task ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Task name |
| documentation | string | No | Documentation text |
| script | string | No | Script content (only applicable to BPMNScriptTask) |
Request example:
{
"name": "UpdatedTask"
}
Response: The updated task object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Task not found
DELETE /api/bpmn/tasks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Task ID |
Response example:
{
"success": true,
"message": "Deleted task \"Task1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/tasks/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Task1" }
}
Errors:
- 404: Task not found
Sub Processes
Types: BPMNSubProcess, BPMNAdHocSubProcess, BPMNTransaction
GET /api/bpmn/sub-processes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 sub processes",
"request": { "method": "GET", "path": "/api/bpmn/sub-processes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNSubProcess",
"name": "Sub-Process1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNSubProcess, BPMNAdHocSubProcess, BPMNTransaction) |
| name | string | Sub-Process name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/sub-processes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Sub-Process name |
| type | string | No | Element type: BPMNSubProcess, BPMNAdHocSubProcess, BPMNTransaction (default: "BPMNSubProcess") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MySub-Process",
"type": "BPMNSubProcess"
}
Response: The created sub-process object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNSubProcess,BPMNAdHocSubProcess,BPMNTransaction) - 404: Diagram not found
GET /api/bpmn/sub-processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sub-Process ID |
Response: Sub-Process object (same format as list response element).
Errors:
- 404: Sub-Process not found
PUT /api/bpmn/sub-processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sub-Process ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Sub-Process name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedSub-Process"
}
Response: The updated sub-process object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Sub-Process not found
DELETE /api/bpmn/sub-processes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sub-Process ID |
Response example:
{
"success": true,
"message": "Deleted sub-process \"Sub-Process1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/sub-processes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Sub-Process1" }
}
Errors:
- 404: Sub-Process not found
Events
Types: BPMNStartEvent, BPMNIntermediateThrowEvent, BPMNIntermediateCatchEvent, BPMNBoundaryEvent, BPMNEndEvent
GET /api/bpmn/events
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 events",
"request": { "method": "GET", "path": "/api/bpmn/events" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNStartEvent",
"name": "Event1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNStartEvent, BPMNIntermediateThrowEvent, BPMNIntermediateCatchEvent, BPMNBoundaryEvent, BPMNEndEvent) |
| name | string | Event name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/events
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Event name |
| type | string | No | Element type: BPMNStartEvent, BPMNIntermediateThrowEvent, BPMNIntermediateCatchEvent, BPMNBoundaryEvent, BPMNEndEvent (default: "BPMNStartEvent") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyEvent",
"type": "BPMNStartEvent"
}
Response: The created event object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNStartEvent,BPMNIntermediateThrowEvent,BPMNIntermediateCatchEvent,BPMNBoundaryEvent,BPMNEndEvent) - 404: Diagram not found
GET /api/bpmn/events/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Event ID |
Response: Event object (same format as list response element).
Errors:
- 404: Event not found
PUT /api/bpmn/events/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Event ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Event name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedEvent"
}
Response: The updated event object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Event not found
DELETE /api/bpmn/events/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Event ID |
Response example:
{
"success": true,
"message": "Deleted event \"Event1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/events/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Event1" }
}
Errors:
- 404: Event not found
GET /api/bpmn/events/:id/event-definitions
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Event ID |
Response example:
{
"success": true,
"message": "Retrieved 1 event definitions",
"request": { "method": "GET", "path": "/api/bpmn/events/AAAAAAGVxxxx/event-definitions" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "BPMNTimerEventDefinition",
"name": "eventdefinition1",
"type": "",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNTimerEventDefinition" |
| name | string | Event Definition name |
| type | string | Type annotation |
| _parentId | string | Parent element ID |
Errors:
- 404: Event not found
POST /api/bpmn/events/:id/event-definitions
Child type: BPMNTimerEventDefinition. Fields: name, type.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Event ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Event Definition name |
| type | string | No | Type annotation |
Request example:
{
"name": "myEventDefinition",
"type": "string"
}
Response: The created event definition object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Event not found
Gateways
Types: BPMNExclusiveGateway, BPMNInclusiveGateway, BPMNComplexGateway, BPMNParallelGateway, BPMNEventBasedGateway
GET /api/bpmn/gateways
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 gateways",
"request": { "method": "GET", "path": "/api/bpmn/gateways" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNExclusiveGateway",
"name": "Gateway1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNExclusiveGateway, BPMNInclusiveGateway, BPMNComplexGateway, BPMNParallelGateway, BPMNEventBasedGateway) |
| name | string | Gateway name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/gateways
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Gateway name |
| type | string | No | Element type: BPMNExclusiveGateway, BPMNInclusiveGateway, BPMNComplexGateway, BPMNParallelGateway, BPMNEventBasedGateway (default: "BPMNExclusiveGateway") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyGateway",
"type": "BPMNExclusiveGateway"
}
Response: The created gateway object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNExclusiveGateway,BPMNInclusiveGateway,BPMNComplexGateway,BPMNParallelGateway,BPMNEventBasedGateway) - 404: Diagram not found
GET /api/bpmn/gateways/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Gateway ID |
Response: Gateway object (same format as list response element).
Errors:
- 404: Gateway not found
PUT /api/bpmn/gateways/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Gateway ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Gateway name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedGateway"
}
Response: The updated gateway object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Gateway not found
DELETE /api/bpmn/gateways/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Gateway ID |
Response example:
{
"success": true,
"message": "Deleted gateway \"Gateway1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/gateways/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Gateway1" }
}
Errors:
- 404: Gateway not found
Data Objects
Types: BPMNDataObject, BPMNDataStore, BPMNDataInput, BPMNDataOutput, BPMNMessage
GET /api/bpmn/data-objects
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 data objects",
"request": { "method": "GET", "path": "/api/bpmn/data-objects" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNDataObject",
"name": "DataObject1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNDataObject, BPMNDataStore, BPMNDataInput, BPMNDataOutput, BPMNMessage) |
| name | string | Data Object name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/data-objects
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Data Object name |
| type | string | No | Element type: BPMNDataObject, BPMNDataStore, BPMNDataInput, BPMNDataOutput, BPMNMessage (default: "BPMNDataObject") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyDataObject",
"type": "BPMNDataObject"
}
Response: The created data object object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNDataObject,BPMNDataStore,BPMNDataInput,BPMNDataOutput,BPMNMessage) - 404: Diagram not found
GET /api/bpmn/data-objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Object ID |
Response: Data Object object (same format as list response element).
Errors:
- 404: Data Object not found
PUT /api/bpmn/data-objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Object ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data Object name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedDataObject"
}
Response: The updated data object object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Data Object not found
DELETE /api/bpmn/data-objects/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Object ID |
Response example:
{
"success": true,
"message": "Deleted data object \"DataObject1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/data-objects/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "DataObject1" }
}
Errors:
- 404: Data Object not found
Conversations
Types: BPMNConversation, BPMNSubConversation, BPMNCallConversation
GET /api/bpmn/conversations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 conversations",
"request": { "method": "GET", "path": "/api/bpmn/conversations" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNConversation",
"name": "Conversation1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNConversation, BPMNSubConversation, BPMNCallConversation) |
| name | string | Conversation name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/conversations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Conversation name |
| type | string | No | Element type: BPMNConversation, BPMNSubConversation, BPMNCallConversation (default: "BPMNConversation") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyConversation",
"type": "BPMNConversation"
}
Response: The created conversation object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNConversation,BPMNSubConversation,BPMNCallConversation) - 404: Diagram not found
GET /api/bpmn/conversations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation ID |
Response: Conversation object (same format as list response element).
Errors:
- 404: Conversation not found
PUT /api/bpmn/conversations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Conversation name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedConversation"
}
Response: The updated conversation object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Conversation not found
DELETE /api/bpmn/conversations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation ID |
Response example:
{
"success": true,
"message": "Deleted conversation \"Conversation1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/conversations/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Conversation1" }
}
Errors:
- 404: Conversation not found
Choreographies
Types: BPMNChoreographyTask, BPMNSubChoreography
GET /api/bpmn/choreographies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 choreographies",
"request": { "method": "GET", "path": "/api/bpmn/choreographies" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNChoreographyTask",
"name": "Choreography1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNChoreographyTask, BPMNSubChoreography) |
| name | string | Choreography name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/bpmn/choreographies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Choreography name |
| type | string | No | Element type: BPMNChoreographyTask, BPMNSubChoreography (default: "BPMNChoreographyTask") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyChoreography",
"type": "BPMNChoreographyTask"
}
Response: The created choreography object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNChoreographyTask,BPMNSubChoreography) - 404: Diagram not found
GET /api/bpmn/choreographies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Choreography ID |
Response: Choreography object (same format as list response element).
Errors:
- 404: Choreography not found
PUT /api/bpmn/choreographies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Choreography ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Choreography name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedChoreography"
}
Response: The updated choreography object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Choreography not found
DELETE /api/bpmn/choreographies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Choreography ID |
Response example:
{
"success": true,
"message": "Deleted choreography \"Choreography1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/choreographies/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Choreography1" }
}
Errors:
- 404: Choreography not found
Annotations
Types: BPMNTextAnnotation, BPMNGroup
GET /api/bpmn/annotations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 annotations",
"request": { "method": "GET", "path": "/api/bpmn/annotations" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "BPMNTextAnnotation",
"name": "Annotation1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (BPMNTextAnnotation, BPMNGroup) |
| name | string | Annotation name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| text | string | Annotation text content (present only for BPMNTextAnnotation) |
POST /api/bpmn/annotations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Annotation name |
| type | string | No | Element type: BPMNTextAnnotation, BPMNGroup (default: "BPMNTextAnnotation") |
| text | string | No | Annotation text content (only applicable to BPMNTextAnnotation) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyAnnotation",
"type": "BPMNTextAnnotation"
}
Response: The created annotation object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
BPMNTextAnnotation,BPMNGroup) - 404: Diagram not found
GET /api/bpmn/annotations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Annotation ID |
Response: Annotation object (same format as list response element).
Errors:
- 404: Annotation not found
PUT /api/bpmn/annotations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Annotation ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Annotation name |
| documentation | string | No | Documentation text |
| text | string | No | Annotation text content (only applicable to BPMNTextAnnotation) |
Request example:
{
"name": "UpdatedAnnotation"
}
Response: The updated annotation object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Annotation not found
DELETE /api/bpmn/annotations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Annotation ID |
Response example:
{
"success": true,
"message": "Deleted annotation \"Annotation1\"",
"request": { "method": "DELETE", "path": "/api/bpmn/annotations/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Annotation1" }
}
Errors:
- 404: Annotation not found
Sequence Flows
Type: BPMNSequenceFlow
GET /api/bpmn/sequence-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 sequence flows",
"request": { "method": "GET", "path": "/api/bpmn/sequence-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNSequenceFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNSequenceFlow" |
| name | string | Sequence Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| condition | string | Sequence flow condition (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/sequence-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Sequence Flow name |
| condition | string | No | Sequence flow condition |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created sequence flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/sequence-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence Flow ID |
Response: Sequence Flow object (same format as list response element).
Errors:
- 404: Sequence Flow not found
PUT /api/bpmn/sequence-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Sequence Flow name |
| documentation | string | No | Documentation text |
| condition | string | No | Sequence flow condition |
Request example:
{
"name": "updatedSequenceFlow"
}
Response: The updated sequence flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Sequence Flow not found
DELETE /api/bpmn/sequence-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Sequence Flow ID |
Response example:
{
"success": true,
"message": "Deleted sequence flow \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/sequence-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Sequence Flow not found
Message Flows
Type: BPMNMessageFlow
GET /api/bpmn/message-flows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 message flows",
"request": { "method": "GET", "path": "/api/bpmn/message-flows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNMessageFlow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNMessageFlow" |
| name | string | Message Flow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/message-flows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Message Flow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created message flow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/message-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Flow ID |
Response: Message Flow object (same format as list response element).
Errors:
- 404: Message Flow not found
PUT /api/bpmn/message-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Flow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Message Flow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedMessageFlow"
}
Response: The updated message flow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Message Flow not found
DELETE /api/bpmn/message-flows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Flow ID |
Response example:
{
"success": true,
"message": "Deleted message flow \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/message-flows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Message Flow not found
Associations
Type: BPMNAssociation
GET /api/bpmn/associations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 associations",
"request": { "method": "GET", "path": "/api/bpmn/associations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNAssociation",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNAssociation" |
| name | string | Association name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/associations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Association name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created association object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response: Association object (same format as list response element).
Errors:
- 404: Association not found
PUT /api/bpmn/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Association name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedAssociation"
}
Response: The updated association object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Association not found
DELETE /api/bpmn/associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Association ID |
Response example:
{
"success": true,
"message": "Deleted association \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/associations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Association not found
Data Associations
Type: BPMNDataAssociation
GET /api/bpmn/data-associations
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 data associations",
"request": { "method": "GET", "path": "/api/bpmn/data-associations" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNDataAssociation",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNDataAssociation" |
| name | string | Data Association name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/data-associations
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Data Association name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created data association object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/data-associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Association ID |
Response: Data Association object (same format as list response element).
Errors:
- 404: Data Association not found
PUT /api/bpmn/data-associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Association ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Data Association name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDataAssociation"
}
Response: The updated data association object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Data Association not found
DELETE /api/bpmn/data-associations/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Data Association ID |
Response example:
{
"success": true,
"message": "Deleted data association \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/data-associations/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Data Association not found
Message Links
Type: BPMNMessageLink
GET /api/bpmn/message-links
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 message links",
"request": { "method": "GET", "path": "/api/bpmn/message-links" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNMessageLink",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNMessageLink" |
| name | string | Message Link name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/message-links
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Message Link name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created message link object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/message-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Link ID |
Response: Message Link object (same format as list response element).
Errors:
- 404: Message Link not found
PUT /api/bpmn/message-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Link ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Message Link name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedMessageLink"
}
Response: The updated message link object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Message Link not found
DELETE /api/bpmn/message-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Message Link ID |
Response example:
{
"success": true,
"message": "Deleted message link \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/message-links/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Message Link not found
Conversation Links
Type: BPMNConversationLink
GET /api/bpmn/conversation-links
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 conversation links",
"request": { "method": "GET", "path": "/api/bpmn/conversation-links" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "BPMNConversationLink",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "BPMNConversationLink" |
| name | string | Conversation Link name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/bpmn/conversation-links
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Conversation Link name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created conversation link object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/bpmn/conversation-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation Link ID |
Response: Conversation Link object (same format as list response element).
Errors:
- 404: Conversation Link not found
PUT /api/bpmn/conversation-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation Link ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Conversation Link name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedConversationLink"
}
Response: The updated conversation link object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Conversation Link not found
DELETE /api/bpmn/conversation-links/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conversation Link ID |
Response example:
{
"success": true,
"message": "Deleted conversation link \"\"",
"request": { "method": "DELETE", "path": "/api/bpmn/conversation-links/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Conversation Link not found
Endpoint count: 5 (diagrams) + 45 (participants, tasks, sub-processes, events, gateways, data-objects, conversations, choreographies, annotations) + 4 (children) + 30 (sequence-flows, message-flows, associations, data-associations, message-links, conversation-links) = 84
C4 Diagram
Prefix: /api/c4/
Diagram types: C4Diagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/c4/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/c4/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "C4Diagram",
"name": "C4Diagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "C4Diagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/c4/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My C4 Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/c4/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/c4/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed C4 Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/c4/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"C4Diagram1\"",
"request": { "method": "DELETE", "path": "/api/c4/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "C4Diagram1" }
}
Errors:
- 404: Diagram not found
Elements
Types: C4Person, C4SoftwareSystem, C4Container, C4ContainerDatabase, C4ContainerWebApp, C4ContainerDesktopApp, C4ContainerMobileApp, C4Component, C4Element
Note:
C4ContainerDatabase,C4ContainerWebApp,C4ContainerDesktopApp,C4ContainerMobileAppare creation aliases forC4Containerwith differentkindvalues (database,client-webapp,desktop-app,mobile-app). The created model type is alwaysC4Container, so the_typefield in responses will be"C4Container".
GET /api/c4/elements
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 elements",
"request": { "method": "GET", "path": "/api/c4/elements" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "C4Person",
"name": "Element1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element model type (C4Person, C4SoftwareSystem, C4Container, C4Component, C4Element). Container subtypes (Database, WebApp, etc.) are returned as C4Container. |
| name | string | Element name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| technology | string | Technology description (present only if set) |
| description | string | Element description (present only if set) |
POST /api/c4/elements
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Element name |
| type | string | No | Element type: C4Person, C4SoftwareSystem, C4Container, C4ContainerDatabase, C4ContainerWebApp, C4ContainerDesktopApp, C4ContainerMobileApp, C4Component, C4Element (default: "C4Person") |
| technology | string | No | Technology description |
| description | string | No | Element description |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyElement",
"type": "C4Person"
}
Response: The created element object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
C4Person,C4SoftwareSystem,C4Container,C4ContainerDatabase,C4ContainerWebApp,C4ContainerDesktopApp,C4ContainerMobileApp,C4Component,C4Element) - 404: Diagram not found
GET /api/c4/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response: Element object (same format as list response element).
Errors:
- 404: Element not found
PUT /api/c4/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Element name |
| documentation | string | No | Documentation text |
| technology | string | No | Technology description |
| description | string | No | Element description |
Request example:
{
"name": "UpdatedElement"
}
Response: The updated element object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Element not found
DELETE /api/c4/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response example:
{
"success": true,
"message": "Deleted element \"Element1\"",
"request": { "method": "DELETE", "path": "/api/c4/elements/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Element1" }
}
Errors:
- 404: Element not found
Relationships
Type: C4Relationship
GET /api/c4/relationships
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 relationships",
"request": { "method": "GET", "path": "/api/c4/relationships" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "C4Relationship",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "C4Relationship" |
| name | string | Relationship name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| technology | string | Technology description (present only if set) |
| description | string | Relationship description (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/c4/relationships
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Relationship name |
| technology | string | No | Technology description |
| description | string | No | Relationship description |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created relationship object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/c4/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Response: Relationship object (same format as list response element).
Errors:
- 404: Relationship not found
PUT /api/c4/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Relationship name |
| documentation | string | No | Documentation text |
| technology | string | No | Technology description |
| description | string | No | Relationship description |
Request example:
{
"name": "updatedRelationship"
}
Response: The updated relationship object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Relationship not found
DELETE /api/c4/relationships/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Relationship ID |
Response example:
{
"success": true,
"message": "Deleted relationship \"\"",
"request": { "method": "DELETE", "path": "/api/c4/relationships/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Relationship not found
Endpoint count: 5 (diagrams) + 5 (elements) + 5 (relationships) = 15
SysML Diagram
Prefix: /api/sysml/
Diagram types: SysMLRequirementDiagram, SysMLBlockDefinitionDiagram, SysMLInternalBlockDiagram, SysMLParametricDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/sysml/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/sysml/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLRequirementDiagram",
"name": "SysMLRequirementDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Diagram type (SysMLRequirementDiagram or SysMLBlockDefinitionDiagram or SysMLInternalBlockDiagram or SysMLParametricDiagram) |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/sysml/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
| type | string | No | Diagram type: SysMLRequirementDiagram, SysMLBlockDefinitionDiagram, SysMLInternalBlockDiagram, SysMLParametricDiagram (default: "SysMLRequirementDiagram") |
Request example:
{
"name": "My SysML Diagram",
"type": "SysMLBlockDefinitionDiagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid diagram type (must be one of
SysMLRequirementDiagram,SysMLBlockDefinitionDiagram,SysMLInternalBlockDiagram,SysMLParametricDiagram) - 404: Parent element not found
GET /api/sysml/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/sysml/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed SysML Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/sysml/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"SysMLRequirementDiagram1\"",
"request": { "method": "DELETE", "path": "/api/sysml/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "SysMLRequirementDiagram1" }
}
Errors:
- 404: Diagram not found
Requirements
Types: SysMLRequirement
GET /api/sysml/requirements
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 requirements",
"request": { "method": "GET", "path": "/api/sysml/requirements" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLRequirement",
"name": "Requirement1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLRequirement" |
| name | string | Requirement name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| text | string | Requirement text (present only if set) |
| requirementId | string | Requirement ID (maps to SysML id field, present only if set) |
POST /api/sysml/requirements
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Requirement name |
| text | string | No | Requirement text |
| requirementId | string | No | Requirement ID (maps to SysML id field) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyRequirement"
}
Response: The created requirement object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/sysml/requirements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Requirement ID |
Response: Requirement object (same format as list response element).
Errors:
- 404: Requirement not found
PUT /api/sysml/requirements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Requirement ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Requirement name |
| documentation | string | No | Documentation text |
| text | string | No | Requirement text |
| requirementId | string | No | Requirement ID (maps to SysML id field) |
Request example:
{
"name": "UpdatedRequirement"
}
Response: The updated requirement object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Requirement not found
DELETE /api/sysml/requirements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Requirement ID |
Response example:
{
"success": true,
"message": "Deleted requirement \"Requirement1\"",
"request": { "method": "DELETE", "path": "/api/sysml/requirements/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Requirement1" }
}
Errors:
- 404: Requirement not found
Blocks
Types: SysMLBlock, SysMLValueType, SysMLInterfaceBlock, SysMLConstraintBlock
GET /api/sysml/blocks
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 blocks",
"request": { "method": "GET", "path": "/api/sysml/blocks" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLBlock",
"name": "Block1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (SysMLBlock, SysMLValueType, SysMLInterfaceBlock, SysMLConstraintBlock) |
| name | string | Block name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/sysml/blocks
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Block name |
| type | string | No | Element type: SysMLBlock, SysMLValueType, SysMLInterfaceBlock, SysMLConstraintBlock (default: "SysMLBlock") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyBlock",
"type": "SysMLBlock"
}
Response: The created block object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
SysMLBlock,SysMLValueType,SysMLInterfaceBlock,SysMLConstraintBlock) - 404: Diagram not found
GET /api/sysml/blocks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Response: Block object (same format as list response element).
Errors:
- 404: Block not found
PUT /api/sysml/blocks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Block name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedBlock"
}
Response: The updated block object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Block not found
DELETE /api/sysml/blocks/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Response example:
{
"success": true,
"message": "Deleted block \"Block1\"",
"request": { "method": "DELETE", "path": "/api/sysml/blocks/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Block1" }
}
Errors:
- 404: Block not found
GET /api/sysml/blocks/:id/properties
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Response example:
{
"success": true,
"message": "Retrieved 1 properties",
"request": { "method": "GET", "path": "/api/sysml/blocks/AAAAAAGVxxxx/properties" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "SysMLProperty",
"name": "property1",
"type": "",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLProperty" |
| name | string | Property name |
| type | string | Type annotation |
| _parentId | string | Parent element ID |
Errors:
- 404: Block not found
POST /api/sysml/blocks/:id/properties
Child type: SysMLProperty. Fields: name, type.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Property name |
| type | string | No | Type annotation |
Request example:
{
"name": "myProperty",
"type": "string"
}
Response: The created property object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Block not found
GET /api/sysml/blocks/:id/operations
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Response example:
{
"success": true,
"message": "Retrieved 1 operations",
"request": { "method": "GET", "path": "/api/sysml/blocks/AAAAAAGVxxxx/operations" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "SysMLOperation",
"name": "operation1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLOperation" |
| name | string | Operation name |
| _parentId | string | Parent element ID |
Errors:
- 404: Block not found
POST /api/sysml/blocks/:id/operations
Child type: SysMLOperation. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Operation name |
Request example:
{
"name": "myOperation"
}
Response: The created operation object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Block not found
GET /api/sysml/blocks/:id/flow-properties
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Response example:
{
"success": true,
"message": "Retrieved 1 flow properties",
"request": { "method": "GET", "path": "/api/sysml/blocks/AAAAAAGVxxxx/flow-properties" },
"data": [
{
"_id": "AAAAAAGVaaaa",
"_type": "SysMLFlowProperty",
"name": "flowproperty1",
"_parentId": "AAAAAAGVxxxx"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLFlowProperty" |
| name | string | Flow Property name |
| _parentId | string | Parent element ID |
Errors:
- 404: Block not found
POST /api/sysml/blocks/:id/flow-properties
Child type: SysMLFlowProperty. Fields: name.
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Block ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Flow Property name |
Request example:
{
"name": "myFlowProperty"
}
Response: The created flow property object.
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Block not found
Stakeholders
Types: SysMLStakeholder
GET /api/sysml/stakeholders
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 stakeholders",
"request": { "method": "GET", "path": "/api/sysml/stakeholders" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLStakeholder",
"name": "Stakeholder1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLStakeholder" |
| name | string | Stakeholder name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| concern | string | Stakeholder concern (multiline, present only if set) |
POST /api/sysml/stakeholders
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Stakeholder name |
| concern | string | No | Stakeholder concern (multiline) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyStakeholder"
}
Response: The created stakeholder object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/sysml/stakeholders/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stakeholder ID |
Response: Stakeholder object (same format as list response element).
Errors:
- 404: Stakeholder not found
PUT /api/sysml/stakeholders/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stakeholder ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Stakeholder name |
| documentation | string | No | Documentation text |
| concern | string | No | Stakeholder concern (multiline) |
Request example:
{
"name": "UpdatedStakeholder"
}
Response: The updated stakeholder object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Stakeholder not found
DELETE /api/sysml/stakeholders/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Stakeholder ID |
Response example:
{
"success": true,
"message": "Deleted stakeholder \"Stakeholder1\"",
"request": { "method": "DELETE", "path": "/api/sysml/stakeholders/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Stakeholder1" }
}
Errors:
- 404: Stakeholder not found
Viewpoints
Types: SysMLViewpoint
GET /api/sysml/viewpoints
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 viewpoints",
"request": { "method": "GET", "path": "/api/sysml/viewpoints" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLViewpoint",
"name": "Viewpoint1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLViewpoint" |
| name | string | Viewpoint name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| purpose | string | Viewpoint purpose (present only if set) |
| language | string | Viewpoint language (present only if set) |
| presentation | string | Viewpoint presentation (present only if set) |
POST /api/sysml/viewpoints
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Viewpoint name |
| purpose | string | No | Viewpoint purpose |
| language | string | No | Viewpoint language |
| presentation | string | No | Viewpoint presentation |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyViewpoint"
}
Response: The created viewpoint object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/sysml/viewpoints/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Viewpoint ID |
Response: Viewpoint object (same format as list response element).
Errors:
- 404: Viewpoint not found
PUT /api/sysml/viewpoints/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Viewpoint ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Viewpoint name |
| documentation | string | No | Documentation text |
| purpose | string | No | Viewpoint purpose |
| language | string | No | Viewpoint language |
| presentation | string | No | Viewpoint presentation |
Request example:
{
"name": "UpdatedViewpoint"
}
Response: The updated viewpoint object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Viewpoint not found
DELETE /api/sysml/viewpoints/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Viewpoint ID |
Response example:
{
"success": true,
"message": "Deleted viewpoint \"Viewpoint1\"",
"request": { "method": "DELETE", "path": "/api/sysml/viewpoints/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Viewpoint1" }
}
Errors:
- 404: Viewpoint not found
Views
Types: SysMLView
GET /api/sysml/views
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 views",
"request": { "method": "GET", "path": "/api/sysml/views" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLView",
"name": "View1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLView" |
| name | string | View name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/sysml/views
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | View name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyView"
}
Response: The created view object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/sysml/views/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID |
Response: View object (same format as list response element).
Errors:
- 404: View not found
PUT /api/sysml/views/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | View name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedView"
}
Response: The updated view object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: View not found
DELETE /api/sysml/views/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | View ID |
Response example:
{
"success": true,
"message": "Deleted view \"View1\"",
"request": { "method": "DELETE", "path": "/api/sysml/views/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "View1" }
}
Errors:
- 404: View not found
Parts
Types: SysMLPart, SysMLReference, SysMLValue, SysMLPort, SysMLConstraintProperty, SysMLConstraintParameter
GET /api/sysml/parts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 parts",
"request": { "method": "GET", "path": "/api/sysml/parts" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "SysMLPart",
"name": "Part1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (SysMLPart, SysMLReference, SysMLValue, SysMLPort, SysMLConstraintProperty, SysMLConstraintParameter) |
| name | string | Part name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/sysml/parts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Part name |
| type | string | No | Element type: SysMLPart, SysMLReference, SysMLValue, SysMLPort, SysMLConstraintProperty, SysMLConstraintParameter (default: "SysMLPart") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
| tailViewId | string | No | Container view ID. Most part types require this pointing to a Block view on the diagram. For SysMLConstraintParameter, use a ConstraintProperty view or omit when placing directly on a PAR/IBD diagram whose parent is a SysMLBlock. |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyPart",
"type": "SysMLPart"
}
Notes on SysMLConstraintParameter:
- When placed directly on a
SysMLParametricDiagramorSysMLInternalBlockDiagram, the diagram's parent must be aSysMLBlock. The parameter is created on the block'sparametersfield. - When placed inside a
SysMLConstraintProperty(viatailViewId), the ConstraintProperty must be typed with aSysMLConstraintBlock. - The actual model type created is
SysMLProperty(stored in the block'sparametersfield).
Response: The created part object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
SysMLPart,SysMLReference,SysMLValue,SysMLPort,SysMLConstraintProperty,SysMLConstraintParameter) - 404: Diagram not found
GET /api/sysml/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Response: Part object (same format as list response element).
Errors:
- 404: Part not found
PUT /api/sysml/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Part name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedPart"
}
Response: The updated part object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Part not found
DELETE /api/sysml/parts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Part ID |
Response example:
{
"success": true,
"message": "Deleted part \"Part1\"",
"request": { "method": "DELETE", "path": "/api/sysml/parts/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Part1" }
}
Errors:
- 404: Part not found
Conforms
Type: SysMLConform
GET /api/sysml/conforms
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 conforms",
"request": { "method": "GET", "path": "/api/sysml/conforms" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLConform",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLConform" |
| name | string | Conform name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/conforms
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Conform name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created conform object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/conforms/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conform ID |
Response: Conform object (same format as list response element).
Errors:
- 404: Conform not found
PUT /api/sysml/conforms/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conform ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Conform name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedConform"
}
Response: The updated conform object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Conform not found
DELETE /api/sysml/conforms/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Conform ID |
Response example:
{
"success": true,
"message": "Deleted conform \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/conforms/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Conform not found
Exposes
Type: SysMLExpose
GET /api/sysml/exposes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 exposes",
"request": { "method": "GET", "path": "/api/sysml/exposes" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLExpose",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLExpose" |
| name | string | Expose name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/exposes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Expose name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created expose object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/exposes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Expose ID |
Response: Expose object (same format as list response element).
Errors:
- 404: Expose not found
PUT /api/sysml/exposes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Expose ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Expose name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedExpose"
}
Response: The updated expose object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Expose not found
DELETE /api/sysml/exposes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Expose ID |
Response example:
{
"success": true,
"message": "Deleted expose \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/exposes/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Expose not found
Copies
Type: SysMLCopy
GET /api/sysml/copies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 copies",
"request": { "method": "GET", "path": "/api/sysml/copies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLCopy",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLCopy" |
| name | string | Copy name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/copies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Copy name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created copy object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/copies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Copy ID |
Response: Copy object (same format as list response element).
Errors:
- 404: Copy not found
PUT /api/sysml/copies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Copy ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Copy name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedCopy"
}
Response: The updated copy object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Copy not found
DELETE /api/sysml/copies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Copy ID |
Response example:
{
"success": true,
"message": "Deleted copy \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/copies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Copy not found
Derive Reqts
Type: SysMLDeriveReqt
GET /api/sysml/derive-reqts
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 derive reqts",
"request": { "method": "GET", "path": "/api/sysml/derive-reqts" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLDeriveReqt",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLDeriveReqt" |
| name | string | Derive Requirement name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/derive-reqts
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Derive Requirement name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created derive requirement object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/derive-reqts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Derive Requirement ID |
Response: Derive Requirement object (same format as list response element).
Errors:
- 404: Derive Requirement not found
PUT /api/sysml/derive-reqts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Derive Requirement ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Derive Requirement name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedDeriveRequirement"
}
Response: The updated derive requirement object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Derive Requirement not found
DELETE /api/sysml/derive-reqts/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Derive Requirement ID |
Response example:
{
"success": true,
"message": "Deleted derive requirement \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/derive-reqts/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Derive Requirement not found
Verifies
Type: SysMLVerify
GET /api/sysml/verifies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 verifies",
"request": { "method": "GET", "path": "/api/sysml/verifies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLVerify",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLVerify" |
| name | string | Verify name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/verifies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Verify name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created verify object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/verifies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Verify ID |
Response: Verify object (same format as list response element).
Errors:
- 404: Verify not found
PUT /api/sysml/verifies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Verify ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Verify name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedVerify"
}
Response: The updated verify object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Verify not found
DELETE /api/sysml/verifies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Verify ID |
Response example:
{
"success": true,
"message": "Deleted verify \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/verifies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Verify not found
Satisfies
Type: SysMLSatisfy
GET /api/sysml/satisfies
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 satisfies",
"request": { "method": "GET", "path": "/api/sysml/satisfies" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLSatisfy",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLSatisfy" |
| name | string | Satisfy name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/satisfies
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Satisfy name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created satisfy object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/satisfies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Satisfy ID |
Response: Satisfy object (same format as list response element).
Errors:
- 404: Satisfy not found
PUT /api/sysml/satisfies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Satisfy ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Satisfy name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedSatisfy"
}
Response: The updated satisfy object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Satisfy not found
DELETE /api/sysml/satisfies/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Satisfy ID |
Response example:
{
"success": true,
"message": "Deleted satisfy \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/satisfies/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Satisfy not found
Refines
Type: SysMLRefine
GET /api/sysml/refines
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 refines",
"request": { "method": "GET", "path": "/api/sysml/refines" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLRefine",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLRefine" |
| name | string | Refine name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/refines
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Refine name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created refine object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/refines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Refine ID |
Response: Refine object (same format as list response element).
Errors:
- 404: Refine not found
PUT /api/sysml/refines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Refine ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Refine name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedRefine"
}
Response: The updated refine object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Refine not found
DELETE /api/sysml/refines/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Refine ID |
Response example:
{
"success": true,
"message": "Deleted refine \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/refines/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Refine not found
Connectors
Type: SysMLConnector
GET /api/sysml/connectors
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 connectors",
"request": { "method": "GET", "path": "/api/sysml/connectors" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "SysMLConnector",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "SysMLConnector" |
| name | string | Connector name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/sysml/connectors
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Connector name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created connector object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/sysml/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response: Connector object (same format as list response element).
Errors:
- 404: Connector not found
PUT /api/sysml/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Connector name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedConnector"
}
Response: The updated connector object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Connector not found
DELETE /api/sysml/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response example:
{
"success": true,
"message": "Deleted connector \"\"",
"request": { "method": "DELETE", "path": "/api/sysml/connectors/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Connector not found
Endpoint count: 5 (diagrams) + 30 (requirements, blocks, stakeholders, viewpoints, views, parts) + 6 (children) + 40 (conforms, exposes, copies, derive-reqts, verifies, satisfies, refines, connectors) = 81
Wireframe Diagram
Prefix: /api/wireframe/
Diagram types: WFWireframeDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/wireframe/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/wireframe/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "WFWireframeDiagram",
"name": "WFWireframeDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "WFWireframeDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/wireframe/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Wireframe Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/wireframe/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/wireframe/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Wireframe Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/wireframe/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"WFWireframeDiagram1\"",
"request": { "method": "DELETE", "path": "/api/wireframe/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "WFWireframeDiagram1" }
}
Errors:
- 404: Diagram not found
Frames
Types: WFFrame, WFMobileFrame, WFWebFrame, WFDesktopFrame
GET /api/wireframe/frames
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 frames",
"request": { "method": "GET", "path": "/api/wireframe/frames" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "WFFrame",
"name": "Frame1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (WFFrame, WFMobileFrame, WFWebFrame, WFDesktopFrame) |
| name | string | Frame name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/wireframe/frames
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Frame name |
| type | string | No | Element type: WFFrame, WFMobileFrame, WFWebFrame, WFDesktopFrame (default: "WFFrame") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyFrame",
"type": "WFFrame"
}
Response: The created frame object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
WFFrame,WFMobileFrame,WFWebFrame,WFDesktopFrame) - 404: Diagram not found
GET /api/wireframe/frames/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Frame ID |
Response: Frame object (same format as list response element).
Errors:
- 404: Frame not found
PUT /api/wireframe/frames/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Frame ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Frame name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedFrame"
}
Response: The updated frame object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Frame not found
DELETE /api/wireframe/frames/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Frame ID |
Response example:
{
"success": true,
"message": "Deleted frame \"Frame1\"",
"request": { "method": "DELETE", "path": "/api/wireframe/frames/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Frame1" }
}
Errors:
- 404: Frame not found
Widgets
Types: WFButton, WFText, WFRadio, WFCheckbox, WFSwitch, WFLink, WFTabList, WFTab, WFInput, WFDropdown, WFPanel, WFImage, WFSeparator, WFAvatar, WFSlider
GET /api/wireframe/widgets
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 widgets",
"request": { "method": "GET", "path": "/api/wireframe/widgets" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "WFButton",
"name": "Widget1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (WFButton, WFText, WFRadio, WFCheckbox, WFSwitch, WFLink, WFTabList, WFTab, WFInput, WFDropdown, WFPanel, WFImage, WFSeparator, WFAvatar, WFSlider) |
| name | string | Widget name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| checked | boolean | Checked state (present only for WFRadio, WFCheckbox, WFSwitch) |
POST /api/wireframe/widgets
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Widget name |
| type | string | No | Element type: WFButton, WFText, WFRadio, WFCheckbox, WFSwitch, WFLink, WFTabList, WFTab, WFInput, WFDropdown, WFPanel, WFImage, WFSeparator, WFAvatar, WFSlider (default: "WFButton") |
| checked | boolean | No | Checked state (only applicable to WFRadio, WFCheckbox, WFSwitch) |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyWidget",
"type": "WFButton"
}
Response: The created widget object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
WFButton,WFText,WFRadio,WFCheckbox,WFSwitch,WFLink,WFTabList,WFTab,WFInput,WFDropdown,WFPanel,WFImage,WFSeparator,WFAvatar,WFSlider) - 404: Diagram not found
GET /api/wireframe/widgets/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Widget ID |
Response: Widget object (same format as list response element).
Errors:
- 404: Widget not found
PUT /api/wireframe/widgets/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Widget ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Widget name |
| documentation | string | No | Documentation text |
| checked | boolean | No | Checked state (only applicable to WFRadio, WFCheckbox, WFSwitch) |
Request example:
{
"name": "UpdatedWidget"
}
Response: The updated widget object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Widget not found
DELETE /api/wireframe/widgets/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Widget ID |
Response example:
{
"success": true,
"message": "Deleted widget \"Widget1\"",
"request": { "method": "DELETE", "path": "/api/wireframe/widgets/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Widget1" }
}
Errors:
- 404: Widget not found
Endpoint count: 5 (diagrams) + 10 (frames, widgets) = 15
MindMap Diagram
Prefix: /api/mindmap/
Diagram types: MMMindmapDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/mindmap/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/mindmap/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "MMMindmapDiagram",
"name": "MMMindmapDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "MMMindmapDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/mindmap/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My MindMap Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/mindmap/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/mindmap/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed MindMap Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/mindmap/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"MMMindmapDiagram1\"",
"request": { "method": "DELETE", "path": "/api/mindmap/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "MMMindmapDiagram1" }
}
Errors:
- 404: Diagram not found
Nodes
Types: MMNode
GET /api/mindmap/nodes
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 nodes",
"request": { "method": "GET", "path": "/api/mindmap/nodes" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "MMNode",
"name": "Node1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "MMNode" |
| name | string | Node name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/mindmap/nodes
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Node name |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyNode"
}
Response: The created node object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Diagram not found
GET /api/mindmap/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response: Node object (same format as list response element).
Errors:
- 404: Node not found
PUT /api/mindmap/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Node name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedNode"
}
Response: The updated node object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Node not found
DELETE /api/mindmap/nodes/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Node ID |
Response example:
{
"success": true,
"message": "Deleted node \"Node1\"",
"request": { "method": "DELETE", "path": "/api/mindmap/nodes/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Node1" }
}
Errors:
- 404: Node not found
Edges
Type: MMEdge
GET /api/mindmap/edges
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 edges",
"request": { "method": "GET", "path": "/api/mindmap/edges" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "MMEdge",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "MMEdge" |
| name | string | Edge name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/mindmap/edges
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Edge name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created edge object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/mindmap/edges/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Edge ID |
Response: Edge object (same format as list response element).
Errors:
- 404: Edge not found
PUT /api/mindmap/edges/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Edge ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Edge name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedEdge"
}
Response: The updated edge object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Edge not found
DELETE /api/mindmap/edges/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Edge ID |
Response example:
{
"success": true,
"message": "Deleted edge \"\"",
"request": { "method": "DELETE", "path": "/api/mindmap/edges/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Edge not found
Endpoint count: 5 (diagrams) + 5 (nodes) + 5 (edges) = 15
AWS Diagram
Prefix: /api/aws/
Diagram types: AWSDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/aws/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/aws/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "AWSDiagram",
"name": "AWSDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "AWSDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/aws/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My AWS Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/aws/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/aws/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed AWS Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/aws/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"AWSDiagram1\"",
"request": { "method": "DELETE", "path": "/api/aws/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "AWSDiagram1" }
}
Errors:
- 404: Diagram not found
Elements
Types: AWSGroup, AWSGenericGroup, AWSAvailabilityZone, AWSSecurityGroup, AWSService, AWSResource, AWSGeneralResource, AWSCallout
GET /api/aws/elements
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 elements",
"request": { "method": "GET", "path": "/api/aws/elements" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "AWSService",
"name": "Element1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (AWSGroup, AWSGenericGroup, AWSAvailabilityZone, AWSSecurityGroup, AWSService, AWSResource, AWSGeneralResource, AWSCallout) |
| name | string | Element name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/aws/elements
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Element name |
| type | string | No | Element type: AWSGroup, AWSGenericGroup, AWSAvailabilityZone, AWSSecurityGroup, AWSService, AWSResource, AWSGeneralResource, AWSCallout (default: "AWSGroup") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyElement",
"type": "AWSService"
}
Response: The created element object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
AWSGroup,AWSGenericGroup,AWSAvailabilityZone,AWSSecurityGroup,AWSService,AWSResource,AWSGeneralResource,AWSCallout) - 404: Diagram not found
GET /api/aws/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response: Element object (same format as list response element).
Errors:
- 404: Element not found
PUT /api/aws/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Element name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedElement"
}
Response: The updated element object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Element not found
DELETE /api/aws/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response example:
{
"success": true,
"message": "Deleted element \"Element1\"",
"request": { "method": "DELETE", "path": "/api/aws/elements/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Element1" }
}
Errors:
- 404: Element not found
Arrows
Type: AWSArrow
GET /api/aws/arrows
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 arrows",
"request": { "method": "GET", "path": "/api/aws/arrows" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "AWSArrow",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "AWSArrow" |
| name | string | Arrow name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/aws/arrows
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Arrow name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created arrow object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/aws/arrows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Arrow ID |
Response: Arrow object (same format as list response element).
Errors:
- 404: Arrow not found
PUT /api/aws/arrows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Arrow ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Arrow name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedArrow"
}
Response: The updated arrow object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Arrow not found
DELETE /api/aws/arrows/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Arrow ID |
Response example:
{
"success": true,
"message": "Deleted arrow \"\"",
"request": { "method": "DELETE", "path": "/api/aws/arrows/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Arrow not found
Endpoint count: 5 (diagrams) + 5 (elements) + 5 (arrows) = 15
Azure Diagram
Prefix: /api/azure/
Diagram types: AzureDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/azure/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/azure/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "AzureDiagram",
"name": "AzureDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "AzureDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/azure/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My Azure Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/azure/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/azure/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed Azure Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/azure/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"AzureDiagram1\"",
"request": { "method": "DELETE", "path": "/api/azure/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "AzureDiagram1" }
}
Errors:
- 404: Diagram not found
Elements
Types: AzureGroup, AzureService, AzureCallout
GET /api/azure/elements
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 elements",
"request": { "method": "GET", "path": "/api/azure/elements" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "AzureService",
"name": "Element1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (AzureGroup, AzureService, AzureCallout) |
| name | string | Element name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/azure/elements
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Element name |
| type | string | No | Element type: AzureGroup, AzureService, AzureCallout (default: "AzureGroup") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyElement",
"type": "AzureService"
}
Response: The created element object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
AzureGroup,AzureService,AzureCallout) - 404: Diagram not found
GET /api/azure/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response: Element object (same format as list response element).
Errors:
- 404: Element not found
PUT /api/azure/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Element name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedElement"
}
Response: The updated element object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Element not found
DELETE /api/azure/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response example:
{
"success": true,
"message": "Deleted element \"Element1\"",
"request": { "method": "DELETE", "path": "/api/azure/elements/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Element1" }
}
Errors:
- 404: Element not found
Connectors
Type: AzureConnector
GET /api/azure/connectors
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 connectors",
"request": { "method": "GET", "path": "/api/azure/connectors" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "AzureConnector",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "AzureConnector" |
| name | string | Connector name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/azure/connectors
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Connector name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created connector object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/azure/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response: Connector object (same format as list response element).
Errors:
- 404: Connector not found
PUT /api/azure/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Connector name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedConnector"
}
Response: The updated connector object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Connector not found
DELETE /api/azure/connectors/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Connector ID |
Response example:
{
"success": true,
"message": "Deleted connector \"\"",
"request": { "method": "DELETE", "path": "/api/azure/connectors/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Connector not found
Endpoint count: 5 (diagrams) + 5 (elements) + 5 (connectors) = 15
GCP Diagram
Prefix: /api/gcp/
Diagram types: GCPDiagram
All endpoints follow the Common CRUD Patterns. See that section for detailed request/response format.
Diagrams
GET /api/gcp/diagrams
Request: None
Response example:
{
"success": true,
"message": "Retrieved 1 diagram(s)",
"request": { "method": "GET", "path": "/api/gcp/diagrams" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "GCPDiagram",
"name": "GCPDiagram1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "GCPDiagram" |
| name | string | Diagram name |
| _parentId | string | Parent element ID |
POST /api/gcp/diagrams
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| parentId | string | No | Parent element ID (defaults to project root) |
| name | string | No | Diagram name |
Request example:
{
"name": "My GCP Diagram"
}
Response: The created diagram object (same format as list response element).
Errors:
- 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 404: Parent element not found
GET /api/gcp/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response: Diagram object (same format as list response element).
Errors:
- 404: Diagram not found
PUT /api/gcp/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Diagram name |
Request example:
{
"name": "Renamed GCP Diagram"
}
Response: The updated diagram object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Diagram not found
DELETE /api/gcp/diagrams/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Diagram ID |
Response example:
{
"success": true,
"message": "Deleted diagram \"GCPDiagram1\"",
"request": { "method": "DELETE", "path": "/api/gcp/diagrams/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "GCPDiagram1" }
}
Errors:
- 404: Diagram not found
Elements
Types: GCPUser, GCPZone, GCPProduct, GCPService
GET /api/gcp/elements
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 elements",
"request": { "method": "GET", "path": "/api/gcp/elements" },
"data": [
{
"_id": "AAAAAAGVxxxx",
"_type": "GCPProduct",
"name": "Element1",
"_parentId": "AAAAAAGVwwww"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Element type (GCPUser, GCPZone, GCPProduct, GCPService) |
| name | string | Element name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
POST /api/gcp/elements
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| name | string | No | Element name |
| type | string | No | Element type: GCPUser, GCPZone, GCPProduct, GCPService (default: "GCPUser") |
| x1 | number | No | Left position (default: 100) |
| y1 | number | No | Top position (default: 100) |
| x2 | number | No | Right position (default: 200) |
| y2 | number | No | Bottom position (default: 180) |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"name": "MyElement",
"type": "GCPProduct"
}
Response: The created element object.
Errors:
- 400:
diagramIdis required - 400: Unknown fields present
- 400: Field type mismatch
- 400: Empty name
- 400: Invalid type (must be one of
GCPUser,GCPZone,GCPProduct,GCPService) - 404: Diagram not found
GET /api/gcp/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response: Element object (same format as list response element).
Errors:
- 404: Element not found
PUT /api/gcp/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Element name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "UpdatedElement"
}
Response: The updated element object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Element not found
DELETE /api/gcp/elements/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Element ID |
Response example:
{
"success": true,
"message": "Deleted element \"Element1\"",
"request": { "method": "DELETE", "path": "/api/gcp/elements/AAAAAAGVxxxx" },
"data": { "deleted": "AAAAAAGVxxxx", "name": "Element1" }
}
Errors:
- 404: Element not found
Paths
Type: GCPPath
GET /api/gcp/paths
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| diagramId | string | No | Filter by diagram ID |
Response example:
{
"success": true,
"message": "Retrieved 1 paths",
"request": { "method": "GET", "path": "/api/gcp/paths" },
"data": [
{
"_id": "AAAAAAGVrrrr",
"_type": "GCPPath",
"name": "",
"_parentId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"sourceName": "Source1",
"targetId": "AAAAAAGVyyyy",
"targetName": "Target1"
}
]
}
Response fields:
| Field | Type | Description |
|---|---|---|
| _id | string | Unique identifier |
| _type | string | Always "GCPPath" |
| name | string | Path name |
| _parentId | string | Parent element ID |
| documentation | string | Documentation text (present only if set) |
| sourceId | string | Source element ID |
| sourceName | string | Source element name |
| targetId | string | Target element ID |
| targetName | string | Target element name |
POST /api/gcp/paths
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| diagramId | string | Yes | Target diagram ID |
| sourceId | string | Yes | Source element ID (must exist on the diagram) |
| targetId | string | Yes | Target element ID (must exist on the diagram) |
| name | string | No | Path name |
Request example:
{
"diagramId": "AAAAAAGVwwww",
"sourceId": "AAAAAAGVxxxx",
"targetId": "AAAAAAGVyyyy"
}
Response: The created path object.
Errors:
- 400:
diagramIdis required - 400:
sourceIdortargetIdis missing - 400: Source or target element not found on the specified diagram
- 400: Unknown fields present
- 400: Field type mismatch
- 404: Diagram not found
GET /api/gcp/paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Path ID |
Response: Path object (same format as list response element).
Errors:
- 404: Path not found
PUT /api/gcp/paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Path ID |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Path name |
| documentation | string | No | Documentation text |
Request example:
{
"name": "updatedPath"
}
Response: The updated path object.
Errors:
- 400: Empty body, unknown fields, type mismatch, or empty name
- 404: Path not found
DELETE /api/gcp/paths/:id
Path parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | Path ID |
Response example:
{
"success": true,
"message": "Deleted path \"\"",
"request": { "method": "DELETE", "path": "/api/gcp/paths/AAAAAAGVrrrr" },
"data": { "deleted": "AAAAAAGVrrrr", "name": "" }
}
Errors:
- 404: Path not found
Endpoint count: 5 (diagrams) + 5 (elements) + 5 (paths) = 15