openapi: 3.1.0 info: title: Opentrons HTTP Attached Instruments Flex Deck Configuration 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: Flex Deck Configuration description: Configure the Flex robot deck paths: /deck_configuration: get: tags: - Flex Deck Configuration summary: Get the Flex deck configuration description: Get the current deck configuration for a Flex robot, including all fixture assignments. operationId: getDeckConfiguration parameters: - $ref: '#/components/parameters/OTVersionHeader' responses: '200': description: Current deck configuration content: application/json: schema: $ref: '#/components/schemas/DeckConfigurationResponse' put: tags: - Flex Deck Configuration summary: Set the Flex deck configuration description: Set a new deck configuration for a Flex robot, assigning fixtures to deck slots. operationId: setDeckConfiguration parameters: - $ref: '#/components/parameters/OTVersionHeader' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeckConfigurationRequest' responses: '200': description: Deck configuration updated content: application/json: schema: $ref: '#/components/schemas/DeckConfigurationResponse' components: schemas: CutoutFixture: type: object description: A fixture assigned to a deck cutout on the Flex properties: cutoutId: type: string description: The deck cutout identifier (e.g., 'cutoutA1') cutoutFixtureId: type: string description: The fixture type identifier opentronsModuleSerialNumber: type: string nullable: true description: Serial number of the module in this slot, if any required: - cutoutId - cutoutFixtureId DeckConfigurationResponse: type: object properties: data: type: object properties: cutoutFixtures: type: array items: $ref: '#/components/schemas/CutoutFixture' lastModifiedAt: type: string format: date-time nullable: true DeckConfigurationRequest: type: object properties: data: type: object properties: cutoutFixtures: type: array items: $ref: '#/components/schemas/CutoutFixture' 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: '*'