List webhook endpoints

Beta

The caller’s workspace’s registered webhook endpoints. Cursor-paginated: omit cursor for the first page; walk pages while has_more is true (default page size 50, max 200). The signing secret is never returned here — it is shown only when an endpoint is created or its secret is rotated. Filter by delivery scope with project_id.

Authentication

AuthorizationBearer

Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.

Headers

Speechify-VersionstringOptional

Query parameters

cursorstringOptional
Opaque pagination cursor from a previous response.
limitintegerOptional1-200Defaults to 50

Max items per page (default 50, max 200).

project_idstringOptional
Filter endpoints by project scope: omit for everything the caller may see, pass the literal `shared` for workspace-wide endpoints only, or a `proj_...` id for endpoints scoped to that project. Endpoints have no Default project - a null `project_id` means workspace-wide, so the literal here is `shared`, never `default`. Returns 404 project_not_found for a malformed id and for any project outside your reach: a project-pinned API key or service-account key reaches only its pinned project, and a member holding project grants reaches only the granted projects. That 404 is the same in every case and does not reveal whether such a project exists - outside your reach a project is answered as nonexistent, never as forbidden. `shared` is always inside your reach. Inside it, a well-formed id that matches nothing yields an empty page.

Response headers

Speechify-Request-IdstringOptional
Unique identifier for this request, present on every response (2xx and non-2xx alike). If the caller sends a `Speechify-Request-Id` request header the server echoes it back (sanitized and length-capped) so one logical request can be traced end-to-end; otherwise the server generates a fresh value. Log it on every response and quote it in support requests - it is the stable handle that ties your observation to Speechify's server-side logs, and it matches the `request_id` field in the error envelope. The legacy alias `X-Request-ID` carries the same value and is still accepted on requests, until 2027-07-24. Prefer the un-prefixed name (RFC 6648).

Response

The workspace's webhook endpoints.
next_cursorstring or null

Opaque keyset cursor for the next page. Pass back as the cursor request parameter. null when the caller has reached the end of the list (has_more is also false in that case).

has_moreboolean
True when more rows exist beyond this page.
endpointslist of objects

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error