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 Service running on every machine.

Viam Data Sync API is one of 14 APIs that Viam publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Robotics, Data, Sync, and Capture. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

viam-data-sync-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Viam Data Sync API
  description: |
    REST/JSON transcoding of the Viam DataSyncService gRPC API. The ingest plane used by
    viam-server's Data Management Service to upload captured tabular data, binary data,
    and arbitrary files to the Viam cloud.

    Canonical contract: https://github.com/viamrobotics/api/blob/main/proto/viam/app/datasync/v1/data_sync.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: Upload
    description: Streaming and one-shot uploads of captured data.
paths:
  /viam.app.datasync.v1.DataSyncService/DataCaptureUpload:
    post:
      summary: Viam Data Capture Upload
      description: One-shot upload of a batch of tabular or binary data captured during a method call.
      operationId: dataCaptureUpload
      tags: [Upload]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [metadata, sensor_contents]
              properties:
                metadata: { type: object }
                sensor_contents: { type: array, items: { type: object } }
      responses:
        '200':
          description: Successful response.
  /viam.app.datasync.v1.DataSyncService/FileUpload:
    post:
      summary: Viam File Upload
      description: Upload an arbitrary file (e.g., diagnostics) chunked via client streaming.
      operationId: fileUpload
      tags: [Upload]
      requestBody:
        required: true
        content:
          application/json:
            schema: { type: object }
      responses:
        '200':
          description: Successful response.
  /viam.app.datasync.v1.DataSyncService/StreamingDataCaptureUpload:
    post:
      summary: Viam Streaming Data Capture Upload
      description: Stream large binary capture (e.g., long-running video) over a single upload session.
      operationId: streamingDataCaptureUpload
      tags: [Upload]
      requestBody:
        required: true
        content:
          application/json:
            schema: { type: object }
      responses:
        '200':
          description: Successful response.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: key
      description: Viam API key.