Signals API - Events

List a delivery's attempts

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/signals/api/events/{id}/attempts

Each POST made for it, oldest first: when, how long, the status code or the error, and the first 2 KB of the answer.

Through ovok

  • Who can call it: Manager apps, and users whose access policy grants the capabilities.
  • Capabilities, all required: signals_events:read. 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 delivery's id, an item's id in GET /api/events.

Response Body

The attempts.

application/json
  1. response
items*array<>

Oldest first, at most 100.

Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/signals/api/events/string/attempts'
Example Response
{  "items": [    {      "attemptedAt": "2019-08-24T14:15:22Z",      "durationMs": 0,      "delivered": true,      "statusCode": 0,      "error": "string",      "responseSnippet": "string"    }  ]}

List webhook events GET

Every event addressed to the caller, oldest first and keyset paged by `cursor`, each with its delivery status and payload: expired, failed and held ones too. An event is listed once it is two minutes old, so a page never moves past one a slower transaction has yet to commit. Filter by `types`, `status`, `patientId`, or (for a MANAGER) `subscriberId`. ### Through ovok - **Who can call it:** Manager apps, and users whose access policy grants the capabilities. - **Capabilities, all required:** `signals_events:read`. Project admins have every capability; client applications get no admin bypass. - If your access covers only some patients (anyone but project admins, manager or submitter apps, and anyone whose Patient access has no criteria), name them with `patientId`, each one you can read, at most 100. Signals then pages over just those patients, so pages and totals stay true. A patient is named by its Signals id, or by its Medplum Patient id where Signals takes a `refId`; ovok asks Signals which patient a Signals id is.

Redeliver events POST

Queues the oldest 1 000 deliveries in `status` (default `failed`) queued since `since` to be sent again, each with a fresh retry ladder: the same `webhook-id`, so receivers dedupe, and a new `webhook-timestamp`. An alert is sent whatever its age. Deliveries to a disabled endpoint, and ones being sent right now, are skipped. While it answers `queued: 1000`, call it again for the next ones. ### 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.