# Webhook Events

## List available webhook event types

`client.WebhookEvents.List(ctx) (*WebhookEventListResponse, error)`

**get** `/v3/webhook-events`

Returns all available webhook event types that can be subscribed to.
Use this endpoint to discover valid values for the `subscribed_events`
field when creating or updating webhook subscriptions.

### Returns

- `type WebhookEventListResponse struct{…}`

  - `DocURL HTTPSApidocsLinqappComDocumentationWebhookEvents`

    URL to the webhook events documentation

    - `const HTTPSApidocsLinqappComDocumentationWebhookEventsHTTPSApidocsLinqappComDocumentationWebhookEvents HTTPSApidocsLinqappComDocumentationWebhookEvents = "https://apidocs.linqapp.com/documentation/webhook-events"`

  - `Events []WebhookEventType`

    List of all available webhook event types

    - `const WebhookEventTypeMessageSent WebhookEventType = "message.sent"`

    - `const WebhookEventTypeMessageReceived WebhookEventType = "message.received"`

    - `const WebhookEventTypeMessageRead WebhookEventType = "message.read"`

    - `const WebhookEventTypeMessageDelivered WebhookEventType = "message.delivered"`

    - `const WebhookEventTypeMessageFailed WebhookEventType = "message.failed"`

    - `const WebhookEventTypeMessageEdited WebhookEventType = "message.edited"`

    - `const WebhookEventTypeReactionAdded WebhookEventType = "reaction.added"`

    - `const WebhookEventTypeReactionRemoved WebhookEventType = "reaction.removed"`

    - `const WebhookEventTypeParticipantAdded WebhookEventType = "participant.added"`

    - `const WebhookEventTypeParticipantRemoved WebhookEventType = "participant.removed"`

    - `const WebhookEventTypeChatCreated WebhookEventType = "chat.created"`

    - `const WebhookEventTypeChatGroupNameUpdated WebhookEventType = "chat.group_name_updated"`

    - `const WebhookEventTypeChatGroupIconUpdated WebhookEventType = "chat.group_icon_updated"`

    - `const WebhookEventTypeChatGroupNameUpdateFailed WebhookEventType = "chat.group_name_update_failed"`

    - `const WebhookEventTypeChatGroupIconUpdateFailed WebhookEventType = "chat.group_icon_update_failed"`

    - `const WebhookEventTypeChatTypingIndicatorStarted WebhookEventType = "chat.typing_indicator.started"`

    - `const WebhookEventTypeChatTypingIndicatorStopped WebhookEventType = "chat.typing_indicator.stopped"`

    - `const WebhookEventTypePhoneNumberStatusUpdated WebhookEventType = "phone_number.status_updated"`

    - `const WebhookEventTypeCallInitiated WebhookEventType = "call.initiated"`

    - `const WebhookEventTypeCallRinging WebhookEventType = "call.ringing"`

    - `const WebhookEventTypeCallAnswered WebhookEventType = "call.answered"`

    - `const WebhookEventTypeCallEnded WebhookEventType = "call.ended"`

    - `const WebhookEventTypeCallFailed WebhookEventType = "call.failed"`

    - `const WebhookEventTypeCallDeclined WebhookEventType = "call.declined"`

    - `const WebhookEventTypeCallNoAnswer WebhookEventType = "call.no_answer"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/linq-team/linq-go"
  "github.com/linq-team/linq-go/option"
)

func main() {
  client := linqgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  webhookEvents, err := client.WebhookEvents.List(context.TODO())
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", webhookEvents.DocURL)
}
```

#### Response

```json
{
  "events": [
    "message.sent",
    "message.received",
    "message.read",
    "message.delivered",
    "message.failed",
    "reaction.added",
    "reaction.removed",
    "participant.added",
    "participant.removed",
    "chat.created",
    "chat.group_name_updated",
    "chat.group_icon_updated",
    "chat.group_name_update_failed",
    "chat.group_icon_update_failed",
    "chat.typing_indicator.started",
    "chat.typing_indicator.stopped",
    "message.edited",
    "phone_number.status_updated"
  ],
  "doc_url": "https://apidocs.linqapp.com/documentation/webhook-events"
}
```

## Domain Types

### Webhook Event Type

- `type WebhookEventType string`

  Valid webhook event types that can be subscribed to.

  **Note:** `message.edited` is only delivered to subscriptions using `webhook_version: "2026-02-03"`.
  Subscribing to this event on a v2025 subscription will not produce any deliveries.

  - `const WebhookEventTypeMessageSent WebhookEventType = "message.sent"`

  - `const WebhookEventTypeMessageReceived WebhookEventType = "message.received"`

  - `const WebhookEventTypeMessageRead WebhookEventType = "message.read"`

  - `const WebhookEventTypeMessageDelivered WebhookEventType = "message.delivered"`

  - `const WebhookEventTypeMessageFailed WebhookEventType = "message.failed"`

  - `const WebhookEventTypeMessageEdited WebhookEventType = "message.edited"`

  - `const WebhookEventTypeReactionAdded WebhookEventType = "reaction.added"`

  - `const WebhookEventTypeReactionRemoved WebhookEventType = "reaction.removed"`

  - `const WebhookEventTypeParticipantAdded WebhookEventType = "participant.added"`

  - `const WebhookEventTypeParticipantRemoved WebhookEventType = "participant.removed"`

  - `const WebhookEventTypeChatCreated WebhookEventType = "chat.created"`

  - `const WebhookEventTypeChatGroupNameUpdated WebhookEventType = "chat.group_name_updated"`

  - `const WebhookEventTypeChatGroupIconUpdated WebhookEventType = "chat.group_icon_updated"`

  - `const WebhookEventTypeChatGroupNameUpdateFailed WebhookEventType = "chat.group_name_update_failed"`

  - `const WebhookEventTypeChatGroupIconUpdateFailed WebhookEventType = "chat.group_icon_update_failed"`

  - `const WebhookEventTypeChatTypingIndicatorStarted WebhookEventType = "chat.typing_indicator.started"`

  - `const WebhookEventTypeChatTypingIndicatorStopped WebhookEventType = "chat.typing_indicator.stopped"`

  - `const WebhookEventTypePhoneNumberStatusUpdated WebhookEventType = "phone_number.status_updated"`

  - `const WebhookEventTypeCallInitiated WebhookEventType = "call.initiated"`

  - `const WebhookEventTypeCallRinging WebhookEventType = "call.ringing"`

  - `const WebhookEventTypeCallAnswered WebhookEventType = "call.answered"`

  - `const WebhookEventTypeCallEnded WebhookEventType = "call.ended"`

  - `const WebhookEventTypeCallFailed WebhookEventType = "call.failed"`

  - `const WebhookEventTypeCallDeclined WebhookEventType = "call.declined"`

  - `const WebhookEventTypeCallNoAnswer WebhookEventType = "call.no_answer"`
