StarUML Controller API

Overview

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:

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

Return the server health check and a list of available endpoints. 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

Get any element by its ID. The element is serialized in a format appropriate for its type.

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:


Tags

GET /api/elements/:id/tags

List all tags attached to the specified element (entity, column, or any other element).

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:


POST /api/elements/:id/tags

Create a new tag on the specified element.

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:

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

Get the details of the specified tag.

Path parameters:

Parameter Type Description
id string Tag ID

Response: Tag object (same format as POST /api/elements/:id/tags response)

Errors:


PUT /api/tags/:id

Update the specified tag. Only the specified fields are updated.

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:


DELETE /api/tags/:id

Delete the specified tag.

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:


Project

POST /api/project/save

Save the project to the specified absolute path. No dialog is displayed.

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:


POST /api/project/open

Open an existing .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:


Diagram Views

GET /api/diagrams/:id/views

List all views (visual representations) on the specified diagram with their position and size info.

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:


PUT /api/views/:id

Update a view's position and size.

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:


PUT /api/views/:id/style

Update a view's visual style properties. Only the specified fields are updated; unspecified fields retain their current values.

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:


PUT /api/views/:id/reconnect

Reconnect a relation view's source or target to a different view.

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:


View Alignment

POST /api/views/align

Align multiple views on a diagram.

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:


ER Diagram

Diagrams

GET /api/erd/diagrams

List all ERD diagrams in the project.

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

Create a new ERD diagram.

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:


GET /api/erd/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as GET /api/erd/diagrams data array element)

Errors:


PUT /api/erd/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/erd/diagrams/:id

Delete the specified diagram.

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:


Data Models

GET /api/erd/data-models

List all ERD data models in the project. A data model serves as the parent container for entities and diagrams.

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

Create a new ERD data model. It is created directly under the project root.

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:


GET /api/erd/data-models/:id

Get the details of the specified data model.

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:


PUT /api/erd/data-models/:id

Update the specified data model (rename). Only the specified fields are updated.

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:


DELETE /api/erd/data-models/:id

Delete the specified data model. Deletion is blocked if it contains entities, relationships, or diagrams.

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:


Entities

GET /api/erd/entities

List entities (tables). Supports filtering via query parameters.

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:


POST /api/erd/entities

Create a new entity (table).

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:


GET /api/erd/entities/:id

Get the details of the specified entity. Includes columns and tags.

Path parameters:

Parameter Type Description
id string Entity ID

Response: Entity object (same format as GET /api/erd/entities data array element)

Errors:


PUT /api/erd/entities/:id

Update the specified entity. Only the specified fields are updated.

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:


DELETE /api/erd/entities/:id

Delete the specified entity. All child columns and tags are also deleted.

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:


Columns

GET /api/erd/entities/:id/columns

List all columns of the specified entity.

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:


POST /api/erd/entities/:id/columns

Add a new column to the specified entity.

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:


GET /api/erd/columns/:id

Get the details of the specified column.

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:


PUT /api/erd/columns/:id

Update the specified column. Only the specified fields are updated.

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:


DELETE /api/erd/columns/:id

Delete the specified column.

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:


Sequences

GET /api/erd/entities/:id/sequences

List all sequences of the specified entity. Sequences are internally stored as tags, but this endpoint returns them in a sequence-specific format.

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:


POST /api/erd/entities/:id/sequences

Create a new sequence on the specified entity. Internally stored as a tag (tag name: 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:


GET /api/erd/sequences/:id

Get the details of the specified sequence.

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:


PUT /api/erd/sequences/:id

Update the specified sequence. When the name is changed, the internal tag name (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:


DELETE /api/erd/sequences/:id

Delete the specified sequence.

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:


Indexes

GET /api/erd/entities/:id/indexes

List all indexes of the specified entity. Indexes are internally stored as tags, but this endpoint returns them in an index-specific format.

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:


POST /api/erd/entities/:id/indexes

Create a new index on the specified entity. Internally stored as a tag (tag name: 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:


GET /api/erd/indexes/:id

Get the details of the specified index.

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:


PUT /api/erd/indexes/:id

Update the specified index. Either 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:


DELETE /api/erd/indexes/:id

Delete the specified index.

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:


Relationships

GET /api/erd/relationships

List relationships (associations between tables). Supports filtering via query parameters.

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:


POST /api/erd/relationships

Create a new relationship (association between tables).

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:


GET /api/erd/relationships/:id

Get the details of the specified relationship.

Path parameters:

Parameter Type Description
id string Relationship ID

Response: Relationship object (same format as GET /api/erd/relationships data array element)

Errors:


PUT /api/erd/relationships/:id

Update the specified relationship. Only the specified fields are updated.

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:


DELETE /api/erd/relationships/:id

Delete the specified relationship.

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:


PostgreSQL DDL

POST /api/erd/postgresql/ddl

Generate PostgreSQL DDL (Data Definition Language) from the ER diagram and write it to the specified absolute path. Ported from the staruml-postgresql extension's Generate DDL feature.

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:


Sequence Diagram

Interactions

GET /api/seq/interactions

List all interactions in the project. An interaction serves as the parent container for lifelines, messages, combined fragments, and sequence diagrams.

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

Create a new interaction. It is created directly under the project root.

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:


GET /api/seq/interactions/:id

Get the details of the specified interaction.

Path parameters:

Parameter Type Description
id string Interaction ID

Response: Interaction object (same format as GET /api/seq/interactions data array element)

Errors:


PUT /api/seq/interactions/:id

Update the specified interaction. Only the specified fields are updated.

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:


DELETE /api/seq/interactions/:id

Delete the specified interaction. Deletion is blocked if it contains lifelines, messages, fragments, or diagrams.

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:


Sequence Diagrams

GET /api/seq/diagrams

List all sequence diagrams in the project.

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

Create a new sequence diagram.

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:


GET /api/seq/diagrams/:id

Get the details of the specified sequence diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as GET /api/seq/diagrams data array element)

Errors:


PUT /api/seq/diagrams/:id

Update the specified sequence diagram. Only the specified fields are updated.

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:


DELETE /api/seq/diagrams/:id

Delete the specified sequence diagram.

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:


Lifelines

GET /api/seq/interactions/:id/lifelines

List all lifelines of the specified interaction.

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:


POST /api/seq/interactions/:id/lifelines

Add a new lifeline to the specified interaction. If 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:


GET /api/seq/lifelines/:id

Get the details of the specified lifeline.

Path parameters:

Parameter Type Description
id string Lifeline ID

Response: Lifeline object (same format as POST /api/seq/interactions/:id/lifelines response)

Errors:


PUT /api/seq/lifelines/:id

Update the specified lifeline. Only the specified fields are updated.

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:


DELETE /api/seq/lifelines/:id

Delete the specified lifeline. Deletion is blocked if messages reference this lifeline as source or target, or if state invariants reference it via covered.

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:


Messages

GET /api/seq/interactions/:id/messages

List all messages of the specified interaction.

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:


POST /api/seq/interactions/:id/messages

Create a new message in the specified interaction. Uses 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:


GET /api/seq/messages/:id

Get the details of the specified message.

Path parameters:

Parameter Type Description
id string Message ID

Response: Message object (same format as POST /api/seq/interactions/:id/messages response)

Errors:


PUT /api/seq/messages/:id

Update the specified message. Only the specified fields are updated.

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:


DELETE /api/seq/messages/:id

Delete the specified message.

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:


Combined Fragments

GET /api/seq/interactions/:id/combined-fragments

List all combined fragments of the specified interaction.

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:


POST /api/seq/interactions/:id/combined-fragments

Create a new combined fragment in the specified interaction.

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:


GET /api/seq/combined-fragments/:id

Get the details of the specified combined fragment.

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:


PUT /api/seq/combined-fragments/:id

Update the specified combined fragment. Only the specified fields are updated.

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:


DELETE /api/seq/combined-fragments/:id

Delete the specified combined fragment. Child operands are cascade deleted automatically.

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:


Interaction Operands

GET /api/seq/combined-fragments/:id/operands

List all operands of the specified combined fragment.

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:


POST /api/seq/combined-fragments/:id/operands

Add a new operand to the specified combined fragment.

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:


GET /api/seq/operands/:id

Get the details of the specified operand.

Path parameters:

Parameter Type Description
id string Operand ID

Response: Operand object (same format as POST /api/seq/combined-fragments/:id/operands response)

Errors:


PUT /api/seq/operands/:id

Update the specified operand. Only the specified fields are updated.

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:


DELETE /api/seq/operands/:id

Delete the specified operand. Deletion is blocked if the parent combined fragment has only 1 operand remaining.

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:


State Invariants

GET /api/seq/interactions/:id/state-invariants

List all state invariants of the specified interaction.

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:


POST /api/seq/interactions/:id/state-invariants

Create a new state invariant in the specified interaction.

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:


GET /api/seq/state-invariants/:id

Get the details of the specified state invariant.

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:


PUT /api/seq/state-invariants/:id

Update the specified state invariant. Only the specified fields are updated.

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:


DELETE /api/seq/state-invariants/:id

Delete the specified state invariant.

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:


Interaction Uses

GET /api/seq/interactions/:id/interaction-uses

List all interaction uses of the specified interaction.

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:


POST /api/seq/interactions/:id/interaction-uses

Create a new interaction use in the specified interaction.

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:


GET /api/seq/interaction-uses/:id

Get the details of the specified interaction use.

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:


PUT /api/seq/interaction-uses/:id

Update the specified interaction use. Only the specified fields are updated.

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:


DELETE /api/seq/interaction-uses/:id

Delete the specified interaction use.

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:

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

List all shape elements on a diagram.

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:


POST /api/diagrams/:id/shapes

Create a shape on a diagram.

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:


GET /api/shapes/:id

Get the details of a specific shape.

Path parameters:

Parameter Type Description
id string Shape (view) ID

Response: Shape object (same format as list response element).

Errors:


PUT /api/shapes/:id

Update a shape.

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:


DELETE /api/shapes/:id

Delete a shape from a diagram.

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:

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

List all class/package diagrams in the project.

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

Create a new class/package diagram.

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:


GET /api/class/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/class/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/class/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Classes

Types: UMLClass

GET /api/class/classes

List all 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

Create a class on a diagram.

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:


GET /api/class/classes/:id

Get the details of the specified class.

Path parameters:

Parameter Type Description
id string Class ID

Response: Class object (same format as list response element).

Errors:


PUT /api/class/classes/:id

Update the specified class. Only the specified fields are updated.

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:


DELETE /api/class/classes/:id

Delete the specified class and its views from all diagrams.

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:


GET /api/class/classes/:id/attributes

List attributes of the specified class.

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:


POST /api/class/classes/:id/attributes

Create an attribute on the specified class.

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:


GET /api/class/classes/:id/operations

List operations of the specified class.

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:


POST /api/class/classes/:id/operations

Create an operation on the specified class.

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:


GET /api/class/classes/:id/receptions

List receptions of the specified class.

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:


POST /api/class/classes/:id/receptions

Create a reception on the specified class.

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:


GET /api/class/classes/:id/template-parameters

List template parameters of the specified class.

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:


POST /api/class/classes/:id/template-parameters

Create a template parameter on the specified class.

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:


Interfaces

Types: UMLInterface

GET /api/class/interfaces

List all 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

Create an interface on a diagram.

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:


GET /api/class/interfaces/:id

Get the details of the specified interface.

Path parameters:

Parameter Type Description
id string Interface ID

Response: Interface object (same format as list response element).

Errors:


PUT /api/class/interfaces/:id

Update the specified interface. Only the specified fields are updated.

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:


DELETE /api/class/interfaces/:id

Delete the specified interface and its views from all diagrams.

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:


GET /api/class/interfaces/:id/attributes

List attributes of the specified interface.

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:


POST /api/class/interfaces/:id/attributes

Create an attribute on the specified interface.

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:


GET /api/class/interfaces/:id/operations

List operations of the specified interface.

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:


POST /api/class/interfaces/:id/operations

Create an operation on the specified interface.

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:


Enumerations

Types: UMLEnumeration

GET /api/class/enumerations

List all 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

Create an enumeration on a diagram.

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:


GET /api/class/enumerations/:id

Get the details of the specified enumeration.

Path parameters:

Parameter Type Description
id string Enumeration ID

Response: Enumeration object (same format as list response element).

Errors:


PUT /api/class/enumerations/:id

Update the specified enumeration. Only the specified fields are updated.

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:


DELETE /api/class/enumerations/:id

Delete the specified enumeration and its views from all diagrams.

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:


GET /api/class/enumerations/:id/literals

List literals of the specified enumeration.

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:


POST /api/class/enumerations/:id/literals

Create a literal on the specified enumeration.

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:


Data Types

Types: UMLDataType, UMLPrimitiveType, UMLSignal

GET /api/class/data-types

List all 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

Create a data type on a diagram.

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:


GET /api/class/data-types/:id

Get the details of the specified data type.

Path parameters:

Parameter Type Description
id string Data Type ID

Response: Data Type object (same format as list response element).

Errors:


PUT /api/class/data-types/:id

Update the specified data type. Only the specified fields are updated.

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:


DELETE /api/class/data-types/:id

Delete the specified data type and its views from all diagrams.

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:


Packages

Types: UMLPackage, UMLModel, UMLSubsystem

GET /api/class/packages

List all 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

Create a package on a diagram.

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:


GET /api/class/packages/:id

Get the details of the specified package.

Path parameters:

Parameter Type Description
id string Package ID

Response: Package object (same format as list response element).

Errors:


PUT /api/class/packages/:id

Update the specified package. Only the specified fields are updated.

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:


DELETE /api/class/packages/:id

Delete the specified package and its views from all diagrams.

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:


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

List all 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

Create an association between two elements on a diagram.

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:


GET /api/class/associations/:id

Get the details of the specified association.

Path parameters:

Parameter Type Description
id string Association ID

Response: Association object (same format as list response element).

Errors:


PUT /api/class/associations/:id

Update the specified association. Only the specified fields are updated.

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:


DELETE /api/class/associations/:id

Delete the specified association and its views from all diagrams.

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:


Generalizations

Type: UMLGeneralization

GET /api/class/generalizations

List all 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

Create a generalization between two elements on a diagram.

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:


GET /api/class/generalizations/:id

Get the details of the specified generalization.

Path parameters:

Parameter Type Description
id string Generalization ID

Response: Generalization object (same format as list response element).

Errors:


PUT /api/class/generalizations/:id

Update the specified generalization. Only the specified fields are updated.

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:


DELETE /api/class/generalizations/:id

Delete the specified generalization and its views from all diagrams.

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:


Dependencies

Type: UMLDependency

GET /api/class/dependencies

List all 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

Create a dependency between two elements on a diagram.

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:


GET /api/class/dependencies/:id

Get the details of the specified dependency.

Path parameters:

Parameter Type Description
id string Dependency ID

Response: Dependency object (same format as list response element).

Errors:


PUT /api/class/dependencies/:id

Update the specified dependency. Only the specified fields are updated.

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:


DELETE /api/class/dependencies/:id

Delete the specified dependency and its views from all diagrams.

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:


Interface Realizations

Type: UMLInterfaceRealization

GET /api/class/interface-realizations

List all 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

Create an interface realization between two elements on a diagram.

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:


GET /api/class/interface-realizations/:id

Get the details of the specified interface realization.

Path parameters:

Parameter Type Description
id string Interface Realization ID

Response: Interface Realization object (same format as list response element).

Errors:


PUT /api/class/interface-realizations/:id

Update the specified interface realization. Only the specified fields are updated.

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:


DELETE /api/class/interface-realizations/:id

Delete the specified interface realization and its views from all diagrams.

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:


Realizations

Type: UMLRealization

GET /api/class/realizations

List all 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

Create a realization between two elements on a diagram.

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:


GET /api/class/realizations/:id

Get the details of the specified realization.

Path parameters:

Parameter Type Description
id string Realization ID

Response: Realization object (same format as list response element).

Errors:


PUT /api/class/realizations/:id

Update the specified realization. Only the specified fields are updated.

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:


DELETE /api/class/realizations/:id

Delete the specified realization and its views from all diagrams.

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:


Template Bindings

Type: UMLTemplateBinding

GET /api/class/template-bindings

List all 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

Create a template binding between two elements on a diagram.

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:


GET /api/class/template-bindings/:id

Get the details of the specified template binding.

Path parameters:

Parameter Type Description
id string Template Binding ID

Response: Template Binding object (same format as list response element).

Errors:


PUT /api/class/template-bindings/:id

Update the specified template binding. Only the specified fields are updated.

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:


DELETE /api/class/template-bindings/:id

Delete the specified template binding and its views from all diagrams.

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:


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

List all use case diagrams in the project.

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

Create a new use case diagram.

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:


GET /api/usecase/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/usecase/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/usecase/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Actors

Types: UMLActor

GET /api/usecase/actors

List all 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

Create an actor on a diagram.

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:


GET /api/usecase/actors/:id

Get the details of the specified actor.

Path parameters:

Parameter Type Description
id string Actor ID

Response: Actor object (same format as list response element).

Errors:


PUT /api/usecase/actors/:id

Update the specified actor. Only the specified fields are updated.

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:


DELETE /api/usecase/actors/:id

Delete the specified actor and its views from all diagrams.

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:


Use Cases

Types: UMLUseCase

GET /api/usecase/use-cases

List all 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

Create an use case on a diagram.

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:


GET /api/usecase/use-cases/:id

Get the details of the specified use case.

Path parameters:

Parameter Type Description
id string Use Case ID

Response: Use Case object (same format as list response element).

Errors:


PUT /api/usecase/use-cases/:id

Update the specified use case. Only the specified fields are updated.

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:


DELETE /api/usecase/use-cases/:id

Delete the specified use case and its views from all diagrams.

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:


GET /api/usecase/use-cases/:id/extension-points

List extension points of the specified use case.

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:


POST /api/usecase/use-cases/:id/extension-points

Create an extension point on the specified use case.

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:


Subjects

Types: UMLUseCaseSubject

GET /api/usecase/subjects

List all 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

Create a subject on a diagram.

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:


GET /api/usecase/subjects/:id

Get the details of the specified subject.

Path parameters:

Parameter Type Description
id string Subject ID

Response: Subject object (same format as list response element).

Errors:


PUT /api/usecase/subjects/:id

Update the specified subject. Only the specified fields are updated.

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:


DELETE /api/usecase/subjects/:id

Delete the specified subject and its views from all diagrams.

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:


Associations

Type: UMLAssociation (hasEnds)

End fields: name, navigable, aggregation, multiplicity

GET /api/usecase/associations

List all 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

Create an association between two elements on a diagram.

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:


GET /api/usecase/associations/:id

Get the details of the specified association.

Path parameters:

Parameter Type Description
id string Association ID

Response: Association object (same format as list response element).

Errors:


PUT /api/usecase/associations/:id

Update the specified association. Only the specified fields are updated.

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:


DELETE /api/usecase/associations/:id

Delete the specified association and its views from all diagrams.

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:


Includes

Type: UMLInclude

GET /api/usecase/includes

List all 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

Create an include between two elements on a diagram.

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:


GET /api/usecase/includes/:id

Get the details of the specified include.

Path parameters:

Parameter Type Description
id string Include ID

Response: Include object (same format as list response element).

Errors:


PUT /api/usecase/includes/:id

Update the specified include. Only the specified fields are updated.

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:


DELETE /api/usecase/includes/:id

Delete the specified include and its views from all diagrams.

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:


Extends

Type: UMLExtend

GET /api/usecase/extends

List all 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

Create an extend between two elements on a diagram.

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:


GET /api/usecase/extends/:id

Get the details of the specified extend.

Path parameters:

Parameter Type Description
id string Extend ID

Response: Extend object (same format as list response element).

Errors:


PUT /api/usecase/extends/:id

Update the specified extend. Only the specified fields are updated.

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:


DELETE /api/usecase/extends/:id

Delete the specified extend and its views from all diagrams.

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:


Generalizations

Type: UMLGeneralization

GET /api/usecase/generalizations

List all 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

Create a generalization between two elements on a diagram.

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:


GET /api/usecase/generalizations/:id

Get the details of the specified generalization.

Path parameters:

Parameter Type Description
id string Generalization ID

Response: Generalization object (same format as list response element).

Errors:


PUT /api/usecase/generalizations/:id

Update the specified generalization. Only the specified fields are updated.

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:


DELETE /api/usecase/generalizations/:id

Delete the specified generalization and its views from all diagrams.

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:


Dependencies

Type: UMLDependency

GET /api/usecase/dependencies

List all 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

Create a dependency between two elements on a diagram.

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:


GET /api/usecase/dependencies/:id

Get the details of the specified dependency.

Path parameters:

Parameter Type Description
id string Dependency ID

Response: Dependency object (same format as list response element).

Errors:


PUT /api/usecase/dependencies/:id

Update the specified dependency. Only the specified fields are updated.

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:


DELETE /api/usecase/dependencies/:id

Delete the specified dependency and its views from all diagrams.

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:


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

List all activity diagrams in the project.

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

Create a new activity diagram.

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:


GET /api/activity/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/activity/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/activity/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Actions

Types: UMLAction

GET /api/activity/actions

List all 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

Create an action on a diagram.

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:


GET /api/activity/actions/:id

Get the details of the specified action.

Path parameters:

Parameter Type Description
id string Action ID

Response: Action object (same format as list response element).

Errors:


PUT /api/activity/actions/:id

Update the specified action. Only the specified fields are updated.

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:


DELETE /api/activity/actions/:id

Delete the specified action and its views from all diagrams.

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:


GET /api/activity/actions/:id/pins

List pins of the specified action.

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:


POST /api/activity/actions/:id/pins

Create a pin on the specified action.

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:


GET /api/activity/actions/:id/output-pins

List output pins of the specified action.

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:


POST /api/activity/actions/:id/output-pins

Create an output pin on the specified action.

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:


Control Nodes

Types: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode, UMLActivityEdgeConnector

GET /api/activity/control-nodes

List all 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

Create a control node on a diagram.

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:


GET /api/activity/control-nodes/:id

Get the details of the specified control node.

Path parameters:

Parameter Type Description
id string Control Node ID

Response: Control Node object (same format as list response element).

Errors:


PUT /api/activity/control-nodes/:id

Update the specified control node. Only the specified fields are updated.

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:


DELETE /api/activity/control-nodes/:id

Delete the specified control node and its views from all diagrams.

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:


Object Nodes

Types: UMLObjectNode, UMLCentralBufferNode, UMLDataStoreNode

GET /api/activity/object-nodes

List all 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

Create an object node on a diagram.

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:


GET /api/activity/object-nodes/:id

Get the details of the specified object node.

Path parameters:

Parameter Type Description
id string Object Node ID

Response: Object Node object (same format as list response element).

Errors:


PUT /api/activity/object-nodes/:id

Update the specified object node. Only the specified fields are updated.

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:


DELETE /api/activity/object-nodes/:id

Delete the specified object node and its views from all diagrams.

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:


Partitions

Types: UMLActivityPartition

GET /api/activity/partitions

List all 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

Create a partition on a diagram.

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:


GET /api/activity/partitions/:id

Get the details of the specified partition.

Path parameters:

Parameter Type Description
id string Partition ID

Response: Partition object (same format as list response element).

Errors:


PUT /api/activity/partitions/:id

Update the specified partition. Only the specified fields are updated.

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:


DELETE /api/activity/partitions/:id

Delete the specified partition and its views from all diagrams.

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:


Regions

Types: UMLExpansionRegion, UMLInterruptibleActivityRegion

GET /api/activity/regions

List all 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

Create a region on a diagram.

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:


GET /api/activity/regions/:id

Get the details of the specified region.

Path parameters:

Parameter Type Description
id string Region ID

Response: Region object (same format as list response element).

Errors:


PUT /api/activity/regions/:id

Update the specified region. Only the specified fields are updated.

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:


DELETE /api/activity/regions/:id

Delete the specified region and its views from all diagrams.

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:


Control Flows

Type: UMLControlFlow

GET /api/activity/control-flows

List all 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

Create a control flow between two elements on a diagram.

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:


GET /api/activity/control-flows/:id

Get the details of the specified control flow.

Path parameters:

Parameter Type Description
id string Control Flow ID

Response: Control Flow object (same format as list response element).

Errors:


PUT /api/activity/control-flows/:id

Update the specified control flow. Only the specified fields are updated.

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:


DELETE /api/activity/control-flows/:id

Delete the specified control flow and its views from all diagrams.

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:


Object Flows

Type: UMLObjectFlow

GET /api/activity/object-flows

List all 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

Create an object flow between two elements on a diagram.

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:


GET /api/activity/object-flows/:id

Get the details of the specified object flow.

Path parameters:

Parameter Type Description
id string Object Flow ID

Response: Object Flow object (same format as list response element).

Errors:


PUT /api/activity/object-flows/:id

Update the specified object flow. Only the specified fields are updated.

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:


DELETE /api/activity/object-flows/:id

Delete the specified object flow and its views from all diagrams.

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:


Exception Handlers

Type: UMLExceptionHandler

GET /api/activity/exception-handlers

List all 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

Create an exception handler between two elements on a diagram.

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:


GET /api/activity/exception-handlers/:id

Get the details of the specified exception handler.

Path parameters:

Parameter Type Description
id string Exception Handler ID

Response: Exception Handler object (same format as list response element).

Errors:


PUT /api/activity/exception-handlers/:id

Update the specified exception handler. Only the specified fields are updated.

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:


DELETE /api/activity/exception-handlers/:id

Delete the specified exception handler and its views from all diagrams.

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:


Activity Interrupts

Type: UMLActivityInterrupt

GET /api/activity/activity-interrupts

List all 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

Create an activity interrupt between two elements on a diagram.

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:


GET /api/activity/activity-interrupts/:id

Get the details of the specified activity interrupt.

Path parameters:

Parameter Type Description
id string Activity Interrupt ID

Response: Activity Interrupt object (same format as list response element).

Errors:


PUT /api/activity/activity-interrupts/:id

Update the specified activity interrupt. Only the specified fields are updated.

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:


DELETE /api/activity/activity-interrupts/:id

Delete the specified activity interrupt and its views from all diagrams.

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:


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

List all state machine diagrams in the project.

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

Create a new state machine diagram.

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:


GET /api/statemachine/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/statemachine/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/statemachine/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


States

Types: UMLState, UMLSubmachineState

GET /api/statemachine/states

List all 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

Create a state on a diagram.

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:


GET /api/statemachine/states/:id

Get the details of the specified state.

Path parameters:

Parameter Type Description
id string State ID

Response: State object (same format as list response element).

Errors:


PUT /api/statemachine/states/:id

Update the specified state. Only the specified fields are updated.

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:


DELETE /api/statemachine/states/:id

Delete the specified state and its views from all diagrams.

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:


GET /api/statemachine/states/:id/regions

List regions of the specified state.

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:


POST /api/statemachine/states/:id/regions

Create a region on the specified state.

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:


Pseudostates

Types: UMLPseudostate

GET /api/statemachine/pseudostates

List all 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

Create a pseudostate on a diagram.

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:


GET /api/statemachine/pseudostates/:id

Get the details of the specified pseudostate.

Path parameters:

Parameter Type Description
id string Pseudostate ID

Response: Pseudostate object (same format as list response element).

Errors:


PUT /api/statemachine/pseudostates/:id

Update the specified pseudostate. Only the specified fields are updated.

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:


DELETE /api/statemachine/pseudostates/:id

Delete the specified pseudostate and its views from all diagrams.

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:


Final States

Types: UMLFinalState

GET /api/statemachine/final-states

List all 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

Create a final state on a diagram.

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:


GET /api/statemachine/final-states/:id

Get the details of the specified final state.

Path parameters:

Parameter Type Description
id string Final State ID

Response: Final State object (same format as list response element).

Errors:


PUT /api/statemachine/final-states/:id

Update the specified final state. Only the specified fields are updated.

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:


DELETE /api/statemachine/final-states/:id

Delete the specified final state and its views from all diagrams.

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:


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

List all 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

Create a transition between two elements on a diagram.

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:


GET /api/statemachine/transitions/:id

Get the details of the specified transition.

Path parameters:

Parameter Type Description
id string Transition ID

Response: Transition object (same format as list response element).

Errors:


PUT /api/statemachine/transitions/:id

Update the specified transition. Only the specified fields are updated.

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:


DELETE /api/statemachine/transitions/:id

Delete the specified transition and its views from all diagrams.

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:


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

List all component diagrams in the project.

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

Create a new component diagram.

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:


GET /api/component/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/component/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/component/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Components

Types: UMLComponent

GET /api/component/components

List all 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

Create a component on a diagram.

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:


GET /api/component/components/:id

Get the details of the specified component.

Path parameters:

Parameter Type Description
id string Component ID

Response: Component object (same format as list response element).

Errors:


PUT /api/component/components/:id

Update the specified component. Only the specified fields are updated.

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:


DELETE /api/component/components/:id

Delete the specified component and its views from all diagrams.

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:


Artifacts

Types: UMLArtifact

GET /api/component/artifacts

List all 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

Create an artifact on a diagram.

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:


GET /api/component/artifacts/:id

Get the details of the specified artifact.

Path parameters:

Parameter Type Description
id string Artifact ID

Response: Artifact object (same format as list response element).

Errors:


PUT /api/component/artifacts/:id

Update the specified artifact. Only the specified fields are updated.

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:


DELETE /api/component/artifacts/:id

Delete the specified artifact and its views from all diagrams.

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:


Component Realizations

Type: UMLComponentRealization

GET /api/component/component-realizations

List all 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

Create a component realization between two elements on a diagram.

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:


GET /api/component/component-realizations/:id

Get the details of the specified component realization.

Path parameters:

Parameter Type Description
id string Component Realization ID

Response: Component Realization object (same format as list response element).

Errors:


PUT /api/component/component-realizations/:id

Update the specified component realization. Only the specified fields are updated.

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:


DELETE /api/component/component-realizations/:id

Delete the specified component realization and its views from all diagrams.

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:


Dependencies

Type: UMLDependency

GET /api/component/dependencies

List all 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

Create a dependency between two elements on a diagram.

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:


GET /api/component/dependencies/:id

Get the details of the specified dependency.

Path parameters:

Parameter Type Description
id string Dependency ID

Response: Dependency object (same format as list response element).

Errors:


PUT /api/component/dependencies/:id

Update the specified dependency. Only the specified fields are updated.

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:


DELETE /api/component/dependencies/:id

Delete the specified dependency and its views from all diagrams.

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:


Generalizations

Type: UMLGeneralization

GET /api/component/generalizations

List all 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

Create a generalization between two elements on a diagram.

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:


GET /api/component/generalizations/:id

Get the details of the specified generalization.

Path parameters:

Parameter Type Description
id string Generalization ID

Response: Generalization object (same format as list response element).

Errors:


PUT /api/component/generalizations/:id

Update the specified generalization. Only the specified fields are updated.

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:


DELETE /api/component/generalizations/:id

Delete the specified generalization and its views from all diagrams.

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:


Interface Realizations

Type: UMLInterfaceRealization

GET /api/component/interface-realizations

List all 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

Create an interface realization between two elements on a diagram.

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:


GET /api/component/interface-realizations/:id

Get the details of the specified interface realization.

Path parameters:

Parameter Type Description
id string Interface Realization ID

Response: Interface Realization object (same format as list response element).

Errors:


PUT /api/component/interface-realizations/:id

Update the specified interface realization. Only the specified fields are updated.

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:


DELETE /api/component/interface-realizations/:id

Delete the specified interface realization and its views from all diagrams.

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:


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

List all deployment diagrams in the project.

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

Create a new deployment diagram.

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:


GET /api/deployment/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/deployment/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/deployment/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Nodes

Types: UMLNode

GET /api/deployment/nodes

List all 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

Create a node on a diagram.

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:


GET /api/deployment/nodes/:id

Get the details of the specified node.

Path parameters:

Parameter Type Description
id string Node ID

Response: Node object (same format as list response element).

Errors:


PUT /api/deployment/nodes/:id

Update the specified node. Only the specified fields are updated.

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:


DELETE /api/deployment/nodes/:id

Delete the specified node and its views from all diagrams.

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:


Node Instances

Types: UMLNodeInstance

GET /api/deployment/node-instances

List all 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

Create a node instance on a diagram.

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:


GET /api/deployment/node-instances/:id

Get the details of the specified node instance.

Path parameters:

Parameter Type Description
id string Node Instance ID

Response: Node Instance object (same format as list response element).

Errors:


PUT /api/deployment/node-instances/:id

Update the specified node instance. Only the specified fields are updated.

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:


DELETE /api/deployment/node-instances/:id

Delete the specified node instance and its views from all diagrams.

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:


Artifact Instances

Types: UMLArtifactInstance

GET /api/deployment/artifact-instances

List all 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

Create an artifact instance on a diagram.

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:


GET /api/deployment/artifact-instances/:id

Get the details of the specified artifact instance.

Path parameters:

Parameter Type Description
id string Artifact Instance ID

Response: Artifact Instance object (same format as list response element).

Errors:


PUT /api/deployment/artifact-instances/:id

Update the specified artifact instance. Only the specified fields are updated.

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:


DELETE /api/deployment/artifact-instances/:id

Delete the specified artifact instance and its views from all diagrams.

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:


Component Instances

Types: UMLComponentInstance

GET /api/deployment/component-instances

List all 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

Create a component instance on a diagram.

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:


GET /api/deployment/component-instances/:id

Get the details of the specified component instance.

Path parameters:

Parameter Type Description
id string Component Instance ID

Response: Component Instance object (same format as list response element).

Errors:


PUT /api/deployment/component-instances/:id

Update the specified component instance. Only the specified fields are updated.

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:


DELETE /api/deployment/component-instances/:id

Delete the specified component instance and its views from all diagrams.

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:


Artifacts

Types: UMLArtifact

GET /api/deployment/artifacts

List all 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

Create an artifact on a diagram.

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:


GET /api/deployment/artifacts/:id

Get the details of the specified artifact.

Path parameters:

Parameter Type Description
id string Artifact ID

Response: Artifact object (same format as list response element).

Errors:


PUT /api/deployment/artifacts/:id

Update the specified artifact. Only the specified fields are updated.

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:


DELETE /api/deployment/artifacts/:id

Delete the specified artifact and its views from all diagrams.

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:


Deployments

Type: UMLDeployment

GET /api/deployment/deployments

List all 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

Create a deployment between two elements on a diagram.

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:


GET /api/deployment/deployments/:id

Get the details of the specified deployment.

Path parameters:

Parameter Type Description
id string Deployment ID

Response: Deployment object (same format as list response element).

Errors:


PUT /api/deployment/deployments/:id

Update the specified deployment. Only the specified fields are updated.

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:


DELETE /api/deployment/deployments/:id

Delete the specified deployment and its views from all diagrams.

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:


Communication Paths

Type: UMLCommunicationPath (hasEnds)

End fields: name, navigable, aggregation, multiplicity

GET /api/deployment/communication-paths

List all 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

Create a communication path between two elements on a diagram.

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:


GET /api/deployment/communication-paths/:id

Get the details of the specified communication path.

Path parameters:

Parameter Type Description
id string Communication Path ID

Response: Communication Path object (same format as list response element).

Errors:


PUT /api/deployment/communication-paths/:id

Update the specified communication path. Only the specified fields are updated.

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:


DELETE /api/deployment/communication-paths/:id

Delete the specified communication path and its views from all diagrams.

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:


Dependencies

Type: UMLDependency

GET /api/deployment/dependencies

List all 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

Create a dependency between two elements on a diagram.

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:


GET /api/deployment/dependencies/:id

Get the details of the specified dependency.

Path parameters:

Parameter Type Description
id string Dependency ID

Response: Dependency object (same format as list response element).

Errors:


PUT /api/deployment/dependencies/:id

Update the specified dependency. Only the specified fields are updated.

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:


DELETE /api/deployment/dependencies/:id

Delete the specified dependency and its views from all diagrams.

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:


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

List all object diagrams in the project.

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

Create a new object diagram.

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:


GET /api/object/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/object/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/object/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Objects

Types: UMLObject

GET /api/object/objects

List all 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

Create an object on a diagram.

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:


GET /api/object/objects/:id

Get the details of the specified object.

Path parameters:

Parameter Type Description
id string Object ID

Response: Object object (same format as list response element).

Errors:


PUT /api/object/objects/:id

Update the specified object. Only the specified fields are updated.

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:


DELETE /api/object/objects/:id

Delete the specified object and its views from all diagrams.

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:


GET /api/object/objects/:id/slots

List slots of the specified object.

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:


POST /api/object/objects/:id/slots

Create a slot on the specified object.

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:


Type: UMLLink (hasEnds)

End fields: name, navigable, aggregation, multiplicity

List all 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

Create a link between two elements on a diagram.

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:


Get the details of the specified link.

Path parameters:

Parameter Type Description
id string Link ID

Response: Link object (same format as list response element).

Errors:


Update the specified link. Only the specified fields are updated.

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:


Delete the specified link and its views from all diagrams.

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:


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

List all communication diagrams in the project.

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

Create a new communication diagram.

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:


GET /api/communication/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/communication/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/communication/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Lifelines

Types: UMLLifeline

GET /api/communication/lifelines

List all 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

Create a lifeline on a diagram.

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:


GET /api/communication/lifelines/:id

Get the details of the specified lifeline.

Path parameters:

Parameter Type Description
id string Lifeline ID

Response: Lifeline object (same format as list response element).

Errors:


PUT /api/communication/lifelines/:id

Update the specified lifeline. Only the specified fields are updated.

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:


DELETE /api/communication/lifelines/:id

Delete the specified lifeline and its views from all diagrams.

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:


Connectors

Type: UMLConnector (hasEnds)

End fields: name, navigable, aggregation, multiplicity

GET /api/communication/connectors

List all 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

Create a connector between two elements on a diagram.

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:


GET /api/communication/connectors/:id

Get the details of the specified connector.

Path parameters:

Parameter Type Description
id string Connector ID

Response: Connector object (same format as list response element).

Errors:


PUT /api/communication/connectors/:id

Update the specified connector. Only the specified fields are updated.

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:


DELETE /api/communication/connectors/:id

Delete the specified connector and its views from all diagrams.

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:


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

List all composite structure diagrams in the project.

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

Create a new composite structure diagram.

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:


GET /api/composite/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/composite/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/composite/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Ports

Types: UMLPort

GET /api/composite/ports

List all 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

Create a port on a diagram.

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:


GET /api/composite/ports/:id

Get the details of the specified port.

Path parameters:

Parameter Type Description
id string Port ID

Response: Port object (same format as list response element).

Errors:


PUT /api/composite/ports/:id

Update the specified port. Only the specified fields are updated.

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:


DELETE /api/composite/ports/:id

Delete the specified port and its views from all diagrams.

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:


Parts

Types: UMLPart

GET /api/composite/parts

List all 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

Create a part on a diagram.

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:


GET /api/composite/parts/:id

Get the details of the specified part.

Path parameters:

Parameter Type Description
id string Part ID

Response: Part object (same format as list response element).

Errors:


PUT /api/composite/parts/:id

Update the specified part. Only the specified fields are updated.

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:


DELETE /api/composite/parts/:id

Delete the specified part and its views from all diagrams.

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:


Collaborations

Types: UMLCollaboration

GET /api/composite/collaborations

List all 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

Create a collaboration on a diagram.

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:


GET /api/composite/collaborations/:id

Get the details of the specified collaboration.

Path parameters:

Parameter Type Description
id string Collaboration ID

Response: Collaboration object (same format as list response element).

Errors:


PUT /api/composite/collaborations/:id

Update the specified collaboration. Only the specified fields are updated.

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:


DELETE /api/composite/collaborations/:id

Delete the specified collaboration and its views from all diagrams.

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:


Collaboration Uses

Types: UMLCollaborationUse

GET /api/composite/collaboration-uses

List all 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

Create a collaboration use on a diagram.

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:


GET /api/composite/collaboration-uses/:id

Get the details of the specified collaboration use.

Path parameters:

Parameter Type Description
id string Collaboration Use ID

Response: Collaboration Use object (same format as list response element).

Errors:


PUT /api/composite/collaboration-uses/:id

Update the specified collaboration use. Only the specified fields are updated.

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:


DELETE /api/composite/collaboration-uses/:id

Delete the specified collaboration use and its views from all diagrams.

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:


Role Bindings

Type: UMLRoleBinding (hasEnds)

End fields: name, navigable, aggregation, multiplicity

GET /api/composite/role-bindings

List all 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

Create a role binding between two elements on a diagram.

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:


GET /api/composite/role-bindings/:id

Get the details of the specified role binding.

Path parameters:

Parameter Type Description
id string Role Binding ID

Response: Role Binding object (same format as list response element).

Errors:


PUT /api/composite/role-bindings/:id

Update the specified role binding. Only the specified fields are updated.

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:


DELETE /api/composite/role-bindings/:id

Delete the specified role binding and its views from all diagrams.

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:


Dependencies

Type: UMLDependency

GET /api/composite/dependencies

List all 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

Create a dependency between two elements on a diagram.

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:


GET /api/composite/dependencies/:id

Get the details of the specified dependency.

Path parameters:

Parameter Type Description
id string Dependency ID

Response: Dependency object (same format as list response element).

Errors:


PUT /api/composite/dependencies/:id

Update the specified dependency. Only the specified fields are updated.

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:


DELETE /api/composite/dependencies/:id

Delete the specified dependency and its views from all diagrams.

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:


Realizations

Type: UMLRealization

GET /api/composite/realizations

List all 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

Create a realization between two elements on a diagram.

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:


GET /api/composite/realizations/:id

Get the details of the specified realization.

Path parameters:

Parameter Type Description
id string Realization ID

Response: Realization object (same format as list response element).

Errors:


PUT /api/composite/realizations/:id

Update the specified realization. Only the specified fields are updated.

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:


DELETE /api/composite/realizations/:id

Delete the specified realization and its views from all diagrams.

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:


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

List all information flow diagrams in the project.

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

Create a new information flow diagram.

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:


GET /api/infoflow/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/infoflow/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/infoflow/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Info Items

Types: UMLInformationItem

GET /api/infoflow/info-items

List all 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

Create an information item on a diagram.

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:


GET /api/infoflow/info-items/:id

Get the details of the specified information item.

Path parameters:

Parameter Type Description
id string Information Item ID

Response: Information Item object (same format as list response element).

Errors:


PUT /api/infoflow/info-items/:id

Update the specified information item. Only the specified fields are updated.

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:


DELETE /api/infoflow/info-items/:id

Delete the specified information item and its views from all diagrams.

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:


Information Flows

Type: UMLInformationFlow

GET /api/infoflow/information-flows

List all 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

Create an information flow between two elements on a diagram.

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:


GET /api/infoflow/information-flows/:id

Get the details of the specified information flow.

Path parameters:

Parameter Type Description
id string Information Flow ID

Response: Information Flow object (same format as list response element).

Errors:


PUT /api/infoflow/information-flows/:id

Update the specified information flow. Only the specified fields are updated.

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:


DELETE /api/infoflow/information-flows/:id

Delete the specified information flow and its views from all diagrams.

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:


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

List all profile diagrams in the project.

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

Create a new profile diagram.

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:


GET /api/profile/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/profile/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/profile/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Profiles

Types: UMLProfile

GET /api/profile/profiles

List all 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

Create a profile on a diagram.

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:


GET /api/profile/profiles/:id

Get the details of the specified profile.

Path parameters:

Parameter Type Description
id string Profile ID

Response: Profile object (same format as list response element).

Errors:


PUT /api/profile/profiles/:id

Update the specified profile. Only the specified fields are updated.

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:


DELETE /api/profile/profiles/:id

Delete the specified profile and its views from all diagrams.

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:


Stereotypes

Types: UMLStereotype

GET /api/profile/stereotypes

List all 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

Create a stereotype on a diagram.

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:


GET /api/profile/stereotypes/:id

Get the details of the specified stereotype.

Path parameters:

Parameter Type Description
id string Stereotype ID

Response: Stereotype object (same format as list response element).

Errors:


PUT /api/profile/stereotypes/:id

Update the specified stereotype. Only the specified fields are updated.

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:


DELETE /api/profile/stereotypes/:id

Delete the specified stereotype and its views from all diagrams.

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:


GET /api/profile/stereotypes/:id/attributes

List attributes (tagged value definitions) of the specified stereotype.

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:


POST /api/profile/stereotypes/:id/attributes

Create an attribute (tagged value definition) on the specified stereotype.

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:


GET /api/profile/stereotypes/:id/operations

List operations of the specified stereotype.

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:


POST /api/profile/stereotypes/:id/operations

Create an operation on the specified stereotype.

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:


Metaclasses

Types: UMLMetaClass

GET /api/profile/metaclasses

List all 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

Create a metaclass on a diagram.

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:


GET /api/profile/metaclasses/:id

Get the details of the specified metaclass.

Path parameters:

Parameter Type Description
id string Metaclass ID

Response: Metaclass object (same format as list response element).

Errors:


PUT /api/profile/metaclasses/:id

Update the specified metaclass. Only the specified fields are updated.

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:


DELETE /api/profile/metaclasses/:id

Delete the specified metaclass and its views from all diagrams.

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:


Extensions

Type: UMLExtension

GET /api/profile/extensions

List all 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

Create an extension between two elements on a diagram.

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:


GET /api/profile/extensions/:id

Get the details of the specified extension.

Path parameters:

Parameter Type Description
id string Extension ID

Response: Extension object (same format as list response element).

Errors:


PUT /api/profile/extensions/:id

Update the specified extension. Only the specified fields are updated.

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:


DELETE /api/profile/extensions/:id

Delete the specified extension and its views from all diagrams.

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:


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

List all timing diagrams in the project.

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

Create a new timing diagram.

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:


GET /api/timing/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/timing/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/timing/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Lifelines

Types: UMLLifeline

GET /api/timing/lifelines

List all 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

Create a lifeline on a timing diagram. Requires 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:


GET /api/timing/lifelines/:id

Get the details of the specified lifeline.

Path parameters:

Parameter Type Description
id string Lifeline ID

Response: Lifeline object (same format as list response element).

Errors:


PUT /api/timing/lifelines/:id

Update the specified lifeline. Only the specified fields are updated.

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:


DELETE /api/timing/lifelines/:id

Delete the specified lifeline and its views from all diagrams.

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:


Timing States

Types: UMLTimingState

GET /api/timing/timing-states

List all 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

Create a timing state on a diagram. Requires 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:


GET /api/timing/timing-states/:id

Get the details of the specified timing state.

Path parameters:

Parameter Type Description
id string Timing State ID

Response: Timing State object (same format as list response element).

Errors:


PUT /api/timing/timing-states/:id

Update the specified timing state. Only the specified fields are updated.

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:


DELETE /api/timing/timing-states/:id

Delete the specified timing state and its views from all diagrams.

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:


Time Segments

Type: UMLTimeSegment

GET /api/timing/time-segments

List all 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

Create a time segment between two elements on a diagram.

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:


GET /api/timing/time-segments/:id

Get the details of the specified time segment.

Path parameters:

Parameter Type Description
id string Time Segment ID

Response: Time Segment object (same format as list response element).

Errors:


PUT /api/timing/time-segments/:id

Update the specified time segment. Only the specified fields are updated.

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:


DELETE /api/timing/time-segments/:id

Delete the specified time segment and its views from all diagrams.

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:


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

List all interaction overview diagrams in the project.

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

Create a new interaction overview diagram.

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:


GET /api/overview/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/overview/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/overview/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Interaction Uses

Types: UMLInteractionUseInOverview

GET /api/overview/interaction-uses

List all 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

Create an interaction use on a diagram.

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:


GET /api/overview/interaction-uses/:id

Get the details of the specified interaction use.

Path parameters:

Parameter Type Description
id string Interaction Use ID

Response: Interaction Use object (same format as list response element).

Errors:


PUT /api/overview/interaction-uses/:id

Update the specified interaction use. Only the specified fields are updated.

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:


DELETE /api/overview/interaction-uses/:id

Delete the specified interaction use and its views from all diagrams.

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:


Interactions

Types: UMLInteractionInOverview

GET /api/overview/interactions

List all 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

Create an interaction on a diagram.

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:


GET /api/overview/interactions/:id

Get the details of the specified interaction.

Path parameters:

Parameter Type Description
id string Interaction ID

Response: Interaction object (same format as list response element).

Errors:


PUT /api/overview/interactions/:id

Update the specified interaction. Only the specified fields are updated.

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:


DELETE /api/overview/interactions/:id

Delete the specified interaction and its views from all diagrams.

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:


Control Nodes

Types: UMLInitialNode, UMLActivityFinalNode, UMLFlowFinalNode, UMLForkNode, UMLJoinNode, UMLMergeNode, UMLDecisionNode

GET /api/overview/control-nodes

List all 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

Create a control node on a diagram.

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:


GET /api/overview/control-nodes/:id

Get the details of the specified control node.

Path parameters:

Parameter Type Description
id string Control Node ID

Response: Control Node object (same format as list response element).

Errors:


PUT /api/overview/control-nodes/:id

Update the specified control node. Only the specified fields are updated.

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:


DELETE /api/overview/control-nodes/:id

Delete the specified control node and its views from all diagrams.

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:


Control Flows

Type: UMLControlFlow

GET /api/overview/control-flows

List all 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

Create a control flow between two elements on a diagram.

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:


GET /api/overview/control-flows/:id

Get the details of the specified control flow.

Path parameters:

Parameter Type Description
id string Control Flow ID

Response: Control Flow object (same format as list response element).

Errors:


PUT /api/overview/control-flows/:id

Update the specified control flow. Only the specified fields are updated.

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:


DELETE /api/overview/control-flows/:id

Delete the specified control flow and its views from all diagrams.

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:


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

List all flowchart diagrams in the project.

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

Create a new flowchart diagram.

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:


GET /api/flowchart/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/flowchart/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/flowchart/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


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

List all 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

Create a node on a diagram.

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:


GET /api/flowchart/nodes/:id

Get the details of the specified node.

Path parameters:

Parameter Type Description
id string Node ID

Response: Node object (same format as list response element).

Errors:


PUT /api/flowchart/nodes/:id

Update the specified node. Only the specified fields are updated.

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:


DELETE /api/flowchart/nodes/:id

Delete the specified node and its views from all diagrams.

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:


Flows

Type: FCFlow

GET /api/flowchart/flows

List all 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

Create a flow between two elements on a diagram.

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:


GET /api/flowchart/flows/:id

Get the details of the specified flow.

Path parameters:

Parameter Type Description
id string Flow ID

Response: Flow object (same format as list response element).

Errors:


PUT /api/flowchart/flows/:id

Update the specified flow. Only the specified fields are updated.

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:


DELETE /api/flowchart/flows/:id

Delete the specified flow and its views from all diagrams.

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:


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

List all dfd diagrams in the project.

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

Create a new dfd diagram.

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:


GET /api/dfd/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/dfd/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/dfd/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


External Entities

Types: DFDExternalEntity

GET /api/dfd/external-entities

List all 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

Create an external entity on a diagram.

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:


GET /api/dfd/external-entities/:id

Get the details of the specified external entity.

Path parameters:

Parameter Type Description
id string External Entity ID

Response: External Entity object (same format as list response element).

Errors:


PUT /api/dfd/external-entities/:id

Update the specified external entity. Only the specified fields are updated.

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:


DELETE /api/dfd/external-entities/:id

Delete the specified external entity and its views from all diagrams.

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:


Processes

Types: DFDProcess

GET /api/dfd/processes

List all 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

Create a process on a diagram.

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:


GET /api/dfd/processes/:id

Get the details of the specified process.

Path parameters:

Parameter Type Description
id string Process ID

Response: Process object (same format as list response element).

Errors:


PUT /api/dfd/processes/:id

Update the specified process. Only the specified fields are updated.

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:


DELETE /api/dfd/processes/:id

Delete the specified process and its views from all diagrams.

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:


Data Stores

Types: DFDDataStore

GET /api/dfd/data-stores

List all 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

Create a data store on a diagram.

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:


GET /api/dfd/data-stores/:id

Get the details of the specified data store.

Path parameters:

Parameter Type Description
id string Data Store ID

Response: Data Store object (same format as list response element).

Errors:


PUT /api/dfd/data-stores/:id

Update the specified data store. Only the specified fields are updated.

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:


DELETE /api/dfd/data-stores/:id

Delete the specified data store and its views from all diagrams.

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:


Data Flows

Type: DFDDataFlow

GET /api/dfd/data-flows

List all 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

Create a data flow between two elements on a diagram.

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:


GET /api/dfd/data-flows/:id

Get the details of the specified data flow.

Path parameters:

Parameter Type Description
id string Data Flow ID

Response: Data Flow object (same format as list response element).

Errors:


PUT /api/dfd/data-flows/:id

Update the specified data flow. Only the specified fields are updated.

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:


DELETE /api/dfd/data-flows/:id

Delete the specified data flow and its views from all diagrams.

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:


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

List all bpmn diagrams in the project.

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

Create a new bpmn diagram.

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:


GET /api/bpmn/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/bpmn/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/bpmn/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Participants

Types: BPMNParticipant

GET /api/bpmn/participants

List all 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

Create a participant on a diagram.

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:


GET /api/bpmn/participants/:id

Get the details of the specified participant.

Path parameters:

Parameter Type Description
id string Participant ID

Response: Participant object (same format as list response element).

Errors:


PUT /api/bpmn/participants/:id

Update the specified participant. Only the specified fields are updated.

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:


DELETE /api/bpmn/participants/:id

Delete the specified participant and its views from all diagrams.

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:


GET /api/bpmn/participants/:id/lanes

List lanes of the specified participant.

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:


POST /api/bpmn/participants/:id/lanes

Create a lane on the specified participant.

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:


Tasks

Types: BPMNTask, BPMNSendTask, BPMNReceiveTask, BPMNServiceTask, BPMNUserTask, BPMNManualTask, BPMNBusinessRuleTask, BPMNScriptTask, BPMNCallActivity

GET /api/bpmn/tasks

List all 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

Create a task on a diagram.

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:


GET /api/bpmn/tasks/:id

Get the details of the specified task.

Path parameters:

Parameter Type Description
id string Task ID

Response: Task object (same format as list response element).

Errors:


PUT /api/bpmn/tasks/:id

Update the specified task. Only the specified fields are updated.

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:


DELETE /api/bpmn/tasks/:id

Delete the specified task and its views from all diagrams.

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:


Sub Processes

Types: BPMNSubProcess, BPMNAdHocSubProcess, BPMNTransaction

GET /api/bpmn/sub-processes

List all 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

Create a sub-process on a diagram.

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:


GET /api/bpmn/sub-processes/:id

Get the details of the specified sub-process.

Path parameters:

Parameter Type Description
id string Sub-Process ID

Response: Sub-Process object (same format as list response element).

Errors:


PUT /api/bpmn/sub-processes/:id

Update the specified sub-process. Only the specified fields are updated.

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:


DELETE /api/bpmn/sub-processes/:id

Delete the specified sub-process and its views from all diagrams.

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:


Events

Types: BPMNStartEvent, BPMNIntermediateThrowEvent, BPMNIntermediateCatchEvent, BPMNBoundaryEvent, BPMNEndEvent

GET /api/bpmn/events

List all 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

Create an event on a diagram.

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:


GET /api/bpmn/events/:id

Get the details of the specified event.

Path parameters:

Parameter Type Description
id string Event ID

Response: Event object (same format as list response element).

Errors:


PUT /api/bpmn/events/:id

Update the specified event. Only the specified fields are updated.

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:


DELETE /api/bpmn/events/:id

Delete the specified event and its views from all diagrams.

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:


GET /api/bpmn/events/:id/event-definitions

List event definitions of the specified event.

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:


POST /api/bpmn/events/:id/event-definitions

Create an event definition on the specified event.

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:


Gateways

Types: BPMNExclusiveGateway, BPMNInclusiveGateway, BPMNComplexGateway, BPMNParallelGateway, BPMNEventBasedGateway

GET /api/bpmn/gateways

List all 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

Create a gateway on a diagram.

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:


GET /api/bpmn/gateways/:id

Get the details of the specified gateway.

Path parameters:

Parameter Type Description
id string Gateway ID

Response: Gateway object (same format as list response element).

Errors:


PUT /api/bpmn/gateways/:id

Update the specified gateway. Only the specified fields are updated.

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:


DELETE /api/bpmn/gateways/:id

Delete the specified gateway and its views from all diagrams.

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:


Data Objects

Types: BPMNDataObject, BPMNDataStore, BPMNDataInput, BPMNDataOutput, BPMNMessage

GET /api/bpmn/data-objects

List all 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

Create a data object on a diagram.

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:


GET /api/bpmn/data-objects/:id

Get the details of the specified data object.

Path parameters:

Parameter Type Description
id string Data Object ID

Response: Data Object object (same format as list response element).

Errors:


PUT /api/bpmn/data-objects/:id

Update the specified data object. Only the specified fields are updated.

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:


DELETE /api/bpmn/data-objects/:id

Delete the specified data object and its views from all diagrams.

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:


Conversations

Types: BPMNConversation, BPMNSubConversation, BPMNCallConversation

GET /api/bpmn/conversations

List all 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

Create a conversation on a diagram.

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:


GET /api/bpmn/conversations/:id

Get the details of the specified conversation.

Path parameters:

Parameter Type Description
id string Conversation ID

Response: Conversation object (same format as list response element).

Errors:


PUT /api/bpmn/conversations/:id

Update the specified conversation. Only the specified fields are updated.

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:


DELETE /api/bpmn/conversations/:id

Delete the specified conversation and its views from all diagrams.

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:


Choreographies

Types: BPMNChoreographyTask, BPMNSubChoreography

GET /api/bpmn/choreographies

List all 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

Create a choreography on a diagram.

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:


GET /api/bpmn/choreographies/:id

Get the details of the specified choreography.

Path parameters:

Parameter Type Description
id string Choreography ID

Response: Choreography object (same format as list response element).

Errors:


PUT /api/bpmn/choreographies/:id

Update the specified choreography. Only the specified fields are updated.

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:


DELETE /api/bpmn/choreographies/:id

Delete the specified choreography and its views from all diagrams.

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:


Annotations

Types: BPMNTextAnnotation, BPMNGroup

GET /api/bpmn/annotations

List all 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

Create an annotation on a diagram.

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:


GET /api/bpmn/annotations/:id

Get the details of the specified annotation.

Path parameters:

Parameter Type Description
id string Annotation ID

Response: Annotation object (same format as list response element).

Errors:


PUT /api/bpmn/annotations/:id

Update the specified annotation. Only the specified fields are updated.

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:


DELETE /api/bpmn/annotations/:id

Delete the specified annotation and its views from all diagrams.

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:


Sequence Flows

Type: BPMNSequenceFlow

GET /api/bpmn/sequence-flows

List all 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

Create a sequence flow between two elements on a diagram.

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:


GET /api/bpmn/sequence-flows/:id

Get the details of the specified sequence flow.

Path parameters:

Parameter Type Description
id string Sequence Flow ID

Response: Sequence Flow object (same format as list response element).

Errors:


PUT /api/bpmn/sequence-flows/:id

Update the specified sequence flow. Only the specified fields are updated.

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:


DELETE /api/bpmn/sequence-flows/:id

Delete the specified sequence flow and its views from all diagrams.

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:


Message Flows

Type: BPMNMessageFlow

GET /api/bpmn/message-flows

List all 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

Create a message flow between two elements on a diagram.

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:


GET /api/bpmn/message-flows/:id

Get the details of the specified message flow.

Path parameters:

Parameter Type Description
id string Message Flow ID

Response: Message Flow object (same format as list response element).

Errors:


PUT /api/bpmn/message-flows/:id

Update the specified message flow. Only the specified fields are updated.

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:


DELETE /api/bpmn/message-flows/:id

Delete the specified message flow and its views from all diagrams.

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:


Associations

Type: BPMNAssociation

GET /api/bpmn/associations

List all 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

Create an association between two elements on a diagram.

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:


GET /api/bpmn/associations/:id

Get the details of the specified association.

Path parameters:

Parameter Type Description
id string Association ID

Response: Association object (same format as list response element).

Errors:


PUT /api/bpmn/associations/:id

Update the specified association. Only the specified fields are updated.

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:


DELETE /api/bpmn/associations/:id

Delete the specified association and its views from all diagrams.

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:


Data Associations

Type: BPMNDataAssociation

GET /api/bpmn/data-associations

List all 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

Create a data association between two elements on a diagram.

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:


GET /api/bpmn/data-associations/:id

Get the details of the specified data association.

Path parameters:

Parameter Type Description
id string Data Association ID

Response: Data Association object (same format as list response element).

Errors:


PUT /api/bpmn/data-associations/:id

Update the specified data association. Only the specified fields are updated.

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:


DELETE /api/bpmn/data-associations/:id

Delete the specified data association and its views from all diagrams.

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:


Type: BPMNMessageLink

List all 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

Create a message link between two elements on a diagram.

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:


Get the details of the specified message link.

Path parameters:

Parameter Type Description
id string Message Link ID

Response: Message Link object (same format as list response element).

Errors:


Update the specified message link. Only the specified fields are updated.

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:


Delete the specified message link and its views from all diagrams.

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:


Type: BPMNConversationLink

List all 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

Create a conversation link between two elements on a diagram.

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:


Get the details of the specified conversation link.

Path parameters:

Parameter Type Description
id string Conversation Link ID

Response: Conversation Link object (same format as list response element).

Errors:


Update the specified conversation link. Only the specified fields are updated.

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:


Delete the specified conversation link and its views from all diagrams.

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:


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

List all c4 diagrams in the project.

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

Create a new c4 diagram.

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:


GET /api/c4/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/c4/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/c4/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Elements

Types: C4Person, C4SoftwareSystem, C4Container, C4ContainerDatabase, C4ContainerWebApp, C4ContainerDesktopApp, C4ContainerMobileApp, C4Component, C4Element

Note: C4ContainerDatabase, C4ContainerWebApp, C4ContainerDesktopApp, C4ContainerMobileApp are creation aliases for C4Container with different kind values (database, client-webapp, desktop-app, mobile-app). The created model type is always C4Container, so the _type field in responses will be "C4Container".

GET /api/c4/elements

List all 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

Create an element on a diagram.

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:


GET /api/c4/elements/:id

Get the details of the specified element.

Path parameters:

Parameter Type Description
id string Element ID

Response: Element object (same format as list response element).

Errors:


PUT /api/c4/elements/:id

Update the specified element. Only the specified fields are updated.

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:


DELETE /api/c4/elements/:id

Delete the specified element and its views from all diagrams.

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:


Relationships

Type: C4Relationship

GET /api/c4/relationships

List all 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

Create a relationship between two elements on a diagram.

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:


GET /api/c4/relationships/:id

Get the details of the specified relationship.

Path parameters:

Parameter Type Description
id string Relationship ID

Response: Relationship object (same format as list response element).

Errors:


PUT /api/c4/relationships/:id

Update the specified relationship. Only the specified fields are updated.

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:


DELETE /api/c4/relationships/:id

Delete the specified relationship and its views from all diagrams.

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:


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

List all sysml diagrams in the project.

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

Create a new sysml diagram.

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:


GET /api/sysml/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/sysml/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/sysml/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Requirements

Types: SysMLRequirement

GET /api/sysml/requirements

List all 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

Create a requirement on a diagram.

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:


GET /api/sysml/requirements/:id

Get the details of the specified requirement.

Path parameters:

Parameter Type Description
id string Requirement ID

Response: Requirement object (same format as list response element).

Errors:


PUT /api/sysml/requirements/:id

Update the specified requirement. Only the specified fields are updated.

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:


DELETE /api/sysml/requirements/:id

Delete the specified requirement and its views from all diagrams.

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:


Blocks

Types: SysMLBlock, SysMLValueType, SysMLInterfaceBlock, SysMLConstraintBlock

GET /api/sysml/blocks

List all 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

Create a block on a diagram.

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:


GET /api/sysml/blocks/:id

Get the details of the specified block.

Path parameters:

Parameter Type Description
id string Block ID

Response: Block object (same format as list response element).

Errors:


PUT /api/sysml/blocks/:id

Update the specified block. Only the specified fields are updated.

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:


DELETE /api/sysml/blocks/:id

Delete the specified block and its views from all diagrams.

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:


GET /api/sysml/blocks/:id/properties

List properties of the specified block.

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:


POST /api/sysml/blocks/:id/properties

Create a property on the specified block.

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:


GET /api/sysml/blocks/:id/operations

List operations of the specified block.

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:


POST /api/sysml/blocks/:id/operations

Create an operation on the specified block.

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:


GET /api/sysml/blocks/:id/flow-properties

List flow properties of the specified block.

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:


POST /api/sysml/blocks/:id/flow-properties

Create a flow property on the specified block.

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:


Stakeholders

Types: SysMLStakeholder

GET /api/sysml/stakeholders

List all 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

Create a stakeholder on a diagram.

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:


GET /api/sysml/stakeholders/:id

Get the details of the specified stakeholder.

Path parameters:

Parameter Type Description
id string Stakeholder ID

Response: Stakeholder object (same format as list response element).

Errors:


PUT /api/sysml/stakeholders/:id

Update the specified stakeholder. Only the specified fields are updated.

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:


DELETE /api/sysml/stakeholders/:id

Delete the specified stakeholder and its views from all diagrams.

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:


Viewpoints

Types: SysMLViewpoint

GET /api/sysml/viewpoints

List all 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

Create a viewpoint on a diagram.

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:


GET /api/sysml/viewpoints/:id

Get the details of the specified viewpoint.

Path parameters:

Parameter Type Description
id string Viewpoint ID

Response: Viewpoint object (same format as list response element).

Errors:


PUT /api/sysml/viewpoints/:id

Update the specified viewpoint. Only the specified fields are updated.

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:


DELETE /api/sysml/viewpoints/:id

Delete the specified viewpoint and its views from all diagrams.

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:


Views

Types: SysMLView

GET /api/sysml/views

List all 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

Create a view on a diagram.

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:


GET /api/sysml/views/:id

Get the details of the specified view.

Path parameters:

Parameter Type Description
id string View ID

Response: View object (same format as list response element).

Errors:


PUT /api/sysml/views/:id

Update the specified view. Only the specified fields are updated.

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:


DELETE /api/sysml/views/:id

Delete the specified view and its views from all diagrams.

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:


Parts

Types: SysMLPart, SysMLReference, SysMLValue, SysMLPort, SysMLConstraintProperty, SysMLConstraintParameter

GET /api/sysml/parts

List all 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

Create a part on a diagram.

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:

Response: The created part object.

Errors:


GET /api/sysml/parts/:id

Get the details of the specified part.

Path parameters:

Parameter Type Description
id string Part ID

Response: Part object (same format as list response element).

Errors:


PUT /api/sysml/parts/:id

Update the specified part. Only the specified fields are updated.

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:


DELETE /api/sysml/parts/:id

Delete the specified part and its views from all diagrams.

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:


Conforms

Type: SysMLConform

GET /api/sysml/conforms

List all 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

Create a conform between two elements on a diagram.

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:


GET /api/sysml/conforms/:id

Get the details of the specified conform.

Path parameters:

Parameter Type Description
id string Conform ID

Response: Conform object (same format as list response element).

Errors:


PUT /api/sysml/conforms/:id

Update the specified conform. Only the specified fields are updated.

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:


DELETE /api/sysml/conforms/:id

Delete the specified conform and its views from all diagrams.

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:


Exposes

Type: SysMLExpose

GET /api/sysml/exposes

List all 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

Create an expose between two elements on a diagram.

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:


GET /api/sysml/exposes/:id

Get the details of the specified expose.

Path parameters:

Parameter Type Description
id string Expose ID

Response: Expose object (same format as list response element).

Errors:


PUT /api/sysml/exposes/:id

Update the specified expose. Only the specified fields are updated.

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:


DELETE /api/sysml/exposes/:id

Delete the specified expose and its views from all diagrams.

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:


Copies

Type: SysMLCopy

GET /api/sysml/copies

List all 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

Create a copy between two elements on a diagram.

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:


GET /api/sysml/copies/:id

Get the details of the specified copy.

Path parameters:

Parameter Type Description
id string Copy ID

Response: Copy object (same format as list response element).

Errors:


PUT /api/sysml/copies/:id

Update the specified copy. Only the specified fields are updated.

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:


DELETE /api/sysml/copies/:id

Delete the specified copy and its views from all diagrams.

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:


Derive Reqts

Type: SysMLDeriveReqt

GET /api/sysml/derive-reqts

List all 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

Create a derive requirement between two elements on a diagram.

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:


GET /api/sysml/derive-reqts/:id

Get the details of the specified derive requirement.

Path parameters:

Parameter Type Description
id string Derive Requirement ID

Response: Derive Requirement object (same format as list response element).

Errors:


PUT /api/sysml/derive-reqts/:id

Update the specified derive requirement. Only the specified fields are updated.

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:


DELETE /api/sysml/derive-reqts/:id

Delete the specified derive requirement and its views from all diagrams.

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:


Verifies

Type: SysMLVerify

GET /api/sysml/verifies

List all 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

Create a verify between two elements on a diagram.

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:


GET /api/sysml/verifies/:id

Get the details of the specified verify.

Path parameters:

Parameter Type Description
id string Verify ID

Response: Verify object (same format as list response element).

Errors:


PUT /api/sysml/verifies/:id

Update the specified verify. Only the specified fields are updated.

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:


DELETE /api/sysml/verifies/:id

Delete the specified verify and its views from all diagrams.

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:


Satisfies

Type: SysMLSatisfy

GET /api/sysml/satisfies

List all 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

Create a satisfy between two elements on a diagram.

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:


GET /api/sysml/satisfies/:id

Get the details of the specified satisfy.

Path parameters:

Parameter Type Description
id string Satisfy ID

Response: Satisfy object (same format as list response element).

Errors:


PUT /api/sysml/satisfies/:id

Update the specified satisfy. Only the specified fields are updated.

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:


DELETE /api/sysml/satisfies/:id

Delete the specified satisfy and its views from all diagrams.

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:


Refines

Type: SysMLRefine

GET /api/sysml/refines

List all 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

Create a refine between two elements on a diagram.

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:


GET /api/sysml/refines/:id

Get the details of the specified refine.

Path parameters:

Parameter Type Description
id string Refine ID

Response: Refine object (same format as list response element).

Errors:


PUT /api/sysml/refines/:id

Update the specified refine. Only the specified fields are updated.

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:


DELETE /api/sysml/refines/:id

Delete the specified refine and its views from all diagrams.

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:


Connectors

Type: SysMLConnector

GET /api/sysml/connectors

List all 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

Create a connector between two elements on a diagram.

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:


GET /api/sysml/connectors/:id

Get the details of the specified connector.

Path parameters:

Parameter Type Description
id string Connector ID

Response: Connector object (same format as list response element).

Errors:


PUT /api/sysml/connectors/:id

Update the specified connector. Only the specified fields are updated.

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:


DELETE /api/sysml/connectors/:id

Delete the specified connector and its views from all diagrams.

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:


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

List all wireframe diagrams in the project.

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

Create a new wireframe diagram.

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:


GET /api/wireframe/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/wireframe/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/wireframe/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Frames

Types: WFFrame, WFMobileFrame, WFWebFrame, WFDesktopFrame

GET /api/wireframe/frames

List all 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

Create a frame on a diagram.

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:


GET /api/wireframe/frames/:id

Get the details of the specified frame.

Path parameters:

Parameter Type Description
id string Frame ID

Response: Frame object (same format as list response element).

Errors:


PUT /api/wireframe/frames/:id

Update the specified frame. Only the specified fields are updated.

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:


DELETE /api/wireframe/frames/:id

Delete the specified frame and its views from all diagrams.

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:


Widgets

Types: WFButton, WFText, WFRadio, WFCheckbox, WFSwitch, WFLink, WFTabList, WFTab, WFInput, WFDropdown, WFPanel, WFImage, WFSeparator, WFAvatar, WFSlider

GET /api/wireframe/widgets

List all 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

Create a widget on a diagram.

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:


GET /api/wireframe/widgets/:id

Get the details of the specified widget.

Path parameters:

Parameter Type Description
id string Widget ID

Response: Widget object (same format as list response element).

Errors:


PUT /api/wireframe/widgets/:id

Update the specified widget. Only the specified fields are updated.

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:


DELETE /api/wireframe/widgets/:id

Delete the specified widget and its views from all diagrams.

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:


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

List all mindmap diagrams in the project.

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

Create a new mindmap diagram.

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:


GET /api/mindmap/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/mindmap/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/mindmap/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Nodes

Types: MMNode

GET /api/mindmap/nodes

List all 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

Create a node on a diagram.

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:


GET /api/mindmap/nodes/:id

Get the details of the specified node.

Path parameters:

Parameter Type Description
id string Node ID

Response: Node object (same format as list response element).

Errors:


PUT /api/mindmap/nodes/:id

Update the specified node. Only the specified fields are updated.

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:


DELETE /api/mindmap/nodes/:id

Delete the specified node and its views from all diagrams.

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:


Edges

Type: MMEdge

GET /api/mindmap/edges

List all 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

Create an edge between two elements on a diagram.

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:


GET /api/mindmap/edges/:id

Get the details of the specified edge.

Path parameters:

Parameter Type Description
id string Edge ID

Response: Edge object (same format as list response element).

Errors:


PUT /api/mindmap/edges/:id

Update the specified edge. Only the specified fields are updated.

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:


DELETE /api/mindmap/edges/:id

Delete the specified edge and its views from all diagrams.

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:


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

List all aws diagrams in the project.

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

Create a new aws diagram.

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:


GET /api/aws/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/aws/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/aws/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Elements

Types: AWSGroup, AWSGenericGroup, AWSAvailabilityZone, AWSSecurityGroup, AWSService, AWSResource, AWSGeneralResource, AWSCallout

GET /api/aws/elements

List all 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

Create an element on a diagram.

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:


GET /api/aws/elements/:id

Get the details of the specified element.

Path parameters:

Parameter Type Description
id string Element ID

Response: Element object (same format as list response element).

Errors:


PUT /api/aws/elements/:id

Update the specified element. Only the specified fields are updated.

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:


DELETE /api/aws/elements/:id

Delete the specified element and its views from all diagrams.

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:


Arrows

Type: AWSArrow

GET /api/aws/arrows

List all 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

Create an arrow between two elements on a diagram.

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:


GET /api/aws/arrows/:id

Get the details of the specified arrow.

Path parameters:

Parameter Type Description
id string Arrow ID

Response: Arrow object (same format as list response element).

Errors:


PUT /api/aws/arrows/:id

Update the specified arrow. Only the specified fields are updated.

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:


DELETE /api/aws/arrows/:id

Delete the specified arrow and its views from all diagrams.

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:


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

List all azure diagrams in the project.

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

Create a new azure diagram.

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:


GET /api/azure/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/azure/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/azure/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Elements

Types: AzureGroup, AzureService, AzureCallout

GET /api/azure/elements

List all 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

Create an element on a diagram.

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:


GET /api/azure/elements/:id

Get the details of the specified element.

Path parameters:

Parameter Type Description
id string Element ID

Response: Element object (same format as list response element).

Errors:


PUT /api/azure/elements/:id

Update the specified element. Only the specified fields are updated.

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:


DELETE /api/azure/elements/:id

Delete the specified element and its views from all diagrams.

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:


Connectors

Type: AzureConnector

GET /api/azure/connectors

List all 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

Create a connector between two elements on a diagram.

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:


GET /api/azure/connectors/:id

Get the details of the specified connector.

Path parameters:

Parameter Type Description
id string Connector ID

Response: Connector object (same format as list response element).

Errors:


PUT /api/azure/connectors/:id

Update the specified connector. Only the specified fields are updated.

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:


DELETE /api/azure/connectors/:id

Delete the specified connector and its views from all diagrams.

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:


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

List all gcp diagrams in the project.

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

Create a new gcp diagram.

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:


GET /api/gcp/diagrams/:id

Get the details of the specified diagram.

Path parameters:

Parameter Type Description
id string Diagram ID

Response: Diagram object (same format as list response element).

Errors:


PUT /api/gcp/diagrams/:id

Update the specified diagram. Only the specified fields are updated.

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:


DELETE /api/gcp/diagrams/:id

Delete the specified diagram and its orphaned elements.

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:


Elements

Types: GCPUser, GCPZone, GCPProduct, GCPService

GET /api/gcp/elements

List all 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

Create an element on a diagram.

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:


GET /api/gcp/elements/:id

Get the details of the specified element.

Path parameters:

Parameter Type Description
id string Element ID

Response: Element object (same format as list response element).

Errors:


PUT /api/gcp/elements/:id

Update the specified element. Only the specified fields are updated.

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:


DELETE /api/gcp/elements/:id

Delete the specified element and its views from all diagrams.

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:


Paths

Type: GCPPath

GET /api/gcp/paths

List all 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

Create a path between two elements on a diagram.

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:


GET /api/gcp/paths/:id

Get the details of the specified path.

Path parameters:

Parameter Type Description
id string Path ID

Response: Path object (same format as list response element).

Errors:


PUT /api/gcp/paths/:id

Update the specified path. Only the specified fields are updated.

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:


DELETE /api/gcp/paths/:id

Delete the specified path and its views from all diagrams.

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:


Endpoint count: 5 (diagrams) + 5 (elements) + 5 (paths) = 15