Skip to content

Webhooks

Terminal window
npm install @reminix/sdk
import { createClient } from "@reminix/sdk";
const reminix = createClient(); // reads REMINIX_API_KEY

GET /v1/workspace/webhook-endpoints

The workspace’s outgoing webhook endpoints, newest first, without their signing secrets.

await reminix.workspace.webhookEndpoints.list();
More about this endpoint

A workspace has at most 10, so the list is a single page (nextCursor is null).

POST /v1/workspace/webhook-endpoints

Registers an https URL to receive the workspace’s events, signed Svix-compatibly.

await reminix.workspace.webhookEndpoints.create({
url: "https://example.com/hooks",
});
FieldDescription
urlstring, requiredThe https URL that receives the events.
descriptionstringA note for people managing the endpoint.
eventTypesarrayOnly these event types (see event-types); omit for every event.
More about this endpoint

The response carries the endpoint’s signing secret (whsec_…) — shown ONCE, store it to verify deliveries. Private and non-https hosts are refused; at most 10 per workspace.

GET /v1/workspace/webhook-endpoints/{endpointId}

One endpoint, without its signing secret: whether it is enabled, its consecutive failures and its last delivery status.

await reminix.workspace.webhookEndpoints.get("we_3f0c…");
FieldDescription
endpointIdstring, path, required

DELETE /v1/workspace/webhook-endpoints/{endpointId}

Stops all deliveries to the endpoint and deletes it with its secret.

await reminix.workspace.webhookEndpoints.delete("we_3f0c…");
FieldDescription
endpointIdstring, path, required
More about this endpoint

Its delivery history goes with it.

POST /v1/workspace/webhook-endpoints/{endpointId}/enable

Resumes deliveries to an endpoint that was disabled after repeated failures, keeping its signing secret; the failure count resets.

await reminix.workspace.webhookEndpoints.enable("we_3f0c…");
FieldDescription
endpointIdstring, path, required

POST /v1/workspace/webhook-endpoints/{endpointId}/test

Sends a ping event to the endpoint, signed like every delivery — the way to check an integration verifies and accepts deliveries.

await reminix.workspace.webhookEndpoints.test("we_3f0c…");
FieldDescription
endpointIdstring, path, required

GET /v1/workspace/webhook-endpoints/{endpointId}/deliveries

Delivery history for one endpoint, newest first: each event’s status, attempts and last HTTP status (payloads are not returned).

await reminix.workspace.webhookDeliveries.list("we_3f0c…");
FieldDescription
endpointIdstring, path, required
limitnumber, queryItems per page, 1–100 (default 25).
cursorstring, queryOpaque token from a previous page's nextCursor.
More about this endpoint

Kept for 30 days. Paginate with the opaque nextCursor.

POST /v1/workspace/webhook-endpoints/{endpointId}/deliveries/{deliveryId}/redeliver

Sends a recorded delivery’s event again, as a new delivery with its own history entry; the event id is unchanged, so receivers can deduplicate.

await reminix.workspace.webhookDeliveries.redeliver("we_3f0c…", "del_8a1b…");
FieldDescription
endpointIdstring, path, required
deliveryIdstring, path, required
More about this endpoint

The endpoint must be enabled.

GET /v1/workspace/event-types

Every workspace event a webhook endpoint can subscribe to, with what it means.

await reminix.workspace.eventTypes.list();
More about this endpoint

Pass some as eventTypes when adding an endpoint; an endpoint without a list receives them all.