---
title: "Poll recent webhook events"
method: GET
path: "/v1/webhook-events"
tags: ["Webhook Events"]
---

# Poll recent webhook events

`GET /v1/webhook-events`

## Request

- Base URL: `https://api.subscriby.net`
- URL: `https://api.subscriby.net/v1/webhook-events`
- Auth: HTTP bearer

```bash
curl "https://api.subscriby.net/v1/webhook-events?type=subscription.created&limit=3" \
  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"
```

The most recent deliveries of one event type, newest first, as the envelopes the endpoints received. `limit` defaults to 3 and is capped at 10; `project_id` restricts to deliveries whose endpoint is scoped to that project.

`api_version` is the payload-envelope stamp the dispatcher wrote at delivery time; see [versioning](https://docs.subscriby.net/api/v1/versioning-and-deprecation). Results are ordered by `created_at` descending. Only deliveries against endpoints owned by the token's team are returned; other tenants' events are never surfaced.

`data` is empty when no endpoint in your team is subscribed to the requested event type yet, or when no delivery has fired for that type since the relevant endpoint was created. Zapier, Make, and n8n all fall back to the trigger's static sample in that case, so builders can still author a Zap end-to-end before the first live event flows.

## Query parameters

- `type` string, required
- `limit` integer
- `project_id` string, uuid

## Response `200`

Array of `WebhookEventResource`

- object
  - `data` WebhookEventResource[], required: The items.
    - `id` string, required: The event id, `evt_` followed by a 26-character ULID; the same value the `SB-Event-Id` header carries without the prefix.
    - `type` string, required: The event name, such as `subscription.created`.
    - `created_at` string, required: When the event was raised, ISO 8601.
    - `api_version` string, nullable, required: The payload-envelope version the dispatcher stamped at delivery time, `2026-05-01` today.
    - `project_id` string, nullable, required: The project the event concerns; null for account-level events.
    - `data` union, required: The event's payload, exactly as the event's reference page documents it.
      - string
      - string[]

## Other responses

- `401`: `AUTHENTICATION_REQUIRED`: the request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an `sbt_test_` token on production).
- `403`: `TOKEN_MISSING_ABILITY`: the token is valid but does not carry the ability this endpoint requires; `error.context.required_ability` names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers `FORBIDDEN`, `TEAM_TIER_REQUIRED` or `CONNECTOR_TIER_REQUIRED` with the same status, and says so in its own description.
- `404`: `TENANT_MISMATCH`: with `reason: missing_team_scope` when the token carries no team scope.
- `422`: `VALIDATION_FAILED`: the payload broke a rule, and `error.fields` maps each offending key to its messages. A refusal from the domain, such as a plan that cannot go on sale or a member who cannot be removed, uses the same code with `error.message` saying why and no `fields`. On this endpoint: `VALIDATION_FAILED`: when `type` is missing or not an event name from the catalog, `limit` is outside 1 to 10, or `project_id` is not a UUID.
- `429`: `RATE_LIMITED`: the token has spent its 300 requests a minute or 10,000 an hour; `Retry-After` says when the next one is accepted.

---

[API](https://skmtc.dev/memberpass/apis/subscriby-rest-api.md) · [All operations](https://skmtc.dev/memberpass/apis/subscriby-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memberpass/apis/subscriby-rest-api/revisions/59c4df91d764?raw)
