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.