---
title: "The latest events of one type in this account, newest first, as deliveries carry them."
method: GET
path: "/v1/webhooks/events"
tags: ["webhooks"]
---

# The latest events of one type in this account, newest first, as deliveries carry them.

`GET /v1/webhooks/events`

## Request

- Base URL: `https://api.50heads.com`
- URL: `https://api.50heads.com/v1/webhooks/events`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.50heads.com/authorize`, token URL `https://auth.50heads.com/token`; client credentials, token URL `https://auth.50heads.com/token`, scopes: `webhooks:read`)

Each event is the exact body a delivery sends (`id`, `type`, `createdAt`, `apiVersion`, `data`), so a receiver can use one as sample data or poll with it and drop ids it has seen. Events are kept whether or not an endpoint listens, for 90 days. A personal account lists the person's events, including their asks in a team; a team lists the team's. A key acts for its own account (personal or team); a session acts for the account in the account header. Team members who can ask can read; the owner and admins can change.

## Query parameters

- `type` 'question.reserved' | 'question.completed' | 'question.underfilled' | 'question.canceled' | 'question.refused' | 'credits.purchased' | 'credits.low' | 'credits.expiring' | 'dispute.resolved' | 'connection.cap_warning' | 'webhook.test' | 'member.provisioned' | 'member.deprovisioned' | 'policy.changed' | 'approval.requested' | 'approval.decided' | 'approval.expired' | 'approval.refused' | 'workspace.created' | 'workspace.moved' | 'workspace.closed', required
- `limit` integer

## Response `200`

OK

- WebhooksEventsResponse
  - `events` object[], required
    - `id` string, required
    - `type` string, required
    - `createdAt` string, required
    - `apiVersion` '2026-10-10'
    - `data` object, required

## Other responses

- `400`: The request is not valid; `error.details.validation` lists the fixes.
- `401`: No key or token, or it expired or was revoked.
- `403`: The key or token lacks the scope (`insufficient_scope`), or the action is not allowed.
- `429`: Too many requests; wait for Retry-After.

---

[API](https://skmtc.dev/50heads/apis/50heads-api.md) · [All operations](https://skmtc.dev/50heads/apis/50heads-api/llms.txt) · [OpenAPI document](https://skmtc.dev/50heads/apis/50heads-api/revisions/20175e8b00e3?raw)
