## List all webhook subscriptions

`client.WebhookSubscriptions.List(ctx) (*WebhookSubscriptionListResponse, error)`

**get** `/v3/webhook-subscriptions`

Retrieve all webhook subscriptions for the authenticated partner.
Returns a list of active and inactive subscriptions with their
configuration and status.

### Returns

- `type WebhookSubscriptionListResponse struct{…}`

  - `Subscriptions []WebhookSubscription`

    List of webhook subscriptions

    - `ID string`

      Unique identifier for the webhook subscription

    - `CreatedAt Time`

      When the subscription was created

    - `IsActive bool`

      Whether this subscription is currently active

    - `SubscribedEvents []WebhookEventType`

      List of event types this subscription receives

      - `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 WebhookEventTypePollReceived WebhookEventType = "poll.received"`

      - `const WebhookEventTypePollFailed WebhookEventType = "poll.failed"`

      - `const WebhookEventTypePollSent WebhookEventType = "poll.sent"`

      - `const WebhookEventTypePollDelivered WebhookEventType = "poll.delivered"`

      - `const WebhookEventTypePollRead WebhookEventType = "poll.read"`

      - `const WebhookEventTypePollUpdated WebhookEventType = "poll.updated"`

      - `const WebhookEventTypePollVoteAdded WebhookEventType = "poll.vote.added"`

      - `const WebhookEventTypePollVoteRemoved WebhookEventType = "poll.vote.removed"`

      - `const WebhookEventTypePollReactionAdded WebhookEventType = "poll.reaction.added"`

      - `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 WebhookEventTypeChatBackgroundUpdated WebhookEventType = "chat.background_updated"`

      - `const WebhookEventTypeChatBackgroundUpdateFailed WebhookEventType = "chat.background_update_failed"`

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

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

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

      - `const WebhookEventTypePhoneNumberAssigned WebhookEventType = "phone_number.assigned"`

      - `const WebhookEventTypePhoneNumberReleased WebhookEventType = "phone_number.released"`

      - `const WebhookEventTypeContactCardReceived WebhookEventType = "contact_card.received"`

      - `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"`

      - `const WebhookEventTypeLocationSharingStarted WebhookEventType = "location.sharing.started"`

      - `const WebhookEventTypeLocationSharingStopped WebhookEventType = "location.sharing.stopped"`

      - `const WebhookEventTypePaymentSucceeded WebhookEventType = "payment.succeeded"`

      - `const WebhookEventTypePaymentCanceled WebhookEventType = "payment.canceled"`

      - `const WebhookEventTypePaymentExpired WebhookEventType = "payment.expired"`

      - `const WebhookEventTypePaymentDeclined WebhookEventType = "payment.declined"`

      - `const WebhookEventTypePaymentAuthorized WebhookEventType = "payment.authorized"`

      - `const WebhookEventTypeConnectionCreated WebhookEventType = "connection.created"`

      - `const WebhookEventTypeConnectionRevoked WebhookEventType = "connection.revoked"`

      - `const WebhookEventTypeZeroDayRetentionUpdated WebhookEventType = "zero_day_retention.updated"`

      - `const WebhookEventTypePhoneNumberForwardingUpdated WebhookEventType = "phone_number.forwarding_updated"`

      - `const WebhookEventTypeEnvironmentLineMoved WebhookEventType = "environment.line_moved"`

      - `const WebhookEventTypeContactCardCreated WebhookEventType = "contact_card.created"`

      - `const WebhookEventTypeContactCardUpdated WebhookEventType = "contact_card.updated"`

      - `const WebhookEventTypeContactCardDeleted WebhookEventType = "contact_card.deleted"`

      - `const WebhookEventTypeAPITokenCreated WebhookEventType = "api_token.created"`

      - `const WebhookEventTypeAPITokenRenamed WebhookEventType = "api_token.renamed"`

      - `const WebhookEventTypeAPITokenExpiryScheduled WebhookEventType = "api_token.expiry_scheduled"`

      - `const WebhookEventTypeAPITokenExpired WebhookEventType = "api_token.expired"`

      - `const WebhookEventTypeAPITokenActivated WebhookEventType = "api_token.activated"`

      - `const WebhookEventTypeAPITokenDeleted WebhookEventType = "api_token.deleted"`

      - `const WebhookEventTypeEnvironmentCreated WebhookEventType = "environment.created"`

      - `const WebhookEventTypeEnvironmentRenamed WebhookEventType = "environment.renamed"`

      - `const WebhookEventTypeEnvironmentDeleted WebhookEventType = "environment.deleted"`

      - `const WebhookEventTypeWebhookSubscriptionCreated WebhookEventType = "webhook_subscription.created"`

      - `const WebhookEventTypeWebhookSubscriptionDeleted WebhookEventType = "webhook_subscription.deleted"`

      - `const WebhookEventTypeWebhookSubscriptionTargetURLChanged WebhookEventType = "webhook_subscription.target_url_changed"`

      - `const WebhookEventTypeWebhookSubscriptionEnabled WebhookEventType = "webhook_subscription.enabled"`

      - `const WebhookEventTypeWebhookSubscriptionDisabled WebhookEventType = "webhook_subscription.disabled"`

      - `const WebhookEventTypeWebhookSubscriptionEventsUpdated WebhookEventType = "webhook_subscription.events.updated"`

      - `const WebhookEventTypeWebhookSubscriptionPhoneNumbersUpdated WebhookEventType = "webhook_subscription.phone_numbers.updated"`

      - `const WebhookEventTypeWebhookSubscriptionRoutingHeadersSet WebhookEventType = "webhook_subscription.routing_headers_set"`

      - `const WebhookEventTypeWebhookSubscriptionRoutingHeadersCleared WebhookEventType = "webhook_subscription.routing_headers_cleared"`

      - `const WebhookEventTypeTeamMemberAdded WebhookEventType = "team_member.added"`

      - `const WebhookEventTypeTeamMemberSignedIn WebhookEventType = "team_member.signed_in"`

      - `const WebhookEventTypeTeamMemberSignedOut WebhookEventType = "team_member.signed_out"`

    - `TargetURL string`

      URL where webhook events will be sent

    - `UpdatedAt Time`

      When the subscription was last updated

    - `PhoneNumbers []string`

      Phone numbers this subscription filters for. If null or empty, events from all phone numbers are delivered.

    - `RoutingIDHeader string`

      Header carrying the chat id. Defaults to `Linq-Chat-Id` when affinity is on.

    - `RoutingKeyHeader string`

      Header carrying the routing token. Null disables delivery affinity.

### 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"),
  )
  webhookSubscriptions, err := client.WebhookSubscriptions.List(context.TODO())
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", webhookSubscriptions.Subscriptions)
}
```

#### Response

```json
{
  "subscriptions": [
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
      "created_at": "2024-01-15T10:30:00Z",
      "is_active": true,
      "subscribed_events": [
        "message.sent",
        "message.delivered",
        "message.read"
      ],
      "target_url": "https://webhooks.example.com/linq/events",
      "updated_at": "2024-01-15T10:30:00Z",
      "phone_numbers": [
        "string"
      ],
      "routing_id_header": "X-Chat-Id",
      "routing_key_header": "X-Route-Token"
    }
  ]
}
```
