Retrieve a webhook endpoint
The endpoint without its signing secret, which is only returned when created or rolled.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe webhook endpoint's id.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
"2026-10-10"The webhook endpoint.
application/json- response
object*"webhook_endpoint""webhook_endpoint"id*stringurl*stringdescription*string|nullevent_types*array<string>Event types delivered to this endpoint. An empty array means every event type, including ones added later.
api_version*stringThe API version (Coss-Version) events are rendered in for this endpoint. Each event carries it as api_version.
enabled*booleanA disabled endpoint receives nothing until it is enabled again.
previous_secret_expires_at*|After a secret roll, deliveries are also signed with the previous secret until this time. null when only the current secret signs.
date-timecreated_at*stringdate-timeupdated_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.webhookEndpoints.get("whep_01k7c8m4q2f3e9v6t5r1n0p8yz");{ "object": "webhook_endpoint", "id": "whep_01k7c8m4q2f3e9v6t5r1n0p8yz", "url": "https://example.com/webhooks/coss", "description": "Production receiver", "event_types": [ "email.delivered", "email.bounced" ], "api_version": "2026-10-10", "enabled": true, "previous_secret_expires_at": null, "created_at": "2026-01-15T09:30:00.000Z", "updated_at": "2026-01-15T09:30:00.000Z"}Retrieve a delivery GET
One delivery of the endpoint, with every HTTP attempt and the payload as sent.
List an endpoint's deliveries GET
The endpoint's delivery log, newest first: one delivery per event sent to it, with every HTTP attempt and the payload as sent. Pass the last `id` as `after` to get the next page while `has_more` is true. Deleting the endpoint deletes its log.