Previous
Schedule jobs
Attach custom metadata as a JSON object to any level of your fleet hierarchy: machine parts, machines, locations, or organizations. Use metadata to store deployment details, maintenance notes, device serial numbers, or any other data you need to track alongside your machines.
Organization-level metadata is available through the SDK and CLI but not through the Viam app UI.
Metadata is stored as an arbitrary JSON object with no required schema. You define the structure.
Example:
{
"serial_number": "SN-2026-0042",
"deployment_date": "2026-03-15",
"facility": "Building A, Line 3",
"firmware_batch": "v2.1.0-rc3"
}
Use the fleet management API to read and update metadata programmatically at each level:
| Level | Get method | Update method |
|---|---|---|
| Machine part | GetRobotPartMetadata | UpdateRobotPartMetadata |
| Machine | GetRobotMetadata | UpdateRobotMetadata |
| Location | GetLocationMetadata | UpdateLocationMetadata |
| Organization | GetOrganizationMetadata | UpdateOrganizationMetadata |
Read metadata for a machine and its parts:
viam metadata read --machine-id=<machine-id>
The CLI metadata read command aggregates metadata across levels. Pass --org-id, --location-id, --machine-id, or --part-id to read specific levels.
After adding metadata:
viam metadata read --machine-id=<machine-id>.Get method to retrieve and confirm the metadata.Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!