Viam website screenshot

Viam

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.

14 APIs 22 Features
RoboticsEdge AIFleet ManagementComputer VisionMachine LearningIoTEmbeddedgRPC

APIs

Viam Fleet Management API

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...

Viam Machine Management API

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...

Viam Data Client API

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...

Viam Data Sync API

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...

Viam ML Training API

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...

Viam ML Inference API

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 ...

Viam Billing API

Retrieve current-month usage, billing tier metadata, invoice summaries, invoice PDFs, and organization billing information. Supports custom billing tiers and the location-level ...

Viam Motion Service API

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...

Viam Vision Service API

Run object detection, image classification, and 3D segmentation against a configured camera component. Supports GetDetectionsFromCamera, GetClassificationsFromCamera, GetObjectP...

Viam SLAM Service API

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...

Viam ML Model Service API

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.

Viam Component APIs

Hardware abstraction for every supported component class — arm, audio in/out, base, board, button, camera, encoder, gantry, generic, gripper, input controller, motor, movement s...

Viam Data Pipelines API

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 ...

Viam Provisioning API

Bootstrap a smart machine onto Wi-Fi and into the viam.app cloud over Bluetooth or hotspot. SetNetworkCredentials, SetSmartMachineCredentials, GetNetworkList, GetSmartMachineSta...

Collections

Arazzo Workflows

Viam Add a Machine With a Part

Create a machine in an existing location and add a viam-server part to it.

ARAZZO

Viam Arm Move and Verify

Read an arm's pose, move it to a target, verify joints, then stop it.

ARAZZO

Viam Bill a Customer Location

Reassign a location's billing org, read usage, and charge the customer.

ARAZZO

Viam Curate a Training Dataset

Find binary data by filter, tag the matches, and add them to a dataset.

ARAZZO

Viam Data Pipeline Lifecycle

Create a scheduled MQL pipeline, resolve it, enable it, and list its runs.

ARAZZO

Viam Roll Out a Configuration Fragment

Create a reusable config fragment and restart a machine part to adopt it.

ARAZZO

Viam Machine Health Check

Inspect a live machine's status, resources, version, and cloud identity.

ARAZZO

Viam Onboard an Organization Member

Verify an organization, invite a new member, and confirm the pending invite.

ARAZZO

Viam Provision a New Fleet

Stand up a brand-new organization, location, and machine in one pass.

ARAZZO

Viam Provision a Smart Machine

Bootstrap a fresh device onto Wi-Fi and into the Viam cloud over the hotspot.

ARAZZO

Viam Saved Query Lifecycle

Create a saved SQL query, resolve it from the list, read it, and update it.

ARAZZO

Viam Train and Monitor an ML Model

Submit a TFLite training job, poll its status, and branch to logs or cancel.

ARAZZO

Pricing Plans

Viam Plans Pricing

4 plans

PLANS

Rate Limits

Viam Rate Limits

0 limits

RATE LIMITS

FinOps

Viam Finops

FINOPS

Features

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)

Semantic Vocabularies

Viam Context

35 classes · 7 properties

JSON-LD

API Governance Rules

Viam API Rules

4 rules · 1 errors 3 warnings

SPECTRAL

Example Payloads

Viam Camera Images Example

2 fields

EXAMPLE

Viam List Machines Example

2 fields

EXAMPLE

Viam Motor Go For Example

2 fields

EXAMPLE

Viam Tabular By Sql Example

2 fields

EXAMPLE

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
📝
Signup
Signup
🔗
Sandbox
Sandbox
💰
Pricing
Pricing
📄
ChangeLog
ChangeLog
🟢
StatusPage
StatusPage
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
🔗
Protobuf
Protobuf
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
🔗
Documentation
Documentation
🔧
Tools
Tools
🔧
Tools
Tools
🌐
Portal
Portal
🔗
Forums
Forums
📰
Blog
Blog
📰
Blog
Blog
🔗
CaseStudies
CaseStudies
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
TrustCenter
TrustCenter
💬
Support
Support
🔗
LinkedIn
LinkedIn
🔗
Twitter
Twitter
👥
YouTube
YouTube
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Viam Vision Service API
  version: '2026.05'
request:
  auth:
    type: apikey
    key: key
    value: '{{key}}'
    placement: header
items:
- info:
    name: Vision
    type: folder
  items:
  - info:
      name: Viam Get Detections From Camera
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetDetectionsFromCamera
      body:
        type: json
        data: '{}'
    docs: Run object detection against a configured camera component.
  - info:
      name: Viam Get Detections
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetDetections
      body:
        type: json
        data: '{}'
    docs: Run object detection against a provided image.
  - info:
      name: Viam Get Classifications From Camera
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetClassificationsFromCamera
      body:
        type: json
        data: '{}'
    docs: Run image classification against a configured camera component.
  - info:
      name: Viam Get Classifications
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetClassifications
      body:
        type: json
        data: '{}'
    docs: Run image classification against a provided image.
  - info:
      name: Viam Get Object Point Clouds
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetObjectPointClouds
      body:
        type: json
        data: '{}'
    docs: Segment 3D point clouds from a camera component into discrete objects.
  - info:
      name: Viam Capture All From Camera
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/CaptureAllFromCamera
      body:
        type: json
        data: '{}'
    docs: Return image, detections, classifications, and point clouds in a single call.
  - info:
      name: Viam Get Properties
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/GetProperties
      body:
        type: json
        data: '{}'
    docs: Retrieve properties of the vision service.
  - info:
      name: Viam Do Command
      type: http
    http:
      method: POST
      url: https://{machine_address}/viam.service.vision.v1.VisionService/DoCommand
      body:
        type: json
        data: '{}'
    docs: Model-specific custom commands.
bundled: true