Reports Agent and local source health.
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/heartbeat"), Headers = { { "X-Moltaro-File-Protection-Agent", "<X-Moltaro-File-Protection-Agent>" }, }, Content = new StringContent("{ \"AgentVersion\": \"example\", \"OperatingSystem\": 0, \"ObservedAtUtc\": \"2026-04-15T12:00:00Z\", \"Sources\": [ { \"SourceId\": \"example\", \"LogicalName\": \"example\", \"Kind\": 0, \"Tags\": [ \"example\" ], \"IsMapped\": true, \"ObservedSizeBytes\": 1, \"LastWriteAtUtc\": \"2026-04-15T12:00:00Z\", \"AssignmentRevision\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"KindDeclarationRevision\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\" } ], \"ProtocolVersion\": \"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/heartbeat';const options = { method: 'POST', headers: { 'X-Moltaro-File-Protection-Agent': '<X-Moltaro-File-Protection-Agent>', 'Content-Type': 'application/json' }, body: '{"AgentVersion":"example","OperatingSystem":0,"ObservedAtUtc":"2026-04-15T12:00:00Z","Sources":[{"SourceId":"example","LogicalName":"example","Kind":0,"Tags":["example"],"IsMapped":true,"ObservedSizeBytes":1,"LastWriteAtUtc":"2026-04-15T12:00:00Z","AssignmentRevision":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","KindDeclarationRevision":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}],"ProtocolVersion":"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/heartbeat \ --header 'Content-Type: application/json' \ --header 'X-Moltaro-File-Protection-Agent: <X-Moltaro-File-Protection-Agent>' \ --data '{ "AgentVersion": "example", "OperatingSystem": 0, "ObservedAtUtc": "2026-04-15T12:00:00Z", "Sources": [ { "SourceId": "example", "LogicalName": "example", "Kind": 0, "Tags": [ "example" ], "IsMapped": true, "ObservedSizeBytes": 1, "LastWriteAtUtc": "2026-04-15T12:00:00Z", "AssignmentRevision": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "KindDeclarationRevision": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ], "ProtocolVersion": "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”Request Body
Section titled “Request Body”Periodic Agent health and mapping report.
object
Operating systems supported by the universal File Protection tools.
Safe logical metadata reported for one locally mapped source.
object
Source selector interpreted only by the local Agent.
Periodic Agent health and mapping report.
object
Operating systems supported by the universal File Protection tools.
Safe logical metadata reported for one locally mapped source.
object
Source selector interpreted only by the local Agent.
Periodic Agent health and mapping report.
object
Operating systems supported by the universal File Protection tools.
Safe logical metadata reported for one locally mapped source.
object
Source selector interpreted only by the local Agent.
Responses
Section titled “Responses”OK
object
Heartbeat acknowledgement and current suspension state.
object
One current assignment fence and the confirmed selector; no physical path is transported.
object
Source selector interpreted only by the local Agent.
object
object
object
object
Example
{ "Data": { "Sources": [ { "ConfirmedKind": 0 } ] }, "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}