openapi: 3.1.0 info: title: Viam Billing Arm Machines API description: 'REST/JSON transcoding of the Viam BillingService gRPC API. Retrieve current-month usage, invoice summaries, invoice PDFs, billing tiers, and the location-level billing organization assignment used by Viam''s "build a robotics business" features. Canonical contract: https://github.com/viamrobotics/api/blob/main/proto/viam/app/v1/billing.proto ' version: '2026.05' contact: name: Viam Support url: https://www.viam.com/contact servers: - url: https://app.viam.com description: Viam production cloud. security: - ApiKeyAuth: [] tags: - name: Machines description: A robot or smart machine running viam-server. Composed of one or more parts. paths: /viam.app.v1.AppService/ListRobots: post: summary: Viam List Machines description: List machines (robots) in a location. operationId: listRobots tags: - Machines requestBody: required: true content: application/json: schema: type: object required: - location_id properties: location_id: type: string responses: '200': description: Successful response. content: application/json: schema: type: object properties: robots: type: array items: $ref: '#/components/schemas/Machine' /viam.app.v1.AppService/GetRobot: post: summary: Viam Get Machine description: Retrieve a machine by id. operationId: getRobot tags: - Machines requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/NewRobot: post: summary: Viam Create Machine description: Create a new machine under a location. operationId: newRobot tags: - Machines requestBody: required: true content: application/json: schema: type: object required: - location - name properties: location: type: string name: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/UpdateRobot: post: summary: Viam Update Machine description: Update a machine's name or location. operationId: updateRobot tags: - Machines requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: string name: type: string location: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/DeleteRobot: post: summary: Viam Delete Machine description: Delete a machine. operationId: deleteRobot tags: - Machines requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: string responses: '200': description: Successful response. components: schemas: Machine: type: object properties: id: type: string name: type: string location: type: string last_access: type: string format: date-time created_on: type: string format: date-time securitySchemes: ApiKeyAuth: type: apiKey in: header name: key description: Viam API key.