---
title: "List recent webhook events of one type"
method: GET
path: "/api/webhook-events"
tags: ["Webhooks"]
---

# List recent webhook events of one type

`GET /api/webhook-events`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/webhook-events`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

Newest-first canonical events, in exactly the shape we deliver them (unique top-level id). If the workspace has no events of that type yet, you get the documented sample payload instead. This is the polling source platform integrations use for sample data, such as Zapier's performList.

**API key scopes:** `webhooks:read`.

## Query parameters

- `type` 'lead.created' | 'lead.updated' | 'lead.qualified' | 'lead.stage_changed' | 'message.received' | 'message.draft_created' | 'message.sent' | 'review.created' | 'review.approved' | 'review.rejected' | 'booking.created' | 'booking.updated' | 'booking.cancelled' | 'campaign.enrolled' | 'campaign.completed' | 'campaign.failed' | 'broadcast.started' | 'broadcast.completed' | 'broadcast.paused' | 'broadcast.failed' | 'crm.sync_failed' | 'integration.connection_health_changed', required
- `limit` integer

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- WebhookEventsResponse
  - `events` object[], required
    - `id` string, required
    - `type` 'lead.created' | 'lead.updated' | 'lead.qualified' | 'lead.stage_changed' | 'message.received' | 'message.draft_created' | 'message.sent' | 'review.created' | 'review.approved' | 'review.rejected' | 'booking.created' | 'booking.updated' | 'booking.cancelled' | 'campaign.enrolled' | 'campaign.completed' | 'campaign.failed' | 'broadcast.started' | 'broadcast.completed' | 'broadcast.paused' | 'broadcast.failed' | 'crm.sync_failed' | 'integration.connection_health_changed', required
    - `created_at` string, required
    - `organization_id` string, required
    - `workspace_id` string, uuid, nullable, required
    - `data` object, required: Opaque JSON object

## Other responses

- `401`: unauthorized
- `429`: rate limited
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
