Skip to main content

Cascadia PLM API (1.0.0)

Download OpenAPI specification:Download

REST API for Cascadia, an open-source, code-first Product Lifecycle Management (PLM) system.

Overview

Cascadia provides a developer-centric, type-safe approach to PLM where all customization happens in code. The API supports Git-style versioning for engineering data, with branches, commits, and tags for tracking changes.

Authentication

The API uses session-based authentication. Call /api/auth/login to obtain a session cookie, which must be included in subsequent requests.

Versioning

Items support version context queries via branch, commit, or tag query parameters. All changes flow through ECO (Engineering Change Order) branches and are merged on release.

SysML 2.0 Support

Native SysML 2.0 API endpoints are available at /api/sysml/* for external tool integration.

Authentication

Session management and login/logout

Get current session

Returns the current session information including authenticated user

Responses

Response samples

Content type
application/json
{
  • "authenticated": true,
  • "user": {
    }
}

Login

Authenticate with username and password to obtain a session

Request Body schema: application/json
required
username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "user": {
    }
}

Logout

End the current session

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get current user permissions

Returns all permissions for the authenticated user

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "permissions": [
    ]
}

Items

Generic item CRUD with versioning support

List items

List items with optional version context and filtering

Authorizations:
sessionAuth
query Parameters
designId
string <uuid>

Filter by design (required for version queries)

branch
string

Branch name for version context

commit
string <uuid>

Commit ID for version context

tag
string

Tag name for version context

itemType
string
Enum: "Part" "Document" "Requirement" "Task" "ChangeOrder"

Filter by item type

state
string

Filter by lifecycle state

search
string

Search query

includeDeleted
boolean
Default: false

Include soft-deleted items

limit
integer
Default: 100
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "context": { },
  • "total": 0
}

Create item

Create a new item on a branch

Authorizations:
sessionAuth
Request Body schema: application/json
required
branchId
required
string <uuid>

Branch to create on

itemType
required
string
Enum: "Part" "Document" "Requirement" "Task" "ChangeOrder"
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7",
  • "itemType": "Part"
}

Response samples

Content type
application/json
{
  • "item": {
    },
  • "commit": {
    }
}

Batch create items

Create multiple items in a single request (max 100)

Authorizations:
sessionAuth
Request Body schema: application/json
required
required
Array of objects <= 100 items
bypassBranchProtection
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "items": [
    ],
  • "bypassBranchProtection": false
}

Response samples

Content type
application/json
{
  • "created": [
    ],
  • "errors": [
    ]
}

Search items

Search items by query string

Authorizations:
sessionAuth
query Parameters
q
required
string

Search query

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Find item by filename

Look up an item by its associated filename

Authorizations:
sessionAuth
path Parameters
filename
required
string

Responses

Response samples

Content type
application/json
{
  • "item": {
    }
}

Get item

Get a specific item with optional version context

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
branch
string
commit
string <uuid>
tag
string

Responses

Response samples

Content type
application/json
{
  • "item": {
    },
  • "context": { }
}

Update item

Update an item on a branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
branchId
string <uuid>

Branch to update on (required for versioned items)

Request Body schema: application/json
required
commitMessage
string
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "commitMessage": "string"
}

Response samples

Content type
application/json
{
  • "item": {
    },
  • "commit": {
    }
}

Delete item

Soft delete an item on a branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
branchId
string <uuid>
commitMessage
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "commit": {
    }
}

Get checkout status

Get the checkout status for an item on a branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
branchId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "status": {
    }
}

Checkout item

Checkout an item to a branch for editing

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
branchId
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "branchItem": { }
}

Cancel checkout

Cancel the checkout of an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
branchId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Lock item

Lock an item for exclusive editing

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
force
boolean
Default: false

Force lock even if locked by another user

Responses

Request samples

Content type
application/json
{
  • "force": false
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string",
  • "lockedBy": "string",
  • "lockedAt": "2019-08-24T14:15:22Z"
}

Unlock item

Release the lock on an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get lock status

Get the current lock status of an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "isLocked": true,
  • "lockedBy": "9e229eb0-bb3a-4c40-a7bd-2e4e393d24d4",
  • "lockedByName": "string",
  • "lockedAt": "2019-08-24T14:15:22Z"
}

Get item relationships

Get all relationships for an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
type
string

Filter by relationship type

Responses

Response samples

Content type
application/json
{
  • "relationships": [
    ]
}

Add relationship

Add a relationship from this item to another

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
targetId
required
string <uuid>
relationshipType
required
string
Enum: "bom" "reference" "derived_from" "satisfies" "verifies"
quantity
number
referenceDesignator
string
findNumber
integer
metadata
object

Responses

Request samples

Content type
application/json
{
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
  • "relationshipType": "bom",
  • "quantity": 0,
  • "referenceDesignator": "string",
  • "findNumber": 0,
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "success": true
}

Get item history

Get the version history of an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "history": [
    ]
}

Get item relationship graph

Get the relationship graph for an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "nodes": [
    ],
  • "edges": [
    ]
}

Parts

Part management

List parts

List all parts with optional design filter

Authorizations:
sessionAuth
query Parameters
designId
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "parts": [
    ],
  • "total": 0
}

Create part

Create a new part

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
partType
string
Enum: "assembly" "component" "raw_material" "purchased"
category
string
uom
string
weight
number
material
string
make_buy
string
Enum: "make" "buy"
branchId
string <uuid>

Branch to create on (required for versioned items)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "partType": "assembly",
  • "category": "string",
  • "uom": "string",
  • "weight": 0,
  • "material": "string",
  • "make_buy": "make",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "part": {
    }
}

Get part

Get a specific part

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "part": {
    }
}

Update part

Update a part

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
partType
string
Enum: "assembly" "component" "raw_material" "purchased"
category
string
uom
string
weight
number
material
string
make_buy
string
Enum: "make" "buy"
branchId
string <uuid>

Branch to create on (required for versioned items)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "partType": "assembly",
  • "category": "string",
  • "uom": "string",
  • "weight": 0,
  • "material": "string",
  • "make_buy": "make",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "part": {
    }
}

Delete part

Delete a part

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Documents

Document management

List documents

Authorizations:
sessionAuth
query Parameters
designId
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "documents": [
    ],
  • "total": 0
}

Create document

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
documentType
string
Enum: "specification" "drawing" "procedure" "report" "other"
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "documentType": "specification",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "document": {
    }
}

Get document

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

Update document

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
documentType
string
Enum: "specification" "drawing" "procedure" "report" "other"
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "documentType": "specification",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "document": {
    }
}

Delete document

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Requirements

Requirements management

List requirements

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "requirements": [
    ]
}

Create requirement

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
requirementType
string
Enum: "functional" "performance" "interface" "constraint"
priority
string
Enum: "must_have" "should_have" "nice_to_have"
verificationMethod
string
Enum: "analysis" "demonstration" "inspection" "test"
rationale
string
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "requirementType": "functional",
  • "priority": "must_have",
  • "verificationMethod": "analysis",
  • "rationale": "string",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "requirement": {
    }
}

Get requirement

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "requirement": {
    }
}

Update requirement

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
requirementType
string
Enum: "functional" "performance" "interface" "constraint"
priority
string
Enum: "must_have" "should_have" "nice_to_have"
verificationMethod
string
Enum: "analysis" "demonstration" "inspection" "test"
rationale
string
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "requirementType": "functional",
  • "priority": "must_have",
  • "verificationMethod": "analysis",
  • "rationale": "string",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "requirement": {
    }
}

Delete requirement

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Tasks

Task management

List tasks

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "tasks": [
    ]
}

Create task

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
taskType
string
Enum: "design" "review" "verification" "approval"
assigneeId
string <uuid>
dueDate
string <date-time>
priority
string
Enum: "low" "medium" "high" "critical"
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "taskType": "design",
  • "assigneeId": "665a9750-71bd-4b96-bacd-9efa4ae022dd",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "priority": "low",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Get task

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

Update task

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
taskType
string
Enum: "design" "review" "verification" "approval"
assigneeId
string <uuid>
dueDate
string <date-time>
priority
string
Enum: "low" "medium" "high" "critical"
branchId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "taskType": "design",
  • "assigneeId": "665a9750-71bd-4b96-bacd-9efa4ae022dd",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "priority": "low",
  • "branchId": "712f308d-801e-48bc-b072-9c404734ceb7"
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Delete task

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Change Orders

Engineering Change Order (ECO) management and workflows

List change orders

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "changeOrders": [
    ],
  • "total": 0
}

Create change order

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
changeType
string
Enum: "engineering" "deviation" "waiver"
priority
string
Enum: "low" "medium" "high" "critical"
reason
string
impact
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "changeType": "engineering",
  • "priority": "low",
  • "reason": "string",
  • "impact": "string"
}

Response samples

Content type
application/json
{
  • "changeOrder": {
    },
  • "workflowInstance": {
    }
}

Get change order

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "changeOrder": {
    }
}

Update change order

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
changeType
string
Enum: "engineering" "deviation" "waiver"
priority
string
Enum: "low" "medium" "high" "critical"
reason
string
impact
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "changeType": "engineering",
  • "priority": "low",
  • "reason": "string",
  • "impact": "string"
}

Response samples

Content type
application/json
{
  • "changeOrder": {
    }
}

Delete change order

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Submit ECO for approval

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "changeOrder": {
    }
}

Approve ECO

Approve the ECO and trigger auto-release

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
comments
string

Responses

Request samples

Content type
application/json
{
  • "comments": "string"
}

Response samples

Content type
application/json
{
  • "changeOrder": {
    },
  • "message": "string"
}

Reject ECO

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
comments
string

Responses

Request samples

Content type
application/json
{
  • "comments": "string"
}

Response samples

Content type
application/json
{
  • "changeOrder": {
    }
}

Release ECO

Release an approved ECO, merging changes to main

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "changeOrder": {
    },
  • "mergedCommits": [
    ]
}

Get affected items

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get ECO workflow instance

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4",
  • "itemId": "f11b669d-7201-4c21-88af-d85092f0c005",
  • "currentState": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Transition workflow state

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
toState
required
string
comments
string

Responses

Request samples

Content type
application/json
{
  • "toState": "string",
  • "comments": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4",
  • "itemId": "f11b669d-7201-4c21-88af-d85092f0c005",
  • "currentState": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Programs

Program management and membership

List programs

Authorizations:
sessionAuth
query Parameters
status
string
Enum: "active" "completed" "on_hold" "cancelled"

Responses

Response samples

Content type
application/json
{
  • "programs": [
    ]
}

Create program

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
status
string
Default: "active"
Enum: "active" "completed" "on_hold" "cancelled"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "program": {
    }
}

Get program

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "program": {
    },
  • "userRole": "string"
}

Update program

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
status
string
Default: "active"
Enum: "active" "completed" "on_hold" "cancelled"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "program": {
    }
}

Delete program

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get program members

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "members": [
    ]
}

Add program member

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
userId
required
string <uuid>
role
required
string
Enum: "admin" "contributor" "viewer"

Responses

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "role": "admin"
}

Response samples

Content type
application/json
{
  • "member": {
    }
}

Designs

Design/project management with branching

List designs

Authorizations:
sessionAuth
query Parameters
programId
string <uuid>
designType
string
Enum: "design" "library" "family"
includeArchived
boolean
Default: false
includeHierarchy
boolean
Default: false

Responses

Response samples

Content type
application/json
{
  • "designs": [
    ]
}

Create design

Authorizations:
sessionAuth
Request Body schema: application/json
required
name
required
string
description
string
designType
string
Default: "design"
Enum: "design" "library" "family"
programId
required
string <uuid>
parentDesignId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "designType": "design",
  • "programId": "bc59f66b-913a-48ec-ae2b-7ee29d7bcfbb",
  • "parentDesignId": "d64c16d3-5da6-4ed7-bcc9-acbaf6e81e51"
}

Response samples

Content type
application/json
{
  • "design": {
    }
}

Get design

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "design": {
    }
}

Update design

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
designType
string
Default: "design"
Enum: "design" "library" "family"
programId
required
string <uuid>
parentDesignId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "designType": "design",
  • "programId": "bc59f66b-913a-48ec-ae2b-7ee29d7bcfbb",
  • "parentDesignId": "d64c16d3-5da6-4ed7-bcc9-acbaf6e81e51"
}

Response samples

Content type
application/json
{
  • "design": {
    }
}

Delete design

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get design branches

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "branches": [
    ]
}

Get design items

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get design tags

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "tags": [
    ]
}

Branches

Branch management for version control

Get design branches

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "branches": [
    ]
}

Get branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "branch": {
    }
}

Update branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "branch": {
    }
}

Delete branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get branch commits

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "commits": [
    ]
}

Get branch items

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Commits

Commit history and diffs

Get branch commits

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "commits": [
    ]
}

Get commit

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "commit": {
    }
}

Get commit diff

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "diff": { }
}

Files

File vault operations

List item files

Authorizations:
sessionAuth
path Parameters
itemId
required
string <uuid>
query Parameters
branchId
string <uuid>
mainBranchId
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "files": [
    ],
  • "count": 0
}

Upload file to item

Authorizations:
sessionAuth
path Parameters
itemId
required
string <uuid>
Request Body schema: multipart/form-data
required
file
required
string <binary>
branchId
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "file": {
    }
}

Delete file

Authorizations:
sessionAuth
path Parameters
fileId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

Download file

Authorizations:
sessionAuth
path Parameters
fileId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "error": "Authentication required"
}

Get file metadata

Authorizations:
sessionAuth
path Parameters
fileId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "filename": "string",
  • "mimeType": "string",
  • "size": 0,
  • "itemId": "f11b669d-7201-4c21-88af-d85092f0c005",
  • "version": 0,
  • "checksum": "string",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Relationships

Item relationship management

Get item relationships

Get all relationships for an item

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
type
string

Filter by relationship type

Responses

Response samples

Content type
application/json
{
  • "relationships": [
    ]
}

Add relationship

Add a relationship from this item to another

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
targetId
required
string <uuid>
relationshipType
required
string
Enum: "bom" "reference" "derived_from" "satisfies" "verifies"
quantity
number
referenceDesignator
string
findNumber
integer
metadata
object

Responses

Request samples

Content type
application/json
{
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
  • "relationshipType": "bom",
  • "quantity": 0,
  • "referenceDesignator": "string",
  • "findNumber": 0,
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "success": true
}

Batch create relationships

Create multiple relationships in a single request (max 500)

Authorizations:
sessionAuth
Request Body schema: application/json
required
required
Array of objects <= 500 items
replaceExisting
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "relationships": [
    ],
  • "replaceExisting": false
}

Response samples

Content type
application/json
{
  • "created": 0,
  • "skipped": 0,
  • "errors": [
    ]
}

Get relationship

Authorizations:
sessionAuth
path Parameters
relationshipId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
  • "relationshipType": "bom",
  • "quantity": 0,
  • "referenceDesignator": "string",
  • "findNumber": 0,
  • "metadata": { }
}

Update relationship

Authorizations:
sessionAuth
path Parameters
relationshipId
required
string <uuid>
Request Body schema: application/json
required
targetId
required
string <uuid>
relationshipType
required
string
Enum: "bom" "reference" "derived_from" "satisfies" "verifies"
quantity
number
referenceDesignator
string
findNumber
integer
metadata
object

Responses

Request samples

Content type
application/json
{
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
  • "relationshipType": "bom",
  • "quantity": 0,
  • "referenceDesignator": "string",
  • "findNumber": 0,
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
  • "relationshipType": "bom",
  • "quantity": 0,
  • "referenceDesignator": "string",
  • "findNumber": 0,
  • "metadata": { }
}

Delete relationship

Authorizations:
sessionAuth
path Parameters
relationshipId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Workflows

Workflow definitions and lifecycle management

List workflows

Authorizations:
sessionAuth
query Parameters
isActive
boolean
type
string
Enum: "lifecycle" "workflow"

Responses

Response samples

Content type
application/json
{
  • "workflows": [
    ]
}

Create workflow

Authorizations:
sessionAuth
Request Body schema: application/json
required
id
required
string <uuid>
name
required
string
description
string
type
required
string
Enum: "lifecycle" "workflow"
isActive
boolean
Array of objects
createdAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "type": "lifecycle",
  • "isActive": true,
  • "states": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "workflow": {
    }
}

Get workflow

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "workflow": {
    }
}

Update workflow

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
id
required
string <uuid>
name
required
string
description
string
type
required
string
Enum: "lifecycle" "workflow"
isActive
boolean
Array of objects
createdAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "type": "lifecycle",
  • "isActive": true,
  • "states": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "workflow": {
    }
}

Delete workflow

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Reports

Report generation and export

List reports

Authorizations:
sessionAuth
query Parameters
itemType
string

Responses

Response samples

Content type
application/json
{
  • "reports": [
    ]
}

Create report

Authorizations:
sessionAuth
Request Body schema: application/json
required
id
required
string <uuid>
name
required
string
description
string
itemType
string
configuration
object
createdBy
string <uuid>
createdAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "itemType": "string",
  • "configuration": { },
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "report": {
    }
}

Get report

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "report": {
    }
}

Update report

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
id
required
string <uuid>
name
required
string
description
string
itemType
string
configuration
object
createdBy
string <uuid>
createdAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "itemType": "string",
  • "configuration": { },
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "report": {
    }
}

Delete report

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Execute report

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{ }

Export report

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
query Parameters
format
string
Enum: "csv" "xlsx" "pdf"

Responses

Response samples

Content type
application/json
{
  • "error": "Authentication required"
}

Users

User management

List users

Authorizations:
sessionAuth
query Parameters
search
string
active
boolean
roleId
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "stats": { }
}

Create user

Authorizations:
sessionAuth
Request Body schema: application/json
required
email
required
string <email>
name
required
string
password
required
string >= 8 characters

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "password": "stringst"
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Get user

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "user": {
    }
}

Update user

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
name
required
string
password
required
string >= 8 characters

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "password": "stringst"
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Delete user

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get user roles

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

Update user roles

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
roleIds
required
Array of strings <uuid> [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "roleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

Roles

Role management

Get user roles

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

Update user roles

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
roleIds
required
Array of strings <uuid> [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "roleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

List roles

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

Workspaces

Personal workspace branches

List workspaces

List user's personal workspace branches

Authorizations:
sessionAuth

Responses

Response samples

Content type
application/json
{
  • "workspaces": [
    ]
}

Create workspace

Authorizations:
sessionAuth
Request Body schema: application/json
required
designId
required
string <uuid>
workspaceName
required
string

Responses

Request samples

Content type
application/json
{
  • "designId": "033e957b-7b88-4dd7-902f-29ec7b58670b",
  • "workspaceName": "string"
}

Response samples

Content type
application/json
{
  • "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c",
  • "branchName": "string"
}

Get workspace

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "designId": "033e957b-7b88-4dd7-902f-29ec7b58670b",
  • "branchType": "main",
  • "isProtected": true,
  • "headCommitId": "ccbbf3ab-15f4-491f-bfd0-0193cd890679",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Update workspace

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "designId": "033e957b-7b88-4dd7-902f-29ec7b58670b",
  • "branchType": "main",
  • "isProtected": true,
  • "headCommitId": "ccbbf3ab-15f4-491f-bfd0-0193cd890679",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Convert workspace to ECO

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "changeOrder": {
    }
}

Admin

Administrative operations and job management

List background jobs

Authorizations:
sessionAuth
query Parameters
status
string
Enum: "pending" "running" "completed" "failed" "cancelled"
type
string
limit
integer
Default: 100
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "jobs": [
    ],
  • "total": 0
}

Get job details

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "job": {
    }
}

Cancel job

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Retry failed job

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "job": {
    }
}

SysML

SysML 2.0 compatible API

List SysML projects

List all designs as SysML 2.0 projects

Authorizations:
sessionAuth
query Parameters
pageSize
integer
Default: 100
pageStart
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "@type": "ProjectCollection",
  • "data": [
    ],
  • "pageSize": 0,
  • "pageStart": 0,
  • "totalResults": 0
}

Get SysML project

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "@id": "23ba7ddf-6d85-4cba-9562-b9326400e2a7",
  • "@type": "Project",
  • "name": "string",
  • "description": "string",
  • "created": "2019-08-24T14:15:22Z"
}

Get project commits

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "commits": [
    ]
}

Get elements on branch

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
branchId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "elements": [
    ]
}

Get elements at commit

Authorizations:
sessionAuth
path Parameters
id
required
string <uuid>
commitId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "elements": [
    ]
}

Search

Enterprise search across items

Search items

Search items by query string

Authorizations:
sessionAuth
query Parameters
q
required
string

Search query

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Enterprise search

Search across all item types

Authorizations:
sessionAuth
query Parameters
q
required
string
limit
integer
Default: 50

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}