Job lifecycle management — create, open, save, close, and check status
Get Job
Gets the current job (there is only one).
Sub-resources are managed via their own endpoints:
- Headings: GET/PATCH /job/headings
- Settings: GET /job/settings
- Units: GET/PATCH /job/units
- Errors: GET/DELETE /job/errors
- Model summary: GET /job/status
Get Job › Responses
Returns the job
Read DTO for job headings (text properties).
Read DTO for job-level settings. Groups configuration properties that apply to the job as a whole.
Unit settings for the current job.
Get Job Headings
Gets the job headings (project heading, designer initials, notes).
Get Job Headings › Responses
Returns the job headings
projectHeadingProject heading
headingJob heading
designerInitialsDesigner initials
notesJob notes
Update Job Headings
Updates the job headings (project heading, designer initials, notes).
Update Job Headings › Request Body
projectHeadingProject heading. Omit to leave unchanged.
headingJob heading. Omit to leave unchanged.
designerInitialsDesigner initials. Omit to leave unchanged.
notesJob notes. Omit to leave unchanged.
Update Job Headings › Responses
Returns the updated headings
projectHeadingProject heading
headingJob heading
designerInitialsDesigner initials
notesJob notes
Get Job Status
Returns the current job and its file/session state. Same response shape as new, open, and save for consistency.
Use this to determine:
- Whether a job is currently loaded (status.isOpen)
- Whether it needs saving (status.isModified)
- Whether to provide a filePath when saving (status.isNew)
- What's in the model (job.modelSummary)
Get Job Status › Responses
Returns the job and status
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
Close Job
Closes the current job session and unloads from memory.
Idempotent: if no job is currently open, returns 200 with the current state (isOpen=false) without error.
Unsaved changes are discarded. Call POST /job/save before closing to persist changes.
The .sg file on disk is never deleted or modified. Returns the file resource state after close (isOpen will be false).
Close Job › Responses
Returns the state confirming the job is closed
isOpenWhether a job is currently loaded in memory.
isNewWhether this is a new job that has never been saved. If true, provide a filePath when calling POST /save.
isModifiedWhether the job has unsaved modifications.
openedAtWhen the job was opened (null if not open).
File information for the current job.
New Job
Creates a new blank job with default configuration.
If a job is currently open, returns 409 Conflict — close the current job first using POST /job/close.
New Job › Responses
New blank job created
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
New Job From Template
Creates a new job from an uploaded .sgbase template file.
The template data is loaded but treated as a new job — no file path is set. Use POST /job/save with a filePath to save to a new location.
If a job is currently open, returns 409 Conflict — close the current job first using POST /job/close.
Example usage with curl:
Code
New Job From Template › Request Body optional
template.sgbase template file uploaded as multipart/form-data
New Job From Template › Responses
New job created from template
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
Open Job
Opens a job from a local .sg file.
If a job is currently open, returns 409 Conflict — close the current job first using POST /job/close.
For normal open, omit forceOption (or set to null). If the file has unsaved temporary files from a previous session, provide a forceOption:
- OpenPreviousSaved: Discard unsaved changes, open last saved version
- OpenUnsavedMostRecent: Preserve unsaved changes, recover from abnormal shutdown
Example request to recover unsaved work:
Code
Open Job › Request Body
filePathFull path to the .sg job file to open.
forceOptionOptions for forcing access to a job file that is in a locked or unsaved state. Used when temporary files exist from a previous session that was not properly closed.
Open Job › Responses
Returns the opened job and status
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
Open Sample Project
Opens a sample SPACE GASS project as a new unsaved job. The sample data is loaded but treated as a new job — use Save As to persist changes.
If a job is currently open, returns 409 Conflict — close the current job first using POST /job/close.
Use GET /api/v1/file/samples to list available sample files and their virtual paths.
Example request:
Code
Open Sample Project › Request Body
fileNameSample file name (e.g. "Portal Frame.SG"). Use GET /api/v1/file/samples to list available samples.
Open Sample Project › Responses
Returns the opened job and status
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
Save Job
Saves the current job. Provide a filePath to save to a new location (Save As), or omit it to save to the current location.
If the job is new (never saved) and no filePath is provided, returns 409 Conflict.
Returns 201 Created on first save (new job), 200 OK on subsequent saves.
Save Job › Request Body optional
filePathTarget file path. Omit to save to current location. Required if the job is new (never saved before).
Save Job › Responses
Job saved successfully
Read DTO for job responses. Model counts and file state are available via GET /job/status (JobStatusDto).
Current session/file state of the job.
Summary counts of all model entities in the current job.
Clear Job Data
Clears all model data while keeping current configuration (units, settings). Deletes ATS data files but preserves the job configuration. Returns the job object with zeroed model summary counts.
query Parameters
forceMust be true to confirm clearing. If false or omitted, operation is rejected for safety.
Clear Job Data › Responses
Job data cleared, returns updated job
Read DTO for job headings (text properties).
Read DTO for job-level settings. Groups configuration properties that apply to the job as a whole.
Unit settings for the current job.

