Viam is a robotics and edge AI platform founded in 2020 by Eliot Horowitz (MongoDB co-founder and former CTO). It pairs viam-server — a gRPC-based runtime that runs on Linux single-board computers (RDK) and ESP32-class microcontrollers (micro-rdk) — with viam.app, a multi-tenant cloud for fleet management, data capture, ML training, and remote operations. Every hardware component (motors, cameras, sensors, arms) and every machine-level service (motion, vision, SLAM, ML inference, navigation) is exposed through a uniform gRPC contract defined in viamrobotics/api with first-class SDKs for Python, Go, Rust, TypeScript, C++, Java, .NET, and Flutter. A modular registry lets vendors and community contributors publish new hardware drivers, vision models, and services as OCI images or packages that any Viam machine can pull at config time, making physical-world control feel like building a microservice.
Create and manage organizations, locations, machines, machine parts, fragments, OAuth apps, API keys, and team memberships in the viam.app cloud. Backed by the AppService gRPC s...
Connect directly to a viam-server instance running on a device to inspect resources, run operations, manage sessions, retrieve machine status and version, transform poses, and t...
Upload, download, query (SQL/MQL), tag, and delete tabular and binary data captured from machines. Manage datasets, saved queries, bounding boxes, sequences, and the cloud-hoste...
Upload captured data from viam-server to the cloud via DataCaptureUpload, FileUpload, and StreamingDataCaptureUpload. This is the ingest plane that backs the Data Management Ser...
Submit and manage cloud-hosted ML training jobs that produce models deployable to viam-server. Supports built-in TFLite trainers and custom containerized trainers via SubmitTrai...
Run cloud-hosted inference against models registered in the Viam ML registry via GetInference. Complements the device-side ML Model Service for cases where compute must live in ...
Plan and execute motion for a machine's components — Move, MoveOnMap, MoveOnGlobe, GetPose, StopPlan, ListPlanStatuses, GetPlan. Runs on viam-server as a machine-level service c...
Run object detection, image classification, and 3D segmentation against a configured camera component. Supports GetDetectionsFromCamera, GetClassificationsFromCamera, GetObjectP...
Simultaneous Localization And Mapping. GetPosition returns the machine's pose within the map; GetPointCloudMap and GetInternalState stream the live map. Backed by Viam's ORB-SLA...
Device-side inference. Infer runs a deployed model against tensors; Metadata returns model input and output schemas. Pairs with TFLite, ONNX, and Triton ML model implementations.
Create, list, rename, enable, disable, and delete scheduled MQL data pipelines that aggregate captured machine data into the Viam hot data store. Backed by ListDataPipelineRuns ...
Bootstrap a smart machine onto Wi-Fi and into the viam.app cloud over Bluetooth or hotspot. SetNetworkCredentials, SetSmartMachineCredentials, GetNetworkList, GetSmartMachineSta...
Service APIs for motion planning, vision, SLAM, navigation, data management, ML model inference, sensors aggregation, world state, discovery, and generic services
Data Management Service captures data at the edge and syncs to the Viam cloud (tabular and binary)
Data Client API with SQL and MongoDB-MQL query interfaces over captured data
Data Pipelines for scheduled MQL aggregation into the Viam hot data store
ML Training cloud jobs (built-in TFLite trainers + custom containerized trainers)
ML Model Service for edge inference (TFLite, ONNX, Triton)
Cloud SLAM mapping sessions and Cartographer/ORB-SLAM3 integrations
Fleet-level fragments, packages, and machine configuration with OTA rollout
Provisioning over Bluetooth or hotspot via viam-agent and Flutter provisioning widgets
OAuth apps, API keys, location secrets, RBAC, and SCIM for organization administration
Billing API supporting custom per-machine, per-data, per-API-call invoicing for end-customers
Modular registry build pipeline via GitHub Action (multi-arch builds)
Hardware abstraction enabling write-once / run-on-many-platforms control code
Free tier with $5/month in included cloud usage; usage-based metering for storage, compute, and egress
Founded 2020 by Eliot Horowitz (MongoDB co-founder and former CTO)
aid: viam
url: https://raw.githubusercontent.com/api-evangelist/viam/refs/heads/main/apis.yml
apis:
- aid: viam:viam-fleet-management-api
name: Viam Fleet Management API
tags:
- Robotics
- Fleet Management
- Organizations
- Locations
- Machines
humanURL: https://docs.viam.com/dev/reference/apis/fleet/
properties:
- url: https://docs.viam.com/dev/reference/apis/fleet/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/v1/app.proto
type: Protobuf
- url: openapi/viam-fleet-management-api-openapi.yml
type: OpenAPI
- url: json-schema/viam-organization-schema.json
type: JSONSchema
- url: json-schema/viam-location-schema.json
type: JSONSchema
- url: json-schema/viam-machine-schema.json
type: JSONSchema
- url: json-ld/viam-context.jsonld
type: JSONLD
description: >-
Create and manage organizations, locations, machines, machine parts, fragments, OAuth apps, API keys, and team
memberships in the viam.app cloud. Backed by the AppService gRPC service in viamrobotics/api with REST/JSON
transcoding over app.viam.com:443.
- aid: viam:viam-machine-management-api
name: Viam Machine Management API
tags:
- Robotics
- Machines
- Sessions
- Operations
humanURL: https://docs.viam.com/dev/reference/apis/robot/
properties:
- url: https://docs.viam.com/dev/reference/apis/robot/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/robot/v1/robot.proto
type: Protobuf
- url: openapi/viam-machine-management-api-openapi.yml
type: OpenAPI
description: >-
Connect directly to a viam-server instance running on a device to inspect resources, run operations, manage
sessions, retrieve machine status and version, transform poses, and tunnel TCP traffic. The Robot Service is the
entry point for every machine-side gRPC call.
- aid: viam:viam-data-client-api
name: Viam Data Client API
tags:
- Robotics
- Data
- Tabular Data
- Binary Data
- Datasets
humanURL: https://docs.viam.com/dev/reference/apis/data-client/
properties:
- url: https://docs.viam.com/dev/reference/apis/data-client/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/data/v1/data.proto
type: Protobuf
- url: openapi/viam-data-client-api-openapi.yml
type: OpenAPI
- url: json-schema/viam-tabular-data-schema.json
type: JSONSchema
- url: json-schema/viam-binary-data-schema.json
type: JSONSchema
description: >-
Upload, download, query (SQL/MQL), tag, and delete tabular and binary data captured from machines. Manage
datasets, saved queries, bounding boxes, sequences, and the cloud-hosted MongoDB connection used for analytics
workloads.
- aid: viam:viam-data-sync-api
name: Viam Data Sync API
tags:
- Robotics
- Data
- Sync
- Capture
humanURL: https://docs.viam.com/data-ai/capture-data/capture-sync/
properties:
- url: https://docs.viam.com/data-ai/capture-data/capture-sync/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/datasync/v1/data_sync.proto
type: Protobuf
- url: openapi/viam-data-sync-api-openapi.yml
type: OpenAPI
description: >-
Upload captured data from viam-server to the cloud via DataCaptureUpload, FileUpload, and
StreamingDataCaptureUpload. This is the ingest plane that backs the Data Management Service running on every
machine.
- aid: viam:viam-ml-training-api
name: Viam ML Training API
tags:
- Robotics
- Machine Learning
- Training
- Edge AI
humanURL: https://docs.viam.com/data-ai/train/train-tflite/
properties:
- url: https://docs.viam.com/data-ai/train/train-tflite/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/mltraining/v1/ml_training.proto
type: Protobuf
- url: openapi/viam-ml-training-api-openapi.yml
type: OpenAPI
description: >-
Submit and manage cloud-hosted ML training jobs that produce models deployable to viam-server. Supports built-in
TFLite trainers and custom containerized trainers via SubmitTrainingJob and SubmitCustomTrainingJob.
- aid: viam:viam-ml-inference-api
name: Viam ML Inference API
tags:
- Robotics
- Machine Learning
- Inference
- Edge AI
humanURL: https://docs.viam.com/services/ml/deploy/
properties:
- url: https://docs.viam.com/services/ml/deploy/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/mlinference/v1/ml_inference.proto
type: Protobuf
- url: openapi/viam-ml-inference-api-openapi.yml
type: OpenAPI
description: >-
Run cloud-hosted inference against models registered in the Viam ML registry via GetInference. Complements the
device-side ML Model Service for cases where compute must live in the cloud.
- aid: viam:viam-billing-api
name: Viam Billing API
tags:
- Robotics
- Billing
- FinOps
- Invoices
humanURL: https://docs.viam.com/manage/manage/billing/
properties:
- url: https://docs.viam.com/manage/manage/billing/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/v1/billing.proto
type: Protobuf
- url: openapi/viam-billing-api-openapi.yml
type: OpenAPI
description: >-
Retrieve current-month usage, billing tier metadata, invoice summaries, invoice PDFs, and organization billing
information. Supports custom billing tiers and the location-level billing organization assignment used by Viam's
"build a robotics business" features.
- aid: viam:viam-motion-service-api
name: Viam Motion Service API
tags:
- Robotics
- Motion Planning
- Services
humanURL: https://docs.viam.com/services/motion/
properties:
- url: https://docs.viam.com/services/motion/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/service/motion/v1/motion.proto
type: Protobuf
- url: openapi/viam-motion-service-api-openapi.yml
type: OpenAPI
description: >-
Plan and execute motion for a machine's components — Move, MoveOnMap, MoveOnGlobe, GetPose, StopPlan,
ListPlanStatuses, GetPlan. Runs on viam-server as a machine-level service combining kinematic chains, frame
system, and obstacle avoidance.
- aid: viam:viam-vision-service-api
name: Viam Vision Service API
tags:
- Robotics
- Vision
- Computer Vision
- Services
humanURL: https://docs.viam.com/services/vision/
properties:
- url: https://docs.viam.com/services/vision/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/service/vision/v1/vision.proto
type: Protobuf
- url: openapi/viam-vision-service-api-openapi.yml
type: OpenAPI
description: >-
Run object detection, image classification, and 3D segmentation against a configured camera component. Supports
GetDetectionsFromCamera, GetClassificationsFromCamera, GetObjectPointClouds, and CaptureAllFromCamera.
- aid: viam:viam-slam-service-api
name: Viam SLAM Service API
tags:
- Robotics
- SLAM
- Mapping
- Services
humanURL: https://docs.viam.com/services/slam/
properties:
- url: https://docs.viam.com/services/slam/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/service/slam/v1/slam.proto
type: Protobuf
- url: openapi/viam-slam-service-api-openapi.yml
type: OpenAPI
description: >-
Simultaneous Localization And Mapping. GetPosition returns the machine's pose within the map; GetPointCloudMap and
GetInternalState stream the live map. Backed by Viam's ORB-SLAM3 and Cartographer integrations and the Cloud SLAM
service.
- aid: viam:viam-ml-model-service-api
name: Viam ML Model Service API
tags:
- Robotics
- Machine Learning
- Inference
- Edge AI
- Services
humanURL: https://docs.viam.com/services/ml/deploy/
properties:
- url: https://docs.viam.com/services/ml/deploy/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/service/mlmodel/v1/mlmodel.proto
type: Protobuf
- url: openapi/viam-ml-model-service-api-openapi.yml
type: OpenAPI
description: >-
Device-side inference. Infer runs a deployed model against tensors; Metadata returns model input and output
schemas. Pairs with TFLite, ONNX, and Triton ML model implementations.
- aid: viam:viam-component-apis
name: Viam Component APIs
tags:
- Robotics
- Components
- Hardware
- Sensors
- Actuators
humanURL: https://docs.viam.com/dev/reference/apis/
properties:
- url: https://docs.viam.com/dev/reference/apis/
type: Documentation
- url: https://github.com/viamrobotics/api/tree/main/proto/viam/component
type: Protobuf
- url: openapi/viam-component-apis-openapi.yml
type: OpenAPI
description: >-
Hardware abstraction for every supported component class — arm, audio in/out, base, board, button, camera,
encoder, gantry, generic, gripper, input controller, motor, movement sensor, pose tracker, power sensor, sensor,
servo, switch. Each component class exposes a uniform gRPC contract.
- aid: viam:viam-data-pipelines-api
name: Viam Data Pipelines API
tags:
- Robotics
- Data
- Pipelines
- Analytics
humanURL: https://docs.viam.com/data-ai/data/data-pipelines/
properties:
- url: https://docs.viam.com/data-ai/data/data-pipelines/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/app/datapipelines/v1/data_pipelines.proto
type: Protobuf
- url: openapi/viam-data-pipelines-api-openapi.yml
type: OpenAPI
description: >-
Create, list, rename, enable, disable, and delete scheduled MQL data pipelines that aggregate captured machine
data into the Viam hot data store. Backed by ListDataPipelineRuns for execution history.
- aid: viam:viam-provisioning-api
name: Viam Provisioning API
tags:
- Robotics
- Provisioning
- Onboarding
- Bluetooth
humanURL: https://docs.viam.com/manage/configure/provisioning/
properties:
- url: https://docs.viam.com/manage/configure/provisioning/
type: Documentation
- url: https://github.com/viamrobotics/api/blob/main/proto/viam/provisioning/v1/provisioning.proto
type: Protobuf
- url: openapi/viam-provisioning-api-openapi.yml
type: OpenAPI
description: >-
Bootstrap a smart machine onto Wi-Fi and into the viam.app cloud over Bluetooth or hotspot. SetNetworkCredentials,
SetSmartMachineCredentials, GetNetworkList, GetSmartMachineStatus, and ExitProvisioning are used by the Flutter
provisioning widgets and viam-agent.
name: Viam
tags:
- Robotics
- Edge AI
- Fleet Management
- Computer Vision
- Machine Learning
- IoT
- Embedded
- gRPC
kind: contract
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
access: 3rd-Party
common:
- type: PostmanWorkspace
url: https://www.postman.com/kinlaneapi/viam/overview
- type: ArazzoWorkflows
url: arazzo/
workflows:
- url: arazzo/viam-add-machine-with-part-workflow.yml
name: Viam Add a Machine With a Part
summary: Create a machine in an existing location and add a viam-server part to it.
- url: arazzo/viam-arm-move-and-verify-workflow.yml
name: Viam Arm Move and Verify
summary: Read an arm's pose, move it to a target, verify joints, then stop it.
- url: arazzo/viam-bill-customer-location-workflow.yml
name: Viam Bill a Customer Location
summary: Reassign a location's billing org, read usage, and charge the customer.
- url: arazzo/viam-curate-dataset-workflow.yml
name: Viam Curate a Training Dataset
summary: Find binary data by filter, tag the matches, and add them to a dataset.
- url: arazzo/viam-data-pipeline-lifecycle-workflow.yml
name: Viam Data Pipeline Lifecycle
summary: Create a scheduled MQL pipeline, resolve it, enable it, and list its runs.
- url: arazzo/viam-fragment-rollout-workflow.yml
name: Viam Roll Out a Configuration Fragment
summary: Create a reusable config fragment and restart a machine part to adopt it.
- url: arazzo/viam-machine-health-check-workflow.yml
name: Viam Machine Health Check
summary: Inspect a live machine's status, resources, version, and cloud identity.
- url: arazzo/viam-onboard-org-member-workflow.yml
name: Viam Onboard an Organization Member
summary: Verify an organization, invite a new member, and confirm the pending invite.
- url: arazzo/viam-provision-fleet-workflow.yml
name: Viam Provision a New Fleet
summary: Stand up a brand-new organization, location, and machine in one pass.
- url: arazzo/viam-provision-smart-machine-workflow.yml
name: Viam Provision a Smart Machine
summary: Bootstrap a fresh device onto Wi-Fi and into the Viam cloud over the hotspot.
- url: arazzo/viam-saved-query-lifecycle-workflow.yml
name: Viam Saved Query Lifecycle
summary: Create a saved SQL query, resolve it from the list, read it, and update it.
- url: arazzo/viam-train-and-monitor-model-workflow.yml
name: Viam Train and Monitor an ML Model
summary: Submit a TFLite training job, poll its status, and branch to logs or cancel.
- url: https://www.viam.com
type: Portal
- url: https://docs.viam.com
name: Viam Documentation
type: Documentation
- url: https://docs.viam.com/dev/reference/apis/
name: API Reference
type: Documentation
- url: https://docs.viam.com/sdks/
name: SDKs
type: Documentation
- url: https://app.viam.com
name: Viam App
type: SignUp
- url: https://app.viam.com
name: Viam Cloud Console
type: Sandbox
- url: https://www.viam.com/pricing
name: Pricing
type: Pricing
- url: https://docs.viam.com/dev/reference/changelog/
name: Changelog
type: ChangeLog
- url: https://status.viam.com
name: Status
type: StatusPage
- url: https://docs.viam.com/manage/cli/
name: Viam CLI
type: Documentation
- url: https://github.com/viamrobotics
name: Viam Robotics GitHub
type: GitHubOrganization
- url: https://github.com/viamrobotics/api
name: Viam API Protobuf Definitions
type: Protobuf
- url: https://github.com/viamrobotics/rdk
name: Viam RDK (viam-server, Go)
type: SDK
- url: https://github.com/viamrobotics/micro-rdk
name: Viam Micro-RDK (microcontroller, Rust)
type: SDK
- url: https://github.com/viamrobotics/viam-python-sdk
name: Python SDK
type: SDK
- url: https://github.com/viamrobotics/viam-typescript-sdk
name: TypeScript SDK
type: SDK
- url: https://github.com/viamrobotics/viam-rust-sdk
name: Rust SDK
type: SDK
- url: https://github.com/viamrobotics/viam-cpp-sdk
name: C++ SDK
type: SDK
- url: https://github.com/viamrobotics/viam-flutter-sdk
name: Flutter SDK
type: SDK
- url: https://github.com/viamrobotics/viam-java-sdk
name: Java SDK
type: SDK
- url: https://github.com/viamrobotics/viam-dotnet-sdk
name: .NET SDK
type: SDK
- url: https://github.com/viamrobotics/viam-svelte-sdk
name: Svelte SDK
type: SDK
- url: https://github.com/viamrobotics/agent
name: Viam Agent
type: Tool
- url: https://github.com/viamrobotics/build-action
name: Viam Module Build GitHub Action
type: Tool
- url: https://github.com/viamrobotics/upload-module
name: Upload Module to Registry
type: Tool
- url: https://github.com/viamrobotics/visualization
name: Motion and Spatial Visualization
type: Tool
- url: https://github.com/viamrobotics/samples
name: Sample Apps and Templates
type: CodeExamples
- url: https://github.com/viamrobotics/can-inspection-simulation
name: Can Inspection Simulation (Tutorial)
type: CodeExamples
- url: https://github.com/viamrobotics/inspection-module-starter
name: Inspection Module Starter (Tutorial)
type: CodeExamples
- url: https://github.com/viamrobotics/docs
name: docs.viam.com source
type: Documentation
- url: https://github.com/viamrobotics/prime
name: Prime UI Library
type: Tool
- url: https://github.com/viamrobotics/three
name: Three.js Viam Utilities
type: Tool
- url: https://app.viam.com/registry
name: Viam Registry (modular components and ML models)
type: Portal
- url: https://discord.gg/viam
name: Viam Discord
type: Forum
- url: https://www.viam.com/blog
name: Blog
type: Blog
- url: https://www.viam.com/post
name: Engineering Posts
type: Blog
- url: https://www.viam.com/customers
name: Customer Stories
type: CaseStudies
- url: https://www.viam.com/legal/terms
name: Terms of Service
type: TermsOfService
- url: https://www.viam.com/legal/privacy
name: Privacy Policy
type: PrivacyPolicy
- url: https://www.viam.com/security
name: Security
type: TrustCenter
- url: https://www.viam.com/contact
name: Contact
type: Support
- url: https://www.linkedin.com/company/viamrobotics
name: Viam on LinkedIn
type: LinkedIn
- url: https://twitter.com/viamrobotics
name: Viam on X
type: Twitter
- url: https://www.youtube.com/@ViamRobotics
name: Viam on YouTube
type: YouTube
- url: plans/viam-plans-pricing.yml
type: Plans
- url: rate-limits/viam-rate-limits.yml
type: RateLimits
- url: finops/viam-finops.yml
type: FinOps
- type: Features
data:
- viam-server (RDK) — Go-based runtime for Linux SBCs and servers; the per-machine control plane
- micro-rdk — Rust-based viam-server variant for ESP32-class microcontrollers
- viam-agent — managed system service that installs, configures, and updates viam-server on devices
- viam.app — multi-tenant cloud for fleet management, configuration, and remote control
- gRPC-first API contract shared by every official SDK (Python, Go, Rust, TypeScript, C++, Java, .NET, Flutter)
- Modular registry — pluggable components and services published as OCI images, npm modules, or PyPI packages
- >-
Component APIs covering arm, base, board, button, camera, encoder, gantry, gripper, input controller, motor,
movement sensor, pose tracker, power sensor, sensor, servo, switch, audio in/out
- >-
Service APIs for motion planning, vision, SLAM, navigation, data management, ML model inference, sensors
aggregation, world state, discovery, and generic services
- Data Management Service captures data at the edge and syncs to the Viam cloud (tabular and binary)
- Data Client API with SQL and MongoDB-MQL query interfaces over captured data
- Data Pipelines for scheduled MQL aggregation into the Viam hot data store
- ML Training cloud jobs (built-in TFLite trainers + custom containerized trainers)
- ML Model Service for edge inference (TFLite, ONNX, Triton)
- Cloud SLAM mapping sessions and Cartographer/ORB-SLAM3 integrations
- Fleet-level fragments, packages, and machine configuration with OTA rollout
- Provisioning over Bluetooth or hotspot via viam-agent and Flutter provisioning widgets
- OAuth apps, API keys, location secrets, RBAC, and SCIM for organization administration
- Billing API supporting custom per-machine, per-data, per-API-call invoicing for end-customers
- Modular registry build pipeline via GitHub Action (multi-arch builds)
- Hardware abstraction enabling write-once / run-on-many-platforms control code
- Free tier with $5/month in included cloud usage; usage-based metering for storage, compute, and egress
- Founded 2020 by Eliot Horowitz (MongoDB co-founder and former CTO)
sources:
- https://www.viam.com
- https://docs.viam.com
- https://github.com/viamrobotics
- https://github.com/viamrobotics/api
- https://www.viam.com/pricing
updated: '2026-05-25'
created: '2026-05-25'
modified: '2026-05-25'
position: Consuming
description: >-
Viam is a robotics and edge AI platform founded in 2020 by Eliot Horowitz (MongoDB co-founder and former CTO). It
pairs viam-server — a gRPC-based runtime that runs on Linux single-board computers (RDK) and ESP32-class
microcontrollers (micro-rdk) — with viam.app, a multi-tenant cloud for fleet management, data capture, ML training,
and remote operations. Every hardware component (motors, cameras, sensors, arms) and every machine-level service
(motion, vision, SLAM, ML inference, navigation) is exposed through a uniform gRPC contract defined in
viamrobotics/api with first-class SDKs for Python, Go, Rust, TypeScript, C++, Java, .NET, and Flutter. A modular
registry lets vendors and community contributors publish new hardware drivers, vision models, and services as OCI
images or packages that any Viam machine can pull at config time, making physical-world control feel like building a
microservice.
maintainers:
- FN: Kin Lane
email: info@apievangelist.com
X: apievangelist
url: https://apievangelist.com
specificationVersion: '0.16'