API Reference

Webhooks

Manage webhook endpoints with the Jump EHR Webhooks API. Create, update, delete, and test webhook subscriptions.

The Webhooks API lets you manage webhook endpoints that receive real-time event notifications from Jump EHR. For an overview of webhook concepts, event types, and signature verification, see the Webhooks guide.

The signing secret (whsec_...) is returned only in the creation response. Store it securely — it cannot be retrieved later.

GET
/webhooks

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Query Parameters

limit?integer

Maximum number of records to return (1–100, default 20)

Range1 <= value <= 100
Default20
offset?integer

Number of records to skip (default 0)

Range0 <= value
Default0
is_active?boolean

Response Body

application/json

curl -X GET "https://example.com/webhooks"
{  "data": [    {      "id": "string",      "name": "string",      "url": "string",      "events": [        "patient.created"      ],      "is_active": true,      "created_at": "string",      "updated_at": "string"    }  ],  "meta": {    "limit": 20,    "next_offset": 1,    "has_more": true,    "request_id": "req_abc123"  }}

Try-it is disabled for POST /webhooks

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Header Parameters

Idempotency-Key?string

Optional UUID for request deduplication. Same key + same body returns the cached response. Same key + different body returns 409 CONFLICT. Keys are scoped to your organisation and endpoint, and expire after 24 hours.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/webhooks" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com",    "events": [      "patient.created"    ]  }'
{  "data": null,  "meta": {    "request_id": "req_abc123"  }}
GET
/webhooks/{id}

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/webhooks/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "data": {    "id": "string",    "name": "string",    "url": "string",    "events": [      "patient.created"    ],    "is_active": true,    "created_at": "string",    "updated_at": "string"  },  "meta": {    "request_id": "req_abc123"  }}

Try-it is disabled for PATCH /webhooks/{id}

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Partial update — only supplied fields are changed.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/webhooks/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "id": "string",    "name": "string",    "url": "string",    "events": [      "patient.created"    ],    "is_active": true,    "created_at": "string",    "updated_at": "string"  },  "meta": {    "request_id": "req_abc123"  }}

Try-it is disabled for DELETE /webhooks/{id}

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

application/json

curl -X DELETE "https://example.com/webhooks/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "data": {    "id": "string",    "deleted": true  },  "meta": {    "request_id": "req_abc123"  }}

Try-it is disabled for POST /webhooks/{id}/test

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

application/json

curl -X POST "https://example.com/webhooks/497f6eca-6276-4993-bfeb-53cbbbba6f08/test"
{  "data": {    "event_id": "string",    "endpoint_id": "string",    "status": "queued",    "message": "string"  },  "meta": {    "request_id": "req_abc123"  }}