Structural nodes
Get List
Returns all items with optional filtering, pagination and sub-resource expansion.
Results are always sorted by Id ascending.
Pagination metadata is returned in response headers (Total-Count, Offset, Limit).
Expand defaults to none on list endpoints so payloads stay lean;
pass Expand=all to hydrate sub-resources. Sub-resource expansion is
opt-in per resource type — resources that don't define sub-resources ignore the parameter.
query Parameters
nodesNode Ids to filter by, in SG list format (e.g. "1,5-10,15").
Omit to return all nodes.
nodeTypeFilter by node type (e.g., Restrained). Default is All_Types.
Filters nodes by type (e.g., restrained only).
offsetNumber of items to skip from the start of the result set. Default is 0.
limitMaximum number of items to return. Default is null (return all).
expandSub-resource expansion. Defaults to none; pass all to hydrate sub-resources.
Controls sub-resource hydration on entity GET endpoints.
Shared across every resource that supports expansion — a given resource's
metadata (expandable) lists which sub-resources All hydrates.
Get List › Responses
OK
idPrimary identifier - must be unique, no duplicates allowed. Range: 1 to int.MaxValue
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
hasConstraintTrue when this node is the slave side of a master-slave constraint.
A node can be the slave of at most one constraint.
Use ?expand=all to include the full constraint object.
hasRestraintTrue when this node has an explicit restraint row defined. False means the node uses default restraints (all DOFs free, no spring stiffness).
DTO for reading a node constraint (master-slave constraint). Defines a kinematic relationship between a slave node and a master node. The slave node's degrees of freedom are tied to the master node according to the constraint code. Top-level entity attribute keyed on the slave node — each node can be a slave in at most one constraint.
DTO for reading a node restraint. Restraints define boundary conditions at nodes (fixed, released, spring, etc.) using a 6-character restraint code (FRSVPN). Top-level entity attribute keyed on the parent node.
Create
Creates a new item. If a validator is registered, the item is validated before creation.
Create › Request Body
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
idPrimary identifier - must be unique, no duplicates allowed. Optional - will be auto-assigned to next available number if not provided. If provided, must not already exist in the model.
Create › Responses
Created
idPrimary identifier - must be unique, no duplicates allowed. Range: 1 to int.MaxValue
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
hasConstraintTrue when this node is the slave side of a master-slave constraint.
A node can be the slave of at most one constraint.
Use ?expand=all to include the full constraint object.
hasRestraintTrue when this node has an explicit restraint row defined. False means the node uses default restraints (all DOFs free, no spring stiffness).
DTO for reading a node constraint (master-slave constraint). Defines a kinematic relationship between a slave node and a master node. The slave node's degrees of freedom are tied to the master node according to the constraint code. Top-level entity attribute keyed on the slave node — each node can be a slave in at most one constraint.
DTO for reading a node restraint. Restraints define boundary conditions at nodes (fixed, released, spring, etc.) using a 6-character restraint code (FRSVPN). Top-level entity attribute keyed on the parent node.
Get by Id
Expand defaults to all on the single-item endpoint; pass Expand=none
to suppress sub-resource hydration. Sub-resource expansion is opt-in per resource type —
resources that don't define sub-resources ignore the parameter.
path Parameters
idThe entity Id
query Parameters
expandSub-resource expansion. Defaults to all; pass none to suppress sub-resource hydration.
Controls sub-resource hydration on entity GET endpoints.
Shared across every resource that supports expansion — a given resource's
metadata (expandable) lists which sub-resources All hydrates.
Get by Id › Responses
OK
idPrimary identifier - must be unique, no duplicates allowed. Range: 1 to int.MaxValue
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
hasConstraintTrue when this node is the slave side of a master-slave constraint.
A node can be the slave of at most one constraint.
Use ?expand=all to include the full constraint object.
hasRestraintTrue when this node has an explicit restraint row defined. False means the node uses default restraints (all DOFs free, no spring stiffness).
DTO for reading a node constraint (master-slave constraint). Defines a kinematic relationship between a slave node and a master node. The slave node's degrees of freedom are tied to the master node according to the constraint code. Top-level entity attribute keyed on the slave node — each node can be a slave in at most one constraint.
DTO for reading a node restraint. Restraints define boundary conditions at nodes (fixed, released, spring, etc.) using a 6-character restraint code (FRSVPN). Top-level entity attribute keyed on the parent node.
Delete
Deletes the entity with the supplied Id. Returns 404 if no entity with that Id exists.
For entities whose delete cascades (Nodes, Members, Plates), returns 200 with a SpaceGassApi.Models.Dtos.Entity.DeleteResultDto listing every row removed — the entity itself, child rows that referenced it (loads, restraints, offsets, plate cuts, …), and any nodes left disconnected by the removal. Cleanup is best-effort, not transactional across datasheets: on failure the affected datasheets are reloaded from disk and the request fails.
For all other entities, returns 204 No Content and removes only the entity's own row.
path Parameters
idThe entity Id
Delete › Responses
OK
nodesIds of nodes removed (the requested node(s) plus any orphaned by member/plate removal).
membersIds of members removed because one of their end nodes was deleted.
platesIds of plates removed because one of their corner nodes was deleted.
nodeRestraintsNode Ids whose restraint row was removed.
nodeConstraintsSlave-node Ids of constraint rows removed (a constraint is dropped if either its slave or master node is deleted).
memberOffsetsMember Ids whose offset row was removed.
plateCutsIds of plate cuts removed (a cut references two plates and two nodes).
plateStripsIds of plate strips removed (a strip references two plates and two nodes).
Composite keys (case + node) of node loads removed.
Composite keys (case + node) of prescribed displacements removed.
Composite keys (case + node) of lumped mass loads removed.
Composite keys (case + member + subLoad) of member concentrated loads removed.
Composite keys (case + member + subLoad) of member distributed loads removed.
Composite keys (case + member + subLoad) of member distributed moments removed.
Composite keys (case + member) of member prestress loads removed.
Composite keys (case + plate) of plate pressure loads removed.
Composite keys (case + element + elementType) of thermal loads removed.
membersDirectionResetIds of surviving members whose direction reference pointed at a deleted node and was therefore reverted to the default orientation (angle 0). These members were not removed.
platesDirectionResetIds of surviving plates whose direction reference pointed at a deleted node and was therefore reverted to the default orientation (angle 0). These plates were not removed.
totalRemovedTotal number of rows removed across all entity types.
Update
Updates an existing item. If a validator is registered, the update is validated first.
path Parameters
idThe entity Id
Update › Request Body
idPrimary identifier of the entity to update. Optional for single updates (Id comes from route), required for bulk updates.
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
Update › Responses
OK
idPrimary identifier - must be unique, no duplicates allowed. Range: 1 to int.MaxValue
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
hasConstraintTrue when this node is the slave side of a master-slave constraint.
A node can be the slave of at most one constraint.
Use ?expand=all to include the full constraint object.
hasRestraintTrue when this node has an explicit restraint row defined. False means the node uses default restraints (all DOFs free, no spring stiffness).
DTO for reading a node constraint (master-slave constraint). Defines a kinematic relationship between a slave node and a master node. The slave node's degrees of freedom are tied to the master node according to the constraint code. Top-level entity attribute keyed on the slave node — each node can be a slave in at most one constraint.
DTO for reading a node restraint. Restraints define boundary conditions at nodes (fixed, released, spring, etc.) using a 6-character restraint code (FRSVPN). Top-level entity attribute keyed on the parent node.
Get by Location
Checks if a node exists within a given tolerance of the specified coordinates. Returns the first matching node found within the Euclidean distance tolerance.
query Parameters
xX coordinate to search near
yY coordinate to search near
zZ coordinate to search near
toleranceMaximum Euclidean distance to consider a match
Get by Location › Responses
Returns the matching node
idPrimary identifier - must be unique, no duplicates allowed. Range: 1 to int.MaxValue
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
hasConstraintTrue when this node is the slave side of a master-slave constraint.
A node can be the slave of at most one constraint.
Use ?expand=all to include the full constraint object.
hasRestraintTrue when this node has an explicit restraint row defined. False means the node uses default restraints (all DOFs free, no spring stiffness).
DTO for reading a node constraint (master-slave constraint). Defines a kinematic relationship between a slave node and a master node. The slave node's degrees of freedom are tied to the master node according to the constraint code. Top-level entity attribute keyed on the slave node — each node can be a slave in at most one constraint.
DTO for reading a node restraint. Restraints define boundary conditions at nodes (fixed, released, spring, etc.) using a 6-character restraint code (FRSVPN). Top-level entity attribute keyed on the parent node.
Get Metadata
Returns the resource metadata document — field schema, data types, units resolved against current job units, allowed values for enum fields, and validation bounds. Clients use this to drive UI, form validation, and schema introspection.
Get Metadata › Responses
OK
resourceTypeIdentifies entity types managed by the API. Kept separate from SGFileID to allow for future API-only entities that may not have a formal SPACE GASS FileID.
countCurrent count of items in this resource. Null for sub-resources whose count does not apply uniformly.
maxIdMaximum Id currently in use (single-int Id entities only).
nextIdNext available Id (single-int Id entities only).
Field definitions describing the resource's wire shape. Each entry corresponds
to a property on the read DTO; jsonName matches the JSON key clients see.
Create Bulk
Creates multiple items in a bulk operation. If a validator is registered, all items are validated upfront before any are created.
query Parameters
continueOnErrorWhether to continue processing after individual failures
Create Bulk › Request Body
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
idPrimary identifier - must be unique, no duplicates allowed. Optional - will be auto-assigned to next available number if not provided. If provided, must not already exist in the model.
Create Bulk › Responses
OK
Successfully processed items.
Errors from failed items.
errorsTruncatedTrue when the bulk operation stopped accumulating errors after reaching SpaceGassApi.Models.Dtos.Entity.BulkResultDto`1.ErrorMessageCap. Further failures may exist beyond what is reported.
Delete Bulk
Deletes multiple entities by Id. The body is a JSON array of integer Ids
(e.g. [1, 5, 10]) — consistent with every other bulk-delete endpoint
in the API (see CLAUDE.md "Query Parameter Conventions").
For cascading entities (Nodes, Members, Plates), continueOnError governs only the
per-Id existence pre-check: a missing Id is reported and, when false, aborts the
batch. The cascade itself is planned and executed as a single unit — if cleanup fails
mid-execution the entire batch is rolled back (affected datasheets are reloaded), so no
partial cascade is persisted.
query Parameters
continueOnErrorWhether to continue on error
Delete Bulk › Responses
Returns a bulk result whose succeeded entries each carry the deleted Id.
Successfully processed items.
Errors from failed items.
errorsTruncatedTrue when the bulk operation stopped accumulating errors after reaching SpaceGassApi.Models.Dtos.Entity.BulkResultDto`1.ErrorMessageCap. Further failures may exist beyond what is reported.
Update Bulk
Updates multiple items in a bulk operation. Each item must include its Id in the request body. If a validator is registered, all items are validated upfront before any are updated.
query Parameters
continueOnErrorWhether to continue processing after individual failures
Update Bulk › Request Body
idPrimary identifier of the entity to update. Optional for single updates (Id comes from route), required for bulk updates.
xX coordinate. Unit: Length (see GET /job/units).
yY coordinate. Unit: Length (see GET /job/units).
zZ coordinate. Unit: Length (see GET /job/units).
Update Bulk › Responses
OK
Successfully processed items.
Errors from failed items.
errorsTruncatedTrue when the bulk operation stopped accumulating errors after reaching SpaceGassApi.Models.Dtos.Entity.BulkResultDto`1.ErrorMessageCap. Further failures may exist beyond what is reported.

