Signals API - Clients

Send a test event

  • Sandbox: available
  • Staging: available
  • Production: unknown
POST
/v1/signals/api/subscriber/{id}/webhook/test

Sends a signed webhook.test event ({ event, subscriber, sentAt }) now, with every header a real delivery carries, and answers what the receiver did. It is not queued, retried or listed, and it works on a disabled endpoint, so a receiver can be checked before it is enabled.

Through ovok

  • Who can call it: Manager apps, and users whose access policy grants the capabilities.
  • Capabilities, all required: signals_webhooks:update. Project admins have every capability; client applications get no admin bypass.
  • It can reach any patient of your project without naming one, so it is for callers that reach every patient: project admins, manager or submitter apps, and anyone whose Patient access has no criteria.

Authorization

headerAuthorizationBearer <JWT>

Path Parameters

id*string

The subscriber's Signals id or its clientId.

Response Body

The attempt: whether it was delivered, and the answer.

application/json
  1. response
delivered*boolean
statusCode*number
durationMs*number
error*string
responseSnippet*string

The first 2 KB of the answer.

Example Request
curl -X POST 'https://api.sandbox.ovok.com/v1/signals/api/subscriber/string/webhook/test'
Example Response
{  "delivered": true,  "statusCode": 0,  "durationMs": 0,  "error": "string",  "responseSnippet": "string"}

Disable the webhook endpoint POST

Stops deliveries. Queued events and new ones are held, not dropped, for a redeliver once it is enabled again. Disabling a disabled endpoint keeps its first reason. ### Through ovok - **Who can call it:** Manager apps, and users whose access policy grants the capabilities. - **Capabilities, all required:** `signals_webhooks:update`. Project admins have every capability; client applications get no admin bypass. - It can reach any patient of your project without naming one, so it is for callers that reach every patient: project admins, manager or submitter apps, and anyone whose Patient access has no criteria.

Rotate the webhook signing secret POST

Mints a new Standard Webhooks signing secret (`whsec_` and 32 random bytes) and returns it this once. Every delivery carries `webhook-id` and `webhook-timestamp`; once the subscriber has a secret it also carries `webhook-signature`, so a receiver verifies with the Standard Webhooks library. The secret it replaces keeps signing until `previousSecretExpiresAt` (24 h), so `webhook-signature` holds both and the receiver switches with no gap. Each rotation keeps only the secret it replaces, so rotate again only once the receiver uses the new one. The first call mints the subscriber's first secret. A MANAGER rotates any subscriber of its tenant; a SUBSCRIBER only its own. ### Through ovok - **Who can call it:** Manager apps, and users whose access policy grants the capabilities. - **Capabilities, all required:** `signals_webhooks:update`. Project admins have every capability; client applications get no admin bypass. - It can reach any patient of your project without naming one, so it is for callers that reach every patient: project admins, manager or submitter apps, and anyone whose Patient access has no criteria.