Structural nodes
Get All
Gets 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
NodeTypeFilter by node type (e.g., Restrained). Default is All_Types.
Filters nodes by type (e.g., restrained only).
MinXMinimum X coordinate filter. Unit: Length (see GET /job/units).
MaxXMaximum X coordinate filter. Unit: Length (see GET /job/units).
MinYMinimum Y coordinate filter. Unit: Length (see GET /job/units).
MaxYMaximum Y coordinate filter. Unit: Length (see GET /job/units).
MinZMinimum Z coordinate filter. Unit: Length (see GET /job/units).
MaxZMaximum Z coordinate filter. Unit: Length (see GET /job/units).
NodesNode Ids to filter by, in SG list format (e.g. "1,5-10,15").
Omit to return all nodes.
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 All › 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.
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
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").
query Parameters
continueOnErrorWhether to continue on error
Delete Bulk › Responses
OK
succeededSuccessfully 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.

