Publishes a terminal Kopia snapshot result.
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://example.com/api/workspace/file-protection/agent/v1/commands/example:complete"), Headers = { { "X-Moltaro-File-Protection-Agent", "<X-Moltaro-File-Protection-Agent>" }, }, Content = new StringContent("{ \"LeaseToken\": \"example\", \"Succeeded\": true, \"SnapshotId\": \"example\", \"RepositoryFingerprint\": \"example\", \"SnapshotDigestSha256\": \"example\", \"LogicalSizeBytes\": 1, \"SnapshotCreatedAtUtc\": \"2026-04-15T12:00:00Z\", \"Items\": [ { \"LogicalPath\": \"example\", \"IsDirectory\": true, \"SizeBytes\": 1, \"Sha256\": \"example\", \"RepositorySnapshot\": { \"RepositoryId\": \"example\", \"SnapshotId\": \"example\", \"RepositoryFingerprint\": \"example\" } } ], \"SafeErrorCode\": \"example\", \"SourceTree\": { \"SourceId\": \"example\", \"RepositoryBindingRevision\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"RepositoryId\": \"example\", \"RepositoryFingerprint\": \"example\", \"SnapshotId\": \"example\", \"RootKind\": 0, \"RootPath\": \"example\", \"CaptureStartedAtUtc\": \"2026-04-15T12:00:00Z\", \"CaptureCompletedAtUtc\": \"2026-04-15T12:00:00Z\" }, \"UnchangedRecoveryPointId\": \"example\" }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://example.com/api/workspace/file-protection/agent/v1/commands/example:complete';const options = { method: 'POST', headers: { 'X-Moltaro-File-Protection-Agent': '<X-Moltaro-File-Protection-Agent>', 'Content-Type': 'application/json' }, body: '{"LeaseToken":"example","Succeeded":true,"SnapshotId":"example","RepositoryFingerprint":"example","SnapshotDigestSha256":"example","LogicalSizeBytes":1,"SnapshotCreatedAtUtc":"2026-04-15T12:00:00Z","Items":[{"LogicalPath":"example","IsDirectory":true,"SizeBytes":1,"Sha256":"example","RepositorySnapshot":{"RepositoryId":"example","SnapshotId":"example","RepositoryFingerprint":"example"}}],"SafeErrorCode":"example","SourceTree":{"SourceId":"example","RepositoryBindingRevision":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","RepositoryId":"example","RepositoryFingerprint":"example","SnapshotId":"example","RootKind":0,"RootPath":"example","CaptureStartedAtUtc":"2026-04-15T12:00:00Z","CaptureCompletedAtUtc":"2026-04-15T12:00:00Z"},"UnchangedRecoveryPointId":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/workspace/file-protection/agent/v1/commands/example:complete \ --header 'Content-Type: application/json' \ --header 'X-Moltaro-File-Protection-Agent: <X-Moltaro-File-Protection-Agent>' \ --data '{ "LeaseToken": "example", "Succeeded": true, "SnapshotId": "example", "RepositoryFingerprint": "example", "SnapshotDigestSha256": "example", "LogicalSizeBytes": 1, "SnapshotCreatedAtUtc": "2026-04-15T12:00:00Z", "Items": [ { "LogicalPath": "example", "IsDirectory": true, "SizeBytes": 1, "Sha256": "example", "RepositorySnapshot": { "RepositoryId": "example", "SnapshotId": "example", "RepositoryFingerprint": "example" } } ], "SafeErrorCode": "example", "SourceTree": { "SourceId": "example", "RepositoryBindingRevision": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "RepositoryId": "example", "RepositoryFingerprint": "example", "SnapshotId": "example", "RootKind": 0, "RootPath": "example", "CaptureStartedAtUtc": "2026-04-15T12:00:00Z", "CaptureCompletedAtUtc": "2026-04-15T12:00:00Z" }, "UnchangedRecoveryPointId": "example" }'Requires TLS at the API connection. A workspace bearer token does not authenticate an Agent.
Send the enrolled device credential in the X-Moltaro-File-Protection-Agent header. Revoked or invalid credentials are rejected.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Body
Section titled “Request Body”Publishes the verified outcome of a Kopia snapshot.
object
Safe logical recovery metadata; no Kopia object/chunk keys are exposed.
object
Verified single-file snapshot identity. This metadata is internal to the Agent protocol.
object
One shared tree identity, including an empty root; logical items never carry its password.
object
The type of the Kopia snapshot root, not the Source selector.
Existing baseline whose identical bytes were observed; no snapshot was uploaded.
Publishes the verified outcome of a Kopia snapshot.
object
Safe logical recovery metadata; no Kopia object/chunk keys are exposed.
object
Verified single-file snapshot identity. This metadata is internal to the Agent protocol.
object
One shared tree identity, including an empty root; logical items never carry its password.
object
The type of the Kopia snapshot root, not the Source selector.
Existing baseline whose identical bytes were observed; no snapshot was uploaded.
Publishes the verified outcome of a Kopia snapshot.
object
Safe logical recovery metadata; no Kopia object/chunk keys are exposed.
object
Verified single-file snapshot identity. This metadata is internal to the Agent protocol.
object
One shared tree identity, including an empty root; logical items never carry its password.
object
The type of the Kopia snapshot root, not the Source selector.
Existing baseline whose identical bytes were observed; no snapshot was uploaded.
Responses
Section titled “Responses”OK
object
Outcome accepted by OMS after snapshot identity verification.
object
Durable state of one manual protection run.
object
object
object
object
Example
{ "Data": { "State": 0 }, "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}