openapi: 3.1.0 info: title: Viam Billing Arm Locations 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: Locations description: Logical grouping of machines (e.g., a building, site, or robot fleet). paths: /viam.app.v1.AppService/ListLocations: post: summary: Viam List Locations description: List locations under an organization. operationId: listLocations tags: - Locations requestBody: required: true content: application/json: schema: type: object required: - organization_id properties: organization_id: type: string responses: '200': description: Successful response. content: application/json: schema: type: object properties: locations: type: array items: $ref: '#/components/schemas/Location' /viam.app.v1.AppService/GetLocation: post: summary: Viam Get Location description: Retrieve a single location by id. operationId: getLocation tags: - Locations requestBody: required: true content: application/json: schema: type: object required: - location_id properties: location_id: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/CreateLocation: post: summary: Viam Create Location description: Create a new location under an organization. operationId: createLocation tags: - Locations requestBody: required: true content: application/json: schema: type: object required: - organization_id - name properties: organization_id: type: string name: type: string parent_location_id: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/UpdateLocation: post: summary: Viam Update Location description: Update a location's name or parent location. operationId: updateLocation tags: - Locations requestBody: required: true content: application/json: schema: type: object required: - location_id properties: location_id: type: string name: type: string parent_location_id: type: string responses: '200': description: Successful response. /viam.app.v1.AppService/DeleteLocation: post: summary: Viam Delete Location description: Delete a location and all machines under it. operationId: deleteLocation tags: - Locations requestBody: required: true content: application/json: schema: type: object required: - location_id properties: location_id: type: string responses: '200': description: Successful response. components: schemas: Location: type: object properties: id: type: string name: type: string organization: type: string parent_location_id: type: string auth: type: object created_on: type: string format: date-time securitySchemes: ApiKeyAuth: type: apiKey in: header name: key description: Viam API key.