Supercoach API

Supercoach API (2.0)

Download OpenAPI specification:Download

Coaching

Interface with Rapta coaching. This is a websocket so it is bi-directional communication.Consumes a message to either start or interrupt or coaching. While both start and interrupt are supported only one can be provided (XOR).Emits messages for predictions, step advance, step complete, and step interrupt.

Request Body schema: application/json
object (StartCoachingRequest)
object (InterruptCoachingRequest)

Responses

Request samples

Content type
application/json
{
  • "start": {
    },
  • "interrupt": {
    }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Begin coaching on a specific assembly on a specific step

path Parameters
assembly_id
required
string
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Pauses coaching of the assembly

path Parameters
assembly_id
required
string
Example: 57618016-cd00-4fc8-85f5-e4b26304c6ba

The ID of the assembly

Request Body schema: application/json
assembly_record_id
string

Responses

Request samples

Content type
application/json
{
  • "assembly_record_id": "b79663a8-c53a-472e-9572-026ce3c6a82d"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Complete coaching session

Declare that the ongoing coaching session is complete.

path Parameters
assembly_id
required
string
Request Body schema: application/json
step_index
integer <int32>
assembly_record_id
string
auto_coach_enabled
string

Responses

Request samples

Content type
application/json
{
  • "step_index": 0,
  • "assembly_record_id": "string",
  • "auto_coach_enabled": "string"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Restart hardware IO event monitor

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Gets info about all previously coached assemblies

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Set coaching context to a new step

Set coaching to a specific assembly's step. Must provide an end-time for the current step and an assembly_record_id to report the endtime to.

path Parameters
assembly_id
required
string
step
required
string
Request Body schema: application/json
assembly_record_id
string
end_time
string

The end-time for the currently coached step

auto_coach_enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "assembly_record_id": "string",
  • "end_time": "string",
  • "auto_coach_enabled": true
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Settings

Enable or disable release control

Request Body schema: application/json
release_control_enabled
boolean

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Update torque settings

Updates the torque configuration settings

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get torque settings

Retrieves the current torque configuration settings

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Train

Capture all text found on the current frame.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Retrieve a list of available training actions. Used when adding a new step to the end of the assembly.

Some training actions aren't available until others have been performed. EG. Serial Number Verification isn't available until a Serial Number Capture has been made. This endpoint returns which area currently available for a given assembly.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Returns a list of variables that are available to be captured for a given Serial Number Capture step.

path Parameters
assembly_id
required
string
step_number
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Returns a list of variables defined as of a specific step.

path Parameters
assembly_id
required
string
step_number
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Determines which steps this given step is allowed to move to.

Some steps depend on other steps, such as a Serial Number Verification depending on a previous Serial Number Capture. This endpoint will return which indices a step may be allowed to move to with these dependencies in mind.

path Parameters
assembly_id
required
string
step_number
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Create a new model for a specific assembly

If not already done, this will change the global training context to this assembly.

path Parameters
assembly_id
required
string
Request Body schema: application/json
name
string
description
string
parent_id
string
revision_id
string
epochs
integer <int32>
batch_size
integer <int32>
complete_callback
string
enable_multistep_model
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "parent_id": "string",
  • "revision_id": "string",
  • "epochs": 0,
  • "batch_size": 0,
  • "complete_callback": "string",
  • "enable_multistep_model": true
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Edit a model for a specific assembly

If not already done, this will change the global training context to this assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
object (NeuralNet)
object (ModelConfiguration)

Responses

Request samples

Content type
application/json
{
  • "base_nn": {
    },
  • "configuration": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Inform model of the start of a new step

If not already done, this will change the global training context to this assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
step_roi_zoom
string
step_description
string
step_camera_name
string
step_minimum_predict
number <float>
step_benchmark
number <float>
step_index
integer <int32>
label_index
integer <int32>
Array of objects (StepDataInfo)
record_step
boolean
Array of objects (OCRCaptureVariableInfo)
actions
string

Possible values are: ML OCR_CHECK OCR_CAPTURE OCR_VERIFY OCR_ENTRY TORQUE TORQUE_ONLY INPUT OUTPUT QA QA_DWELL VIDEO_ONLY PART_VERIFICATION SCAN_REGION

data_ops
string

Possible values are: ADD DELETE INSERT UPDATE MOVE

step_type
string

Possible values are: MASTER CORRECT INCORRECT PERSPECTIVE IO OCCLUDED

Responses

Request samples

Content type
application/json
{
  • "step_roi_zoom": "string",
  • "step_description": "string",
  • "step_camera_name": "string",
  • "step_minimum_predict": 0,
  • "step_benchmark": 0,
  • "step_index": 0,
  • "label_index": 0,
  • "step_data_infos": [
    ],
  • "record_step": true,
  • "ocr_capture_variable_infos": [
    ],
  • "actions": "ML",
  • "data_ops": "UPDATE",
  • "step_type": "MASTER"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Update model for simple database updates

If not already done, this will change the global training context to this assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
step_roi_zoom
string
step_description
string
step_camera_name
string
step_minimum_predict
number <float>
step_benchmark
number <float>
step_index
integer <int32>
label_index
integer <int32>
Array of objects (StepDataInfo)
record_step
boolean
Array of objects (OCRCaptureVariableInfo)
actions
string

Possible values are: ML OCR_CHECK OCR_CAPTURE OCR_VERIFY OCR_ENTRY TORQUE TORQUE_ONLY INPUT OUTPUT QA QA_DWELL VIDEO_ONLY PART_VERIFICATION SCAN_REGION

data_ops
string

Possible values are: ADD DELETE INSERT UPDATE MOVE

step_type
string

Possible values are: MASTER CORRECT INCORRECT PERSPECTIVE IO OCCLUDED

Responses

Request samples

Content type
application/json
{
  • "step_roi_zoom": "string",
  • "step_description": "string",
  • "step_camera_name": "string",
  • "step_minimum_predict": 0,
  • "step_benchmark": 0,
  • "step_index": 0,
  • "label_index": 0,
  • "step_data_infos": [
    ],
  • "record_step": true,
  • "ocr_capture_variable_infos": [
    ],
  • "actions": "ML",
  • "data_ops": "UPDATE",
  • "step_type": "MASTER"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Capture an IO event for a specific assembly while recording a step

Between POST /model/start and POST /model/end of a Torque or IO action, declare when an IO event occurred.

path Parameters
assembly_id
required
string
Request Body schema: application/json
data_ops
string

Possible values are: ADD DELETE INSERT UPDATE MOVE

step_type
string

Possible values are: MASTER CORRECT INCORRECT PERSPECTIVE IO OCCLUDED

io_name
string
step_index
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "data_ops": "UPDATE",
  • "step_type": "MASTER",
  • "io_name": "string",
  • "step_index": 0
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Inform model of the end of a new step

Should be paired with POST /model/start/{assembly_id}. If not already done, this will change the global training context to this assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
create_overlay
boolean
overlay_rectangles
Array of strings
step_index
integer <int32>
label_index
integer <int32>
record_step
boolean
actions
string

Possible values are: ML OCR_CHECK OCR_CAPTURE OCR_VERIFY OCR_ENTRY TORQUE TORQUE_ONLY INPUT OUTPUT QA QA_DWELL VIDEO_ONLY PART_VERIFICATION SCAN_REGION

data_ops
string

Possible values are: ADD DELETE INSERT UPDATE MOVE

step_type
string

Possible values are: MASTER CORRECT INCORRECT PERSPECTIVE IO OCCLUDED

Responses

Request samples

Content type
application/json
{
  • "create_overlay": true,
  • "overlay_rectangles": [
    ],
  • "step_index": 0,
  • "label_index": 0,
  • "record_step": true,
  • "actions": "ML",
  • "data_ops": "UPDATE",
  • "step_type": "MASTER"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Revert the previous `start` call

If a POST /model/end hasn't been called yet, you may revert the previous POST /model/start call, deleting any data that was generated from said call. This allows you to essentially "undo" the previous operation.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Move one step to another location

After changing the global training context to a specific assembly, this endpoint allows you to move a step from one position to another position without restriction.

path Parameters
current_index
required
string
new_index
required
string
Request Body schema: application/json
assembly_id
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Copy one step to another location

After changing the global training context to a specific assembly, this endpoint allows you to copy a step from one position to another position without restriction.

path Parameters
from_assembly_id
required
string
step_index
required
string
Request Body schema: application/json
assembly_id
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Create an overlay for a step of a specific assembly

An overlay is made up of rectangles. These will be displayed to the operator during coaching of a specific step.

path Parameters
assembly_id
required
string
Request Body schema: application/json
overlay_rectangles
Array of strings
step_index
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "overlay_rectangles": [
    ],
  • "step_index": 0
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Check whether a step may be deleted or not.

Sometimes, a future step may depend on a previous step, such as a Serial Number Verification step depending on a previous Serial Number Capture step. This endpoint checks if other steps depend on this step or not, and responds whether it should be allowed to be deleted.

path Parameters
assembly_id
required
string
step_index
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a step from a specific assembly

path Parameters
assembly_id
required
string
step_index
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Delete a label from a step from a specific assembly

path Parameters
assembly_id
required
string
step_index
required
string
step_type
required
string
label_index
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Delete an assembly

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Initiate training of the model right now

path Parameters
assembly_id
required
string
Request Body schema: application/json
export
string

Request samples

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

Retrieve the current progress of an ongoing training session

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve the thumbnail of a label of a specific assembly

path Parameters
assembly_id
required
string
label
required
string

Responses

Get the video a label was trained with

path Parameters
assembly_id
required
string
label
required
string

Responses

Get the work instruction for a label

path Parameters
assembly_id
required
string

Responses

Get the image of the overlay a label was trained with

path Parameters
assembly_id
required
string
label
required
string

Responses

Cancel an assembly currently in an editing session

path Parameters
assembly_id
required
string
Request Body schema: application/json
cancel_current_training
boolean
finalize_only
boolean

Responses

Request samples

Content type
application/json
{
  • "cancel_current_training": true,
  • "finalize_only": true
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Cancel an assembly currently in a training session

path Parameters
assembly_id
required
string
Request Body schema: application/json
cancel_current_training
boolean
finalize_only
boolean

Responses

Request samples

Content type
application/json
{
  • "cancel_current_training": true,
  • "finalize_only": true
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get similarity scores of step's starting position with its potential ending positions

This endpoint returns multiple structural similarity index measures (SSIM) which represent how similar two images are. Each step is made up of multiple "end positions", or labels. This will return an SSIM comparing the STARTING position and each label. The closer to 0 the values are, the more similar they are.

Sample output:

{
    "step_number": 1,

    "ssim": {
        # Values are populated dynamically based on the amount of labels this step has
        "previous": 586.57,
        "incorrect_1": 874.01,
        "incorrect_2": 756.42,
        ...

    }
}
path Parameters
assembly_id
required
string
step_number
required
string

Schedule training of a model some time later

Request Body schema: application/json
name
string
description
string
when
string
assembly_id
string
type
string

The type of schedule request. Currently, the only valid value is "COMPUTE_TRAIN"

complete_callback
string
epochs
integer <int32>
nn_type
string
nn_product_type
string
version
string
python_version
string
tensorflow_version
string
model_category
string
model_type
string
model_name
string
enabled_occlusion_detection
boolean
enabled_multistep_model
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "when": "string",
  • "assembly_id": "string",
  • "type": "string",
  • "complete_callback": "string",
  • "epochs": 0,
  • "nn_type": "string",
  • "nn_product_type": "string",
  • "version": "string",
  • "python_version": "string",
  • "tensorflow_version": "string",
  • "model_category": "string",
  • "model_type": "string",
  • "model_name": "string",
  • "enabled_occlusion_detection": true,
  • "enabled_multistep_model": true
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Gets all scheduled training sessions

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Gets all scheduled training sessions of a certain status

Possible status values are "queued" and "ended".

path Parameters
status
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Cancel an assembly that is scheduled for a training session

path Parameters
name
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Cancel active parts library training session

Request Body schema: application/json
cancel_current_training
boolean

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Assembly Revisions

Retrieve all assembly revisions

Each Assembly is made up of one or more Assembly Revisions, which act as "versions" of a given assembly. This endpoint retrieves every revision of every assembly.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Create a new assembly revision

Request Body schema: application/json
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "Contactor Installation"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific assembly revision

path Parameters
revision_id
required
string
Example: d8dc6895-da23-4f4e-9eec-b508b8f9b3e2

The ID of the assembly revision

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Create or Update a specific assembly revision

path Parameters
revision_id
required
string
Example: d8dc6895-da23-4f4e-9eec-b508b8f9b3e2

The ID of the assembly revision

Request Body schema: application/json
name
string
description
string
image_link
string
tenant_id
string
training_complete
boolean
active_revision
string
published
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "Contactor Installation",
  • "description": "A new description",
  • "image_link": "/model/sample/image/57618016-cd00-4fc8-85f5-e4b26304c6ba/step-3_good",
  • "training_complete": true,
  • "active_revision": "57618016-cd00-4fc8-85f5-e4b26304c6ba",
  • "published": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve the assembly for a specific assembly revision

path Parameters
revision_id
required
string
Example: d8dc6895-da23-4f4e-9eec-b508b8f9b3e2

The ID of the assembly revision

rev_number
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Set the active revision for a specific assembly revision

path Parameters
revision_id
required
string
Example: d8dc6895-da23-4f4e-9eec-b508b8f9b3e2

The ID of the assembly revision

Request Body schema: application/json
assembly_id
string

Responses

Request samples

Content type
application/json
{
  • "assembly_id": "57618016-cd00-4fc8-85f5-e4b26304c6ba"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve all revisions of a specific assembly

path Parameters
revision_id
required
string
Example: d8dc6895-da23-4f4e-9eec-b508b8f9b3e2

The ID of the assembly revision

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Coachable Assembly Revisions

Retrieve all coachable revisions

Each Assembly is made up of one or more Assembly Revisions, which act as "versions" of a given assembly. This endpoint retrieves the most recently published assembly for each assembly revision.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Assemblies

Retrieve all assemblies

Recall that Assembly Revisions are made up of one or more assemblies. Assemblies are the discrete items you perform coaching on. This endpoint retrieves every assembly in the database.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Create an assembly

Deprecated. We recommend using POST /model/new/{assembly_id} and navigating the training workflow to create an assembly.

Request Body schema: application/json
name
string
description
string
image_link
string
tenant_id
string
training_complete
boolean
object (AssemblyId)
object (AssemblyId)
revision
integer <int32>
object (Steps)
object (Augmentation)
object (DatabaseOptions)
classes
Array of strings
product_version
string
model_version
string
published
boolean
approver
string
notes
string
record_videos
boolean
object (Timestamp)
active
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "image_link": "string",
  • "tenant_id": "string",
  • "training_complete": true,
  • "revision_id": {
    },
  • "parent_id": {
    },
  • "revision": 0,
  • "steps": {
    },
  • "augmentation": {
    },
  • "options": {
    },
  • "classes": [
    ],
  • "product_version": "string",
  • "model_version": "string",
  • "published": true,
  • "approver": "string",
  • "notes": "string",
  • "record_videos": true,
  • "last_edited": {
    },
  • "active": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific assembly

path Parameters
assembly_id
required
string
Example: 57618016-cd00-4fc8-85f5-e4b26304c6ba

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Create or Update a specific assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
object (AssemblyId)
name
string
description
string
image_link
string
tenant_id
string
training_complete
boolean
object (AssemblyId)
object (AssemblyId)
revision
integer <int32>
object (Steps)
object (Augmentation)
object (DatabaseOptions)
classes
Array of strings
product_version
string
model_version
string
published
boolean
approver
string
notes
string
record_videos
boolean
object (Timestamp)
active
boolean

Responses

Request samples

Content type
application/json
{
  • "id": {
    },
  • "name": "string",
  • "description": "string",
  • "image_link": "string",
  • "tenant_id": "string",
  • "training_complete": true,
  • "revision_id": {
    },
  • "parent_id": {
    },
  • "revision": 0,
  • "steps": {
    },
  • "augmentation": {
    },
  • "options": {
    },
  • "classes": [
    ],
  • "product_version": "string",
  • "model_version": "string",
  • "published": true,
  • "approver": "string",
  • "notes": "string",
  • "record_videos": true,
  • "last_edited": {
    },
  • "active": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a specific assembly

path Parameters
assembly_id
required
string
Example: 3c1a7eba-500e-4744-a967-0c095b1356cb

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Sets the active status of a specific assembly. Will deactivate all other assemblies in the Assembly Revision if set to True.

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Sets the last_edited value of the provided assembly to the current time

path Parameters
assembly_id
required
string
Example: af7ad140-9548-4bef-8c9b-792e80d3f687

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve all defined OCR Capture Variables

An OCR Capture Variable is a variable defined in a Serial Number Capture step. This retrieves all variables defined in every Serial Number Capture step for a specific assembly.

path Parameters
assembly_id
required
string
Example: af7ad140-9548-4bef-8c9b-792e80d3f687

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Checks if a training dataset exists for the assemlby.

path Parameters
assembly_id
required
string

Checks if an alignment exists for the assemlby.

path Parameters
assembly_id
required
string

Checks if there is an existing Assembly Video on the file system for this assembly.

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Checks if a video for a specific step of this assembly exists on the file system.

path Parameters
assembly_id
required
string
step_label
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get all steps for a specific assembly

Each assembly is made up of Steps. During coaching, these steps are shown to the operator chronologically to guide them from start to completion of the assembly. This endpoint retrieves every Step for a specific assembly.

path Parameters
assembly_id
required
string
Example: 57618016-cd00-4fc8-85f5-e4b26304c6ba

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Append a new step to a specific assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
name
string
description
string
image_link
string
video_link
string
overlay_link
string
minimum_predict
number <float>
benchmark
number <float>
roi_zoom
string
camera_id
string
object (AssemblyId)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "image_link": "string",
  • "video_link": "string",
  • "overlay_link": "string",
  • "minimum_predict": 0,
  • "benchmark": 0,
  • "roi_zoom": "string",
  • "camera_id": "string",
  • "assembly_id": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Get a step from a specific assembly

path Parameters
assembly_id
required
string
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update information about a specific step

path Parameters
assembly_id
required
string
step_id
required
string
Request Body schema: application/json
id
string
name
string
description
string
image_link
string
video_link
string
overlay_link
string
minimum_predict
number <float>
benchmark
number <float>
roi_zoom
string
camera_id
string
perspective_change
boolean
mask_perspective
boolean
training_required
boolean
classes
Array of strings
object (AssemblyId)
next_step_id
string
previous_step_id
string
object (DatabaseOptions)
Array of objects (StepData)
Array of objects (StepDetectionTarget)
Array of objects (StepMotion)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "image_link": "string",
  • "video_link": "string",
  • "overlay_link": "string",
  • "minimum_predict": 0,
  • "benchmark": 0,
  • "roi_zoom": "string",
  • "camera_id": "string",
  • "perspective_change": true,
  • "mask_perspective": true,
  • "training_required": true,
  • "classes": [
    ],
  • "assembly_id": {
    },
  • "next_step_id": "string",
  • "previous_step_id": "string",
  • "options": {
    },
  • "step_data": [
    ],
  • "step_detection_targets": [
    ],
  • "step_motions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0
}

Delete a specific step

path Parameters
assembly_id
required
string
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0
}

Delete a specific step's perspective

path Parameters
assembly_id
required
string
step_num
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0
}

Get the augmentations for a specific assembly

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Add or Update information of an augmentation for a specific assembly

path Parameters
assembly_id
required
string
Request Body schema: application/json
id
string
object (AssemblyId)
lighting_aug
number <float>
placement_aug
number <float>
color_aug
number <float>
prompt
string
negative_prompt
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "assembly_id": {
    },
  • "lighting_aug": 0,
  • "placement_aug": 0,
  • "color_aug": 0,
  • "prompt": "string",
  • "negative_prompt": "string"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve performance information of an operator for a specific assembly.

path Parameters
record_id
required
string
operator_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Checks if a given ocr capture variable type is in use on any assembly. Returns an 'in_use' status and information on the assemblies that reference the variable

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Checks if multiple OCR capture variable types are in use on any assemblies

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Removes a custom ocr capture variable from the ocr_settings

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Renames an existing ocr_capture_variable pair. Updates all references to utilize the revised name

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get assembly work instructions video

path Parameters
assembly_id
required
string

Responses

Generate Video Based Work Instructions for an Assembly

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get Status of current Video Based Work Instructions for an Assembly

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Cancel current video based work instructions

path Parameters
assembly_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Steps

Retrieve all defined OCR Capture Variables for a specific step

An OCR Capture Variable is a variable defined in a Serial Number Capture step. Given a Step ID, this retrieves all variables defined for that specific step.

path Parameters
step_id
required
integer
Example: 245

The Step ID in question

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Delete all OCR Capture Variables for a specific step

An OCR Capture Variable is a variable defined in a Serial Number Capture step. Given a Step ID, this retrieves all variables defined for that specific step.

path Parameters
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve step data for a specific step

Each Step is made up of StepData, an array of actions that describe what occurs in this Step. This returns all StepData for a specific Step.

path Parameters
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Add step data to a specific step

path Parameters
step_id
required
string
Request Body schema: application/json
Array of objects (StepDataInfo)
data_type
string

Describes what this StepData's action refers to. Possible values are: 'ml', 'ocr-check', 'ocr-capture', 'ocr-verify', 'torque', 'input', 'output', 'qa'.

units
string
name
string
tolerance
number <float>
auto_align
boolean
object (TorqueData)
object (DatabaseOptions)
Array of objects (OCRCaptureVariableInfo)

Responses

Request samples

Content type
application/json
{
  • "step_data_info": [
    ],
  • "data_type": "ml",
  • "units": "string",
  • "name": "string",
  • "tolerance": 0,
  • "auto_align": true,
  • "torque_data": {
    },
  • "options": {
    },
  • "ocr_capture_variable_info": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0
}

Get all StepDataInfo from specific StepData

Just like Steps are made up of StepData, StepData is made up of StepDataInfo. StepDataInfo is primarily key/value pairs that the are utilized for coaching in some way. The Key/Values that the StepDataInfo contains depends on the context of the StepData's data_type field.

path Parameters
step_id
required
string
step_data_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Add a new StepDataInfo to a specific Step

path Parameters
step_id
required
string
step_data_id
required
string
Request Body schema: application/json
label
string
link
string
value
string
step_data_id
string
type
string
name
string
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "link": "string",
  • "value": "string",
  • "step_data_id": "string",
  • "type": "string",
  • "name": "string",
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Add or Update information about a specific StepData

path Parameters
step_id
required
string
step_data_id
required
string
Request Body schema: application/json
Array of objects (StepDataInfo)
id
string
step_id
string
data_type
string

Describes what this StepData's action refers to. Possible values are: 'ml', 'ocr-check', 'ocr-capture', 'ocr-verify', 'torque', 'input', 'output', 'qa'.

units
string
name
string
tolerance
number <float>
auto_align
boolean
object (TorqueData)
object (DatabaseOptions)
Array of objects (OCRCaptureVariableInfo)

Responses

Request samples

Content type
application/json
{
  • "step_data_info": [
    ],
  • "id": "string",
  • "step_id": "string",
  • "data_type": "ml",
  • "units": "string",
  • "name": "string",
  • "tolerance": 0,
  • "auto_align": true,
  • "torque_data": {
    },
  • "options": {
    },
  • "ocr_capture_variable_info": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0
}

Add or Update information about a specific StepDataInfo

path Parameters
step_data_info_id
required
string
Request Body schema: application/json
id
string
label
string
link
string
value
string
step_data_id
string
type
string
name
string
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "label": "string",
  • "link": "string",
  • "value": "string",
  • "step_data_id": "string",
  • "type": "string",
  • "name": "string",
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Delete a specific StepDataInfo

path Parameters
step_data_info_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Step Records

Update an existing step record

path Parameters
record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

OCR Capture Variable Records

Update an existing OCR Capture Variable Record

path Parameters
record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Assembly Records

Retrieve metrics info from a specific assembly record

Each assembly record is a coaching session performed by a particular operator. Although redundant, the operator ID of the assembly record is required as well.

path Parameters
assembly_record_id
required
string
Example: 796f3b09-b3a1-4410-8d1a-c8ba38c0f751

The ID of the assembly record

operator_id
required
integer
Example: 1

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve assembly analytics data for customer

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve operator analytics with filtering and sorting

Request Body schema: application/json
object (Timestamp)
object (Timestamp)
Array of objects (OperatorAnalyticsFilter)
object (OperatorAnalyticsSort)
page
integer <int32>
page_size
integer <int32>
include_steps
boolean
include_ocr_variables
boolean

Responses

Request samples

Content type
application/json
{
  • "start_datetime": {
    },
  • "end_datetime": {
    },
  • "filters": [
    ],
  • "sort": {
    },
  • "page": 0,
  • "page_size": 0,
  • "include_steps": true,
  • "include_ocr_variables": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve information about all previous coaching sessions of a specific assembly

path Parameters
assembly_id
required
string
Example: 57618016-cd00-4fc8-85f5-e4b26304c6ba

The ID of the assembly

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Update an existing assembly record

path Parameters
assembly_record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get incomplete assembly records for rework

Returns assembly records that are not complete and have not been resumed. Used by the Rework screen. Supports optional filtering by date range and OCR capture data.

query Parameters
page
integer
Example: page=1

Page number (1-indexed)

page_size
integer
Example: page_size=10

Number of records per page

start_date
string
Example: start_date=2024-01-01T00:00:00Z

Start date filter (ISO 8601 format)

end_date
string
Example: end_date=2024-12-31T23:59:59Z

End date filter (ISO 8601 format)

ocr_capture_type
string
Example: ocr_capture_type=Serial Number

OCR capture type filter (e.g., 'Serial Number')

ocr_capture_value
string
Example: ocr_capture_value=ABC123

OCR capture value filter

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Resume an incomplete assembly record

Creates a new rework assembly record that resumes from a specific step. Copies completed step records from the original.

path Parameters
assembly_record_id
required
string
Example: 796f3b09-b3a1-4410-8d1a-c8ba38c0f751

The UUID of the original incomplete assembly record

Request Body schema: application/json
resume_from_step_id
required
integer <int32>

Step ID to resume from

operator_id
required
integer <int32>

Operator performing the rework

rework_reason
required
string

Reason for the rework

rework_id
string

Optional DISP/rework ID

Responses

Request samples

Content type
application/json
{
  • "device_id": "superpod_001",
  • "device_type": "superpod",
  • "device_name": "SuperPod Station 1",
  • "ip_address": "192.168.1.100",
  • "port": 502,
  • "connection_timeout": 5000,
  • "max_retries": 3
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Deletes the assembly records for a specified assembly

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Delete a single assembly record (soft delete)

Soft deletes an assembly record. Used by the Rework page to remove incomplete records.

path Parameters
record_id
required
string
Example: 796f3b09-b3a1-4410-8d1a-c8ba38c0f751

The UUID of the assembly record to delete

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve information about a specific record

path Parameters
record_id
required
string
Example: 796f3b09-b3a1-4410-8d1a-c8ba38c0f751

The ID of the assembly record

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Generate a QA Report for a specific assembly record

path Parameters
assembly_record_id
required
string
Example: 796f3b09-b3a1-4410-8d1a-c8ba38c0f751

The ID of the assembly record

Retrieve a QA Report from a specific assembly record

path Parameters
assembly_record_id
required
string

Responses

Get the most recent assembly record for a specific assembly

Despite this returning an array, it only returns the most recent record.

path Parameters
assembly_id
required
string
Example: 57618016-cd00-4fc8-85f5-e4b26304c6ba

The ID of the assembly to retrieve records from

limit
required
integer
Example: 1

Required, but currently unused. Only returns one result.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Get the most recent record for a specific operator

Despite this returning an array, it only returns the most recent record.

path Parameters
operator_id
required
integer
Example: 1

The ID of the Operator to retrieve most recent record from

limit
required
integer
Example: 1

Required, but currently unused. Only returns one result.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Retrieve performance information of specific step, performed by a specific operator, of a previously coached assembly

path Parameters
record_id
required
string
operator_id
required
string
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Assembly_records

Get image links for incorrect images captured during coaching.

path Parameters
assembly_record_id
required
string
step_number
required
string

Get image link for the assembly recording for a given assembly record id

path Parameters
assembly_record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Checks if the file system has a recording for a given assembly record.

path Parameters
assembly_record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Checks if the file system has a recording for a given list of assembly reocords.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Operators

Get information about every operator

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Add a new operator

Request Body schema: application/json
id
string
first_name
string
last_name
string
num_records
integer <int32>
role
string
rfid
string
password
string
active
boolean
has_password
boolean
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "num_records": 0,
  • "role": "string",
  • "rfid": "string",
  • "password": "string",
  • "active": true,
  • "has_password": true,
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get information about every active operator

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update active status for existing operator

Request Body schema: application/json
id
string
first_name
string
last_name
string
num_records
integer <int32>
role
string
rfid
string
password
string
active
boolean
has_password
boolean
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "num_records": 0,
  • "role": "string",
  • "rfid": "string",
  • "password": "string",
  • "active": true,
  • "has_password": true,
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get the operator id given operator First Name and Last Name

Request Body schema: application/json
first_name
string
last_name
string

Responses

Request samples

Content type
application/json
{
  • "first_name": "jane",
  • "last_name": "doe"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get information about a specific operator

path Parameters
operator_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update role for existing operator

Request Body schema: application/json
id
string
first_name
string
last_name
string
num_records
integer <int32>
role
string
rfid
string
password
string
active
boolean
has_password
boolean
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "num_records": 0,
  • "role": "string",
  • "rfid": "string",
  • "password": "string",
  • "active": true,
  • "has_password": true,
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Update name for existing operator

Request Body schema: application/json
id
string
first_name
string
last_name
string
num_records
integer <int32>
role
string
rfid
string
password
string
active
boolean
has_password
boolean
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "num_records": 0,
  • "role": "string",
  • "rfid": "string",
  • "password": "string",
  • "active": true,
  • "has_password": true,
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Update password for an existing operator

Request Body schema: application/json
id
string
first_name
string
last_name
string
num_records
integer <int32>
role
string
rfid
string
password
string
active
boolean
has_password
boolean
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "num_records": 0,
  • "role": "string",
  • "rfid": "string",
  • "password": "string",
  • "active": true,
  • "has_password": true,
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Verifies if the provided RFID is associated with an active Operator. Returns the active operator

Request Body schema: application/json
rfid
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Updates the RFID for the specified operator.

Request Body schema: application/json
id
string
rfid
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "rfid": "string"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Validates if provided password meets password requirements

Request Body schema: application/json
password
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Authenticates operator credentials provided operator first_name, last_name, and password

Request Body schema: application/json
first_name
string
last_name
string
password
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Returns a hash for provided password

Request Body schema: application/json
password
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get all metrics of a specific operator

path Parameters
operator_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get metrics on a previously coached assembly performed by a specific operator

path Parameters
operator_id
required
string
assembly_record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve performance information of specific step, performed by a specific operator, of a previously coached assembly

path Parameters
operator_id
required
string
assembly_record_id
required
string
step_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve all records of a specific operator

path Parameters
operator_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve filtered records of a specific operator

path Parameters
operator_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Camera

Gets info all cameras in database

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Adds a new camera to the database

Request Body schema: application/json
id
string
name
string
mfg
string
serial_number
string
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "mfg": "string",
  • "serial_number": "string",
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Deletes camera from the database

Request Body schema: application/json
id
string
name
string
mfg
string
serial_number
string
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "mfg": "string",
  • "serial_number": "string",
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Gets an M-JPEG stream of the active camera

Gets an M-JPEG stream of the active camera. Make sure to start the camera pipeline first via POST /camera_stream.

Request Body schema: application/json
id
string
name
string
mfg
string
serial_number
string
object (DatabaseOptions)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "mfg": "string",
  • "serial_number": "string",
  • "options": {
    }
}

Resume the streaming pipeline for the active camera

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Pause the streaming pipeline for the active camera

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve a single frame from the active camera

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get the config of a specific camera

path Parameters
camera_name
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update the configuration of a specific camera

Request Body schema: application/json
resolution
string
resize_pipeline
string
resize_web
string
framerate
number <float>
iso
integer <int32>
rotation
integer <int32>
zoom
string
ip
string
port
string
stream_path
string
pipeline_color_format
string
device_user_name
string
camera_type
string

Possible values are: UNKNOWN BASLER_ACE BASLER_GIGE BASLER_AC2 BASLER_USB BASLER_EMULATOR RASPBERRY_PI

device_serial_number
string
emulation
boolean
user_set
string
model
string
Width
integer <int32>
Height
integer <int32>
OffsetX
integer <int32>
OffsetY
integer <int32>
ReverseX
integer <int32>
ReverseY
integer <int32>
PixelFormat
string
AcquisitionMode
string
ExposureAuto
string
ExposureMode
string
AcquisitionFrameRateAbs
number <float>
AcquisitionFrameRate
number <float>
PylonIgnoreCaps
integer <int32>
DeviceUserID
string
ImageFilepath
string
CameraWidth
integer <int32>
CameraHeight
integer <int32>
CameraOffsetX
integer <int32>
CameraOffsetY
integer <int32>
AutoFocus
boolean
WhiteBalanceRed
number <float>
WhiteBalanceGreen
number <float>
WhiteBalanceBlue
number <float>
ExposureTime
number <float>
Gain
number <float>
MaxGain
number <float>
MaxExposureTime
integer <int32>
AutoReconnect
boolean
WidthMax
integer <int32>
HeightMax
integer <int32>
object (SystemOptions)
object (CameraTestConfig)
force_full_range
boolean

Responses

Request samples

Content type
application/json
{
  • "resolution": "string",
  • "resize_pipeline": "string",
  • "resize_web": "string",
  • "framerate": 0,
  • "iso": 0,
  • "rotation": 0,
  • "zoom": "string",
  • "ip": "string",
  • "port": "string",
  • "stream_path": "string",
  • "pipeline_color_format": "string",
  • "device_user_name": "string",
  • "camera_type": "string",
  • "device_serial_number": "string",
  • "emulation": true,
  • "user_set": "string",
  • "model": "string",
  • "Width": 0,
  • "Height": 0,
  • "OffsetX": 0,
  • "OffsetY": 0,
  • "ReverseX": 0,
  • "ReverseY": 0,
  • "PixelFormat": "string",
  • "AcquisitionMode": "string",
  • "ExposureAuto": "string",
  • "ExposureMode": "string",
  • "AcquisitionFrameRateAbs": 0,
  • "AcquisitionFrameRate": 0,
  • "PylonIgnoreCaps": 0,
  • "DeviceUserID": "string",
  • "ImageFilepath": "string",
  • "CameraWidth": 0,
  • "CameraHeight": 0,
  • "CameraOffsetX": 0,
  • "CameraOffsetY": 0,
  • "AutoFocus": true,
  • "WhiteBalanceRed": 0,
  • "WhiteBalanceGreen": 0,
  • "WhiteBalanceBlue": 0,
  • "ExposureTime": 0,
  • "Gain": 0,
  • "MaxGain": 0,
  • "MaxExposureTime": 0,
  • "AutoReconnect": true,
  • "WidthMax": 0,
  • "HeightMax": 0,
  • "system_options": {
    },
  • "test_config": {
    },
  • "force_full_range": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get the active camera

This returns the Basler device user name. EG. "RAP_CAM_01"

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get the active camera's zoom level

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get all Basler device usernames

Some Camera endpoints require a "device_user_name", which is an identifier for a given Basler camera. This endpoint returns all configured basler device user names. Response is returned in a JSON serialized string. Sample response:

{
    "status": "ok",
    "msg": "[\"RAP_CAM_01\", \"RAP_CAM_02\"]"
}

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Capture an 896x896 picture from the active camera

Responses

Triggers the Auto Adjust functionality of a specific camera

For cameras ending in PD01, also triggers optimize focus workflow

Request Body schema: application/json
device_user_name
required
string

A Basler device username

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Triggers the Auto Focus functionality of a specific camera

Use force_full_range=true to skip cached diopter ranges and run full autofocus.

Request Body schema: application/json
device_user_name
required
string

A Basler device username

force_full_range
boolean
Default: false

If true, skip cached ranges and run full autofocus

Responses

Request samples

Content type
application/json
{
  • "device_user_name": "string",
  • "force_full_range": false
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Check if autofocus is currently running

Returns whether autofocus is currently running. Used by frontend to show/hide autofocus indicator.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Optimize autofocus by learning diopter ranges ()

Triggers autofocus optimization to learn optimal diopter ranges for faster future autofocus. This is a manual optimization - user should move camera to different working distances and trigger this endpoint at each position. Database automatically updates with learned ranges.

Request Body schema: application/json
device_user_name
required
string

A Basler device username

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Set the max gain of a specific camera

Request Body schema: application/json
device_user_name
required
string

A Basler device username

max_gain
number <float>

Responses

Request samples

Content type
application/json
{
  • "device_user_name": "string",
  • "max_gain": 0
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get the max exposure time for each camera

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Set the max exposure time for each camera

Request Body schema: application/json
max
integer <int32>

Exposure time in microseconds

Responses

Request samples

Content type
application/json
{
  • "max": 0
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Set exposure time for manual user adjustments with permanent storage

Request Body schema: application/json
max
integer <int32>

Exposure time in microseconds

device_user_name
string

Camera device name

Responses

Request samples

Content type
application/json
{
  • "max": 0,
  • "device_user_name": "string"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Set the max exposure time of a specific camera

Request Body schema: application/json
device_user_name
string
max_exposure_time
integer <int32>

Exposure time in microseconds

Responses

Request samples

Content type
application/json
{
  • "device_user_name": "string",
  • "max_exposure_time": 0
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

System

Get the health status of system components

Request Body schema: application/json
_compute_sensor_camera_basler
string

Possible values are: UNKNOWN UP DOWN RESET

_compute_sensor_mechanical_io
string

Possible values are: UNKNOWN UP DOWN RESET

_buslog_scheduler
string

Possible values are: UNKNOWN UP DOWN RESET

_store_filesys
string

Possible values are: UNKNOWN UP DOWN RESET

_store_database
string

Possible values are: UNKNOWN UP DOWN RESET

_compute_predict
string

Possible values are: UNKNOWN UP DOWN RESET

_compute_sequencer
string

Possible values are: UNKNOWN UP DOWN RESET

_compute_train.*?
string

Possible values are: UNKNOWN UP DOWN RESET

_compute_recorder
string

Possible values are: UNKNOWN UP DOWN RESET

_ui_webserver
string

Possible values are: UNKNOWN UP DOWN RESET

_buslog_reporting
string

Possible values are: UNKNOWN UP DOWN RESET

Request samples

Content type
application/json
{
  • "_compute_sensor_camera_basler": "UP",
  • "_compute_sensor_mechanical_io": "UP",
  • "_buslog_scheduler": "UP",
  • "_store_filesys": "UP",
  • "_store_database": "UP",
  • "_compute_predict": "UP",
  • "_compute_sequencer": "UP",
  • "_compute_train.*?": "UP",
  • "_compute_recorder": "UP",
  • "_ui_webserver": "UP",
  • "_buslog_reporting": "UP"
}

Get link to file within a bucket

path Parameters
bucket
required
string
tail
required
string

Responses

Check if running a SUPERCHARGER or a regular system

Return values may be "SUPER", or "REGULAR"

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Reset the system

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Shutdown the system

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Returns info of GPIO ports in use

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Get IPC system type

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Reporting

Change how frequently a report is emailed, and who receives one

Request Body schema: application/json
frequency
string

Values can be "DAILY", "WEEKLY", "MONTHLY"

report_type
string

Currently, the only valid value is "ASSEMBLY"

recipients
Array of strings

Responses

Request samples

Content type
application/json
{
  • "frequency": "WEEKLY",
  • "report_type": "string",
  • "recipients": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Return all scheduled reports

Returns a list of all scheduled reports. Currently there is only ever one scheduled report which can be continuously overwritten by POST /scheduled-report. This will change in the future.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update information about a specific scheduled report

path Parameters
scheduled_report_id
required
integer
Example: 1

The ID of the scheduled report

Request Body schema: application/json
frequency
string

Values can be "DAILY", "WEEKLY", "MONTHLY"

recipients
Array of strings

Responses

Request samples

Content type
application/json
{
  • "frequency": "WEEKLY",
  • "recipients": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a specific scheduled report

path Parameters
scheduled_report_id
required
integer
Example: 1

The ID of the scheduled report

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

/email

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "email_type": 2,
  • "operator_needs_service_info": {
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Rapta Gateway

Get the static IP and subnet mask for this workstations Rapta Gateway.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Set the static IP and subnet mask for this workstations Rapta Gateway.

Request Body schema: application/json
static_ip
string
subnet_mask
string
object (Status)

Responses

Request samples

Content type
application/json
{
  • "static_ip": "desired_rapta_ip",
  • "subnet_mask": "255.255.255.0"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Data Backup Connection

Execute network backup right now.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve current status of the backup service. States whether the service is idle, ongoing backups or restorations, or if an error has occurred.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Create or update a data backup connection

Request Body schema: application/json
id
string
username
string
uri
string
directory
string
backup_enabled
boolean
backup_automatically
boolean
exception_recipients
Array of strings
object (Timestamp)
restore_message
string
restore_status
string

Possible values are: SUCCESS FAIL STARTED ENDED QUEUED UNAVAILABLE CANCELLED ERROR INVALID_ARGUMENT NOT_FOUND OK IDLE BUSY UNKNOWN INITIALIZING CHECKSUM_MISMATCH WARNING NOT_INITIALIZED ALREADY_EXISTS INTERNAL_ERROR UP DOWN WRONG_VERSION

object (Timestamp)
backup_message
string
backup_status
string

Possible values are: SUCCESS FAIL STARTED ENDED QUEUED UNAVAILABLE CANCELLED ERROR INVALID_ARGUMENT NOT_FOUND OK IDLE BUSY UNKNOWN INITIALIZING CHECKSUM_MISMATCH WARNING NOT_INITIALIZED ALREADY_EXISTS INTERNAL_ERROR UP DOWN WRONG_VERSION

Responses

Request samples

Content type
application/json
{
  • "username": "smb_username",
  • "password": "MySMBPassword",
  • "uri": "127.0.0.1",
  • "directory": "RaptaShare"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve a data backup connection

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a data backup connection

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve all removable storage devices connected to HMI.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Data Backup

List database snapshots on remote server

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Restore database from snapshot on remote server

Request Body schema: application/json
path
string
created_at
string

Responses

Request samples

Content type
application/json
{
  • "path": "2024-01-01"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Smart Wrench

Connect to a smart wrench device

Request Body schema: application/json
address
required
string
port
integer <int32>
timeout_ms
integer <int32>
connection_type
string
manufacturer
string
model
string
connection_parameters
object

Responses

Request samples

Content type
application/json
{
  • "address": "string",
  • "port": 0,
  • "timeout_ms": 0,
  • "connection_type": "string",
  • "manufacturer": "string",
  • "model": "string",
  • "connection_parameters": { }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Disconnect from a smart wrench device

Request Body schema: application/json
address
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get the current status of a smart wrench device

query Parameters
address
required
string

Address of the wrench

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Discover available smart wrench devices

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Toggle wrench functionalities (enable, disable, lock, unlock)

Request Body schema: application/json
action
required
string

One of 'enable', 'disable', 'lock', 'unlock'

program_nr
integer <int32>

Program number if applicable

Responses

Request samples

Content type
application/json
{
  • "action": "string",
  • "program_nr": 0
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get the current state of the wrench

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Configure a tightening program

Request Body schema: application/json
program_nr
required
integer <int32>
program
required
object

Responses

Request samples

Content type
application/json
{
  • "program_nr": 0,
  • "program": { }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Set sequence information

Request Body schema: application/json
program_nr
required
integer <int32>
sequence_number
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "program_nr": 0,
  • "sequence_number": 0
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Clear the wrench state (result queue or errors)

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Cancel the current tightening operation

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Alignment

Start Alignment AI

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Stop Alignment AI

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Set Alignment AI step id

path Parameters
step_id
required
integer
Example: 1

The ID of the step

assembly_id
required
integer
Example: 1

The ID of the assembly

query Parameters
mode
string
Enum: "continuous" "manual"
Example: mode=continuous

The mode of the step

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

API

Handle status updates from training service

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Parts Library

Retrieve all models from the parts library

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Create a new model in the parts library

Request Body schema: application/json
name
required
string
version
string
architecture
string

Responses

Request samples

Content type
application/json
{
  • "name": "YOLOv8",
  • "version": "1.0",
  • "architecture": "CNN"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a fully populated model from the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

query Parameters
page
integer
Default: 1
Example: page=1

Page number for detection targets (1-indexed)

page_size
integer
Example: page_size=20

Number of detection targets per page. Omit to return all targets.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific model from the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update a model in the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

Request Body schema: application/json
name
string
version
string
architecture
string

Responses

Request samples

Content type
application/json
{
  • "name": "YOLOv8-updated",
  • "version": "1.1",
  • "architecture": "CNN"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a model from the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve all detection targets from the parts library

path Parameters
model_id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Retrieve a fully populated detection target from the parts library

path Parameters
target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific detection target from the parts library

path Parameters
target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Create a new detection target in the parts library

Request Body schema: application/json
model_id
integer <int32>
label
required
string
display_id
string
part_number
string
description
string

Responses

Request samples

Content type
application/json
{
  • "model_id": 1,
  • "label": "Capacitor",
  • "part_number": "CAP-100",
  • "description": "100uF capacitor"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update a detection target in the parts library

path Parameters
target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Request Body schema: application/json
model_id
integer <int32>
label
string
display_id
string
part_number
string
description
string

Responses

Request samples

Content type
application/json
{
  • "label": "Updated Capacitor",
  • "part_number": "CAP-200",
  • "description": "200uF capacitor"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete a detection target from the parts library

path Parameters
target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve a model-detection target relationship from the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update a model-detection target relationship in the parts library

path Parameters
model_identifier
required
string
Example: 1

The ID, UUID, or name of the model

target_identifier
required
string
Example: 1

The ID, UUID, or label of the detection target

Request Body schema: application/json
trained
boolean
pending
boolean

Responses

Request samples

Content type
application/json
{
  • "trained": true,
  • "pending": false
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve all image samples from the parts library

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Create a new image sample in the parts library

Request Body schema: application/json
detection_target_id
integer <int32>
file_path
required
string
width
integer <int32>
height
integer <int32>
capture_conditions
string
augmented
boolean
correct
boolean
label
string

Responses

Request samples

Content type
application/json
{
  • "detection_target_id": 1,
  • "file_path": "/images/sample1.jpg",
  • "width": 1920,
  • "height": 1080,
  • "correct": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific image sample from the parts library

path Parameters
sample_identifier
required
string
Example: 1

The ID or UUID of the image sample

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update an image sample in the parts library

path Parameters
sample_identifier
required
string
Example: 1

The ID or UUID of the image sample

Request Body schema: application/json
detection_target_id
integer <int32>
file_path
string
width
integer <int32>
height
integer <int32>
capture_conditions
string
augmented
boolean
correct
boolean
label
string

Responses

Request samples

Content type
application/json
{
  • "file_path": "/images/updated_sample1.jpg",
  • "correct": false
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete an image sample from the parts library

path Parameters
sample_identifier
required
string
Example: 1

The ID or UUID of the image sample

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Retrieve a fully populated image sample from the parts library

path Parameters
sample_identifier
required
string
Example: 1

The ID or UUID of the image sample

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve all annotations from the parts library

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": [
    ]
}

Create a new annotation in the parts library

Request Body schema: application/json
image_sample_id
required
integer <int32>
bbox_x
required
number <float>
bbox_y
required
number <float>
bbox_width
required
number <float>
bbox_height
required
number <float>

Responses

Request samples

Content type
application/json
{
  • "image_sample_id": 1,
  • "bbox_x": 100,
  • "bbox_y": 200,
  • "bbox_width": 50,
  • "bbox_height": 75
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Retrieve a specific annotation from the parts library

path Parameters
annotation_identifier
required
string
Example: 1

The ID or UUID of the annotation

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Update an annotation in the parts library

path Parameters
annotation_identifier
required
string
Example: 1

The ID or UUID of the annotation

Request Body schema: application/json
image_sample_id
integer <int32>
bbox_x
number <float>
bbox_y
number <float>
bbox_width
number <float>
bbox_height
number <float>

Responses

Request samples

Content type
application/json
{
  • "bbox_x": 150,
  • "bbox_y": 250
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Delete an annotation from the parts library

path Parameters
annotation_identifier
required
string
Example: 1

The ID or UUID of the annotation

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

SuperPod

Connect to a SuperPod device

Establishes connection to a SuperPod positioning device via ModbusTCP.

**Supports two modes:**

**Mode 1 (Full Config):** Provide complete device configuration
- Use when: Setting up new device, overriding database config, device not in database
- Required fields: device_id, host, port, timeout_ms, constraints
- Example: See "Full Config Example" below

**Mode 2 (Device ID Only):** Provide only device_id
- Use when: Connecting to device already registered in database
- Required fields: device_id only
- Config loaded automatically from database
- Example: See "Minimal Example" below

Both modes are idempotent - calling multiple times with the same device_id will succeed.
Request Body schema: application/json
device_id
required
string

Unique device identifier

host
string

IP address or hostname (optional if device in database)

port
integer <int32>

ModbusTCP port (optional if device in database, default: 502)

timeout_ms
integer <int32>

Communication timeout in milliseconds (optional if device in database)

constraints
object

Movement limits for all axes (optional if device in database)

Responses

Request samples

Content type
application/json
{
  • "device_id": "string",
  • "host": "string",
  • "port": 0,
  • "timeout_ms": 0,
  • "constraints": { }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Disconnect from a SuperPod device

Disconnects from a SuperPod device and releases resources.

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "device_id": "superpod_001"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

List all connected SuperPod devices

Returns a list of all currently connected SuperPod devices with their status.

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get SuperPod device information

Returns detailed information about a specific SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Move SuperPod to absolute position

Commands the SuperPod to move to a specific absolute position with optional speed overrides.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "target_position": {
    },
  • "wait_for_completion": true,
  • "timeout_seconds": 30
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Move SuperPod relative to current position

Commands the SuperPod to move relative to its current position.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "delta": {
    },
  • "wait_for_completion": true,
  • "timeout_seconds": 30
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Emergency stop SuperPod movement

Immediately stops all movement on the SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Home SuperPod axes

Homes one or all axes on the SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "axes": [
    ],
  • "wait_for_completion": true,
  • "timeout_seconds": 60
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Enable SuperPod axis

Enables a specific axis on the SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "axis": "track"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Disable SuperPod axis

Disables a specific axis on the SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "axis": "track"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Reset SuperPod axis

Resets a specific axis on the SuperPod device (clears faults).

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "axis": "track"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get SuperPod device status

Returns the current status of the SuperPod device and all axes.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

query Parameters
axes
string
Example: axes=track,tilt

Comma-separated list of axis types to query (empty = all axes). SuperPod: track,tilt,roll. Precision Pod: x,y,tilt

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Get SuperPod current position

Returns the current position of the SuperPod device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

query Parameters
use_cache
boolean
Example: use_cache=true

Use cached position for performance

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": { }
}

Get SuperPod/PRIS device onboarding status

Returns the current onboarding status for a SuperPod or Precision Pod device.

This endpoint infers onboarding progress from device connection and homing status.
Used by the frontend onboarding modal to display real-time progress during device setup.

**Onboarding States:**
- `not_started`: Device not yet connected
- `in_progress`: Device connected but not all axes homed
- `complete`: Device connected and all axes homed (ready for use)
- `failed`: Connection failed or device error

**Task Progression:**
- SuperPod: Connect → Start Monitoring → Zero Gimbal (Roll) → Zero Gimbal (Tilt) → Home Track
- Precision Pod: Connect → Start Monitoring → Home T-axis → Home X-axis → Home Y-axis
path Parameters
device_id
required
string
Example: precision_pod_001

The ID of the SuperPod or Precision Pod device

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": { }
}

Reset SuperPod device (all axes)

Resets all axes on the SuperPod device simultaneously (clears faults on all axes).

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Enable SuperPod device (all axes)

Enables all axes on the SuperPod device simultaneously.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Disable SuperPod device (all axes)

Disables all axes on the SuperPod device simultaneously.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Queue motion sequence for execution

Queues a motion sequence for asynchronous execution on SuperPod device. Accepts step_motions as dictionaries and converts them to protobuf messages.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "step_motions": [
    ],
  • "correlation_id": "step_123",
  • "timeout_seconds": 300,
  • "auto_retry": true,
  • "auto_recover": true
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

Cancel motion sequence

Cancels an ongoing motion sequence on SuperPod device. If sequence_id is omitted, cancels ALL sequences for the device.

path Parameters
device_id
required
string
Example: superpod_001

The ID of the SuperPod device

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
{
  • "sequence_id": "uuid-string",
  • "emergency_stop": false,
  • "reason": "User clicked SKIP STEP"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "msg": {
    }
}

StepMotions

Create a new step motion

Creates a new step motion (intermediate layer between step and positions).

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get a step motion by ID

Retrieves a single step motion by its ID.

path Parameters
step_motion_id
required
integer

The ID of the step motion

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get all step motions for a step

Retrieves all step motions for a given step.

path Parameters
step_id
required
integer

The ID of the step

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

StepPositions

Create a new step position

Creates a new step position (supports both explicit and parametric modes).

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Get all positions for a step motion

Retrieves all step positions for a given step motion.

path Parameters
step_motion_id
required
integer

The ID of the step motion

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

AxisPositions

Create a new axis position

Creates a new axis position (supports both explicit and parametric modes).

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "msg": ""
}

Positioning Devices

Create or update a positioning device configuration

Upserts a positioning device configuration in the database. If device_id exists, updates the configuration. Otherwise, creates a new device. Used to store network configuration (IP address, port, timeouts) for positioning devices like SuperPod.

Request Body schema: application/json
device_id
required
string

Unique device identifier

device_type
string

Device type (superpod, precision_station, robot_arm)

device_name
string

User-friendly device name

ip_address
string

IPv4/IPv6 address

port
integer <int32>

Network port (default: 502 for ModbusTCP)

connection_timeout
integer <int32>

Connection timeout in milliseconds (default: 5000)

max_retries
integer <int32>

Maximum connection retry attempts (default: 3)

Responses

Request samples

Content type
application/json
{
  • "device_id": "superpod_001",
  • "device_type": "superpod",
  • "device_name": "SuperPod Station 1",
  • "ip_address": "192.168.1.100",
  • "port": 502,
  • "connection_timeout": 5000,
  • "max_retries": 3
}

Response samples

Content type
application/json
{
  • "device": { },
  • "created": true
}

Get all positioning device configurations

Retrieves a list of positioning device configurations from the database. Supports filtering by device type and active status, with pagination.

query Parameters
device_type
string
Example: device_type=superpod

Filter by device type (e.g., 'superpod', 'precision_station')

active_only
boolean
Example: active_only=true

Only return active devices (default: true)

limit
integer
Example: limit=10

Maximum number of results (default: 100)

offset
integer

Pagination offset (default: 0)

Responses

Response samples

Content type
application/json
{
  • "devices": [
    ],
  • "total_count": 0,
  • "success": true
}

Get a positioning device configuration by ID

Retrieves a single positioning device configuration from the database by device_id.

path Parameters
device_id
required
string
Example: superpod_001

Unique device identifier (e.g., 'superpod_001')

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "device_type": "string",
  • "device_name": "string",
  • "is_active": true,
  • "ip_address": "string",
  • "port": 0,
  • "connection_timeout": 0,
  • "max_retries": 0,
  • "created_at": "string",
  • "updated_at": "string"
}