openapi: 3.1.0
info:
title: Opentrons HTTP Attached Instruments API
description: The Opentrons HTTP API is a RESTful JSON-based interface exposed by Opentrons robots (Flex and OT-2) on the local network at port 31950. It enables developers to upload and manage protocols, create and control runs, issue atomic liquid handling commands, and query robot health and hardware state. The API is defined by an OpenAPI specification available directly from the robot at /openapi.json.
version: '4'
contact:
name: Opentrons Support
url: https://support.opentrons.com/
email: support@opentrons.com
license:
name: Apache 2.0
url: https://github.com/Opentrons/opentrons/blob/edge/LICENSE
x-api-version-header: Opentrons-Version
x-min-api-version: 2
servers:
- url: http://{robotIP}:31950
description: Opentrons robot local network server
variables:
robotIP:
default: 192.168.1.100
description: The IP address of the Opentrons robot on the local network
tags:
- name: Attached Instruments
description: Query attached pipettes and grippers
paths:
/instruments:
get:
tags:
- Attached Instruments
summary: Get attached instruments
description: Get a list of all instruments (pipettes and gripper) currently attached to the robot.
operationId: getInstruments
parameters:
- $ref: '#/components/parameters/OTVersionHeader'
- name: refresh
in: query
schema:
type: boolean
default: false
description: If true, refresh the instrument cache before returning
responses:
'200':
description: List of attached instruments
content:
application/json:
schema:
$ref: '#/components/schemas/InstrumentListResponse'
components:
schemas:
Instrument:
type: object
description: A pipette or gripper attached to the robot
properties:
mount:
type: string
enum:
- left
- right
- extension
description: The mount position of the instrument
instrumentType:
type: string
enum:
- pipette
- gripper
instrumentModel:
type: string
serialNumber:
type: string
subsystems:
type: array
items:
type: string
data:
type: object
additionalProperties: true
InstrumentListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Instrument'
parameters:
OTVersionHeader:
name: Opentrons-Version
in: header
required: true
description: The HTTP API version to use for this request. Must be 2 or higher. Use '*' to get the latest version.
schema:
oneOf:
- type: string
enum:
- '*'
- type: integer
minimum: 2
maximum: 4
example: '*'