Skip to content

ML Prep API (v1)

Download OpenAPI description
Languages
Servers
Mock server

http://{{your_prep_ip_address}}/

Authenticate

Operations

Backups

Operations

Calibration

Operations

Camera

Operations

Configuration

Operations

Credentials

Operations

Deck

Operations

Performs a calibration of the deck relative to the camera.

Request

In order for the calibration to succeed, the camera functionality must be enabled, and the deck must be cleared from all labware or objets that can interfere with the calibration process.

Security
Bearer
curl -i -X PUT \
  'http://{{your_prep_ip_address}}/api/v1/deck/calibrate' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The calibration was successful

Bodyapplication/json
idinteger(int32)
statusstring or null

The status of the camera calibration, will either be Pass or Fail

messagestring or null

An error message if applicable

hasErrorboolean

Whether or not the calibration has errors

calibrationDatestring(date-time)

The date the calibration was performed

Response
application/json
{ "id": 0, "status": "string", "message": "string", "hasError": true, "calibrationDate": "2019-08-24T14:15:22Z" }

Retrieves the history of previously performed calibrations

Request

Retrieves the history of previously performed calibrations including dates and errors.

Security
Bearer
curl -i -X GET \
  'http://{{your_prep_ip_address}}/api/v1/deck/calibrate' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The calibration was successful

Bodyapplication/jsonArray [
idinteger(int32)
statusstring or null

The status of the camera calibration, will either be Pass or Fail

messagestring or null

An error message if applicable

hasErrorboolean

Whether or not the calibration has errors

calibrationDatestring(date-time)

The date the calibration was performed

]
Response
application/json
[ { "id": 0, "status": "string", "message": "string", "hasError": true, "calibrationDate": "2019-08-24T14:15:22Z" } ]

(Depricated) Performs a scan using the camera to discover labware present on the deck

Request

The deck scan requires that the camera be enabled and functional. The deck should also have been recently calibrated (using PUT /Calibrate) to ensure optimal scan results. The scan returns the list of labware detected (sorted by confidence) at each position. The numMatches parameter specifies how many labware matches are returned per position.

Security
Bearer
Path
numMatchesinteger(int32)required

Number of desired labware matches per position

curl -i -X GET \
  'http://{{your_prep_ip_address}}/api/v1/deck/legacy-scan/{numMatches}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The scan completed successfully

Bodyapplication/jsonArray [
detectedLabwareIdinteger(int32)

The id of the top match detected at the position

confidencenumber(double)

A confidence value from [0, 1.0] measuring how confident the prediction is about the top match being accurate

isOccupiedboolean

Whether or not the prediction believes the position is occupied by some labware

positionIdinteger(int32)

The id of the position being scanned

labwareClassificationstring or null

The labware classification of the top match

matchesArray of objects or null(DeckScanResultDto)

The top N matches found, sorted by descending confidence value

]
Response
application/json
[ { "detectedLabwareId": 0, "confidence": 0.1, "isOccupied": true, "positionId": 0, "labwareClassification": "string", "matches": [] } ]

Performs a scan using the camera to discover labware present on the deck

Request

The deck scan requires that the camera be enabled and functional. The deck should also have been recently calibrated (using PUT /Calibrate) to ensure optimal scan results. The scan returns the list of labware detected (sorted by confidence) at each position. The numMatches parameter specifies how many labware matches are returned per position.

Security
Bearer
Path
numMatchesinteger(int32)required

Number of desired labware matches per position

curl -i -X GET \
  'http://{{your_prep_ip_address}}/api/v1/deck/scan/{numMatches}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The scan completed successfully

Bodyapplication/jsonArray [
detectedLabwareIdinteger(int32)

The id of the top match detected at the position

confidencenumber(double)

A confidence value from [0, 1.0] measuring how confident the prediction is about the top match being accurate

isOccupiedboolean

Whether or not the prediction believes the position is occupied by some labware

positionIdinteger(int32)

The id of the position being scanned

labwareClassificationstring or null

The labware classification of the top match

matchesArray of objects or null(DeckScanResultDto)

The top N matches found, sorted by descending confidence value

]
Response
application/json
[ { "detectedLabwareId": 0, "confidence": 0.1, "isOccupied": true, "positionId": 0, "labwareClassification": "string", "matches": [] } ]

Update the deck layout and steps of a protocol by the given protocolId

Request

Security
Bearer
Path
protocolIdinteger(int32)required

The id of the protocol to update

Bodyapplication/json
idinteger(int32)

The database id

positionsArray of objects or null(DeckPositionPostPutDto)

The deck positions numbered from 1 to 8

curl -i -X PUT \
  'http://{{your_prep_ip_address}}/api/v1/deck/{protocolId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": 1,
    "positions": [
      {
        "position": 1,
        "labwarePositions": [
          {
            "row": 1,
            "column": 1,
            "id": 1,
            "positionName": "Some Labware Position Name",
            "labwareGroup": {
              "labwareId": 42,
              "id": 1,
              "groupName": "Name for the Labware Group",
              "reuseTipsBetweenSteps": false,
              "liquidName": "Name of the Liquid",
              "liquidType": "Water",
              "liquidVolumeOptions": "CalculateForMe"
            },
            "liquidVolume": 42
          }
        ],
        "id": 1,
        "positionName": "Name of the Deck Position",
        "labwareGroup": {
          "labwareId": 42,
          "id": 1,
          "groupName": "Name for the Deck Position Labware Group",
          "reuseTipsBetweenSteps": false,
          "liquidName": "Name of the Liquid",
          "liquidType": "Water",
          "liquidVolumeOptions": "CalculateForMe"
        },
        "liquidVolume": 4200
      },
      {
        "position": 2,
        "labwarePositions": [],
        "id": 2,
        "positionName": "Another Deck Position Name",
        "labwareGroup": null,
        "liquidVolume": 0
      }
    ]
  }'

Responses

The deck layout of the given protocol was updated successfully

Bodyapplication/json
idinteger(int32)

The database id of the deck layout object

positionsArray of objects or null(DeckPositionGetDto)

The list of positions defined for the deck, sorted by position id

Response
application/json
{ "id": 0, "positions": [ {} ] }

Retrieves the deck layout with the provided deckLayoutId

Request

Security
Bearer
Path
deckLayoutIdinteger(int32)required

The id of the deck

curl -i -X GET \
  'http://{{your_prep_ip_address}}/api/v1/deck/{deckLayoutId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The deck layout with the given deckLayoutId

Bodyapplication/json
idinteger(int32)

The database id of the deck layout object

positionsArray of objects or null(DeckPositionGetDto)

The list of positions defined for the deck, sorted by position id

Response
application/json
{ "id": 0, "positions": [ {} ] }

Diagnostics

Operations

Enclosure

Operations

Environment

Operations

Errors

Operations

HepaUv

Operations

Instruments

Operations

Labware

Operations

LabwareCategories

Operations

LabwareSignature

Operations

Lighting

Operations

LiquidClass

Operations

Maintenance

Operations

NetworkConfiguration

Operations

Power

Operations

ProtocolRun

Operations

Protocols

Operations

ProtocolSteps

Operations

ProtocolSupport

Operations

ProtocolVerification

Operations

Repair

Operations

Report

Operations

Roles

Operations

RunData

Operations

Screenshots

Operations

ServiceSoftwareApi

Operations

Settings

Operations

SoftwareVersions

Operations

SystemReady

Operations

SystemTime

Operations

ThermalDevice

Operations

Traces

Operations

UserKba

Operations

Users

Operations

Verification

Operations

VerificationResult

Operations