Pulse
Make trust telemetry, risk scores, and latency aggregated and understandable.
When to use it
Summarize pipeline health in your own monitoring service or downstream in a published workflow graph.
Supported Operations & Data Contracts
Call this module with a key scoped to 'pulse'. Provide the operation name and matching input dictionary.
observe · Aggregate Scores or Query Historical TelemetryPOST /api/v1/modules/pulse
Computes trust score averages and latency metrics across transactions, or retrieves historical telemetry recorded under this integration.
Input Parameters
| Field | Type | Requirement | Description |
|---|---|---|---|
samples | number[] | Optional | Array of risk/authenticity scores (0-100) for stateless aggregation. |
latencies | number[] | Optional | Array of transaction latencies in milliseconds (0-300,000 ms). |
limit | number | Optional | When samples are omitted, max historical observations to retrieve (1-1000, default 100). |
Output Fields
| Field | Type | Description |
|---|---|---|
count | number | Total number of samples evaluated. |
latest | number | null | Most recent score in the batch. |
mean | number | null | Average trust/authenticity score. |
meanLatencyMs | number | null | Average processing latency across calls. |
source | string | Labelled 'caller-supplied' for stateless runs. |
Example Request Payload
JSON Request BodyContent-Type: application/json
{
"operation": "observe",
"input": {
"samples": [
88,
94,
91
],
"latencies": [
120,
145,
130
]
}
}Example Response
JSON Response (HTTP 200)Cache-Control: no-store
{
"module": "pulse",
"output": {
"count": 3,
"latest": 91,
"mean": 91,
"meanLatencyMs": 131.67,
"source": "caller-supplied"
}
}Configuration in Graph Builder
When adding Pulse into a visual component or graph workflow, configure its node runtime settings in the builder inspector:
Use Pulse as a telemetry collector. Configure node runtime with 'observe'. Use multi-source bindings with select: 'all' to gather scores from multiple upstream verification or policy nodes into 'input.samples'.
Direct API Code Examples
Invoke this module directly from your backend services without passing through the visual builder:
TypeScript / Node.js (Fetch)index.ts
const response = await fetch("https://api.sherlock.dev/api/v1/modules/pulse", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.SHERLOCK_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
operation: "observe",
input: { samples: [90, 85, 95], latencies: [150, 180, 140] }
}),
});
const { output } = await response.json();
console.log("Mean Trust:", output.mean, "Latency:", output.meanLatencyMs);cURL / Bashterminal
curl -X POST "$SHERLOCK_BASE_URL/api/v1/modules/pulse" \
-H "Authorization: Bearer $SHERLOCK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"observe","input":{"samples":[85,92,88],"latencies":[140,175,160]}}'Current Boundaries & Guarantees
Stored observations contain module Voiceprint and Policy results attributed to this owner. Pulse does not calculate authorization rules or analyze speech patterns.