Metric

HTTP request metric

What an HTTP request metric sends to your endpoint, and the answer it expects. Roark sends it once per call the metric grades, live or simulated, after the call is analysed.

With no body template, Roark POSTs the payload below. A body template fills {{path}} placeholders from the same payload, for example {{call.properties.cardId}} or {{simulation.variables.newPin}}. A placeholder the call has no value for (a run variable on a live call) skips the request and records the metric as missing data.

Answer with HTTP 200 and {"passed": true | false, "reason": "..."} within 30 seconds. Timeouts, connection failures and 5xx responses are retried twice with the same requestId, so drop a request you have already answered. Any other answer records an error on the metric, never a fail. Redirects are not followed.

postWebhookHttpRequestMetric

Payload

version'1.0' required

Payload schema version

requestIdstring uuid required

Unique per request. Quote it when reporting a problem.

Example payload

{
  "call": {
    "callDirection": "INBOUND",
    "startedAt": "2026-10-26T14:00:02.000Z",
    "properties": {
      "cardId": "card_123"
    }
  },
  "simulation": {
    "variables": {
      "cardNumber": "4111111111111111",
      "newPin": "4821"
    }
  }
}

Response

The verdict for this call.

passedboolean required

Whether the call did what it should

reasonstring

Shown next to the result in Roark. Longer than 1000 characters is cut.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.