> ## Documentation Index
> Fetch the complete documentation index at: https://hub.hcompany.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List event types

> List the webhook event types you can subscribe to.

Lists every concrete event type that can appear in a webhook's `enabled_events`, with a human-readable description. Use it to populate subscription UIs or to discover types added after you integrated.

**Returns** an array of event type definitions.

***

## The event type definition object

<ResponseField name="type" type="string">
  The event type identifier, e.g. `session.completed`.
</ResponseField>

<ResponseField name="description" type="string">
  When the event is sent.
</ResponseField>

***

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://agp.eu.hcompany.ai/api/v2/webhooks/events \
    -H "Authorization: Bearer $HAI_API_KEY"
  ```

  ```python Python theme={null}
  from hai_agents import Client

  client = Client()  # reads HAI_API_KEY from the environment

  for event in client.webhooks.list_webhook_events():
      print(event.type, "-", event.description)
  ```

  ```typescript TypeScript theme={null}
  import { HaiAgentsClient } from "hai-agents";

  const client = new HaiAgentsClient(); // reads HAI_API_KEY from the environment

  const events = await client.webhooks.listWebhookEvents();
  for (const event of events) {
    console.log(event.type, "-", event.description);
  }
  ```
</CodeGroup>

```json Response theme={null}
[
  {
    "type": "session.awaiting_tool_results",
    "description": "Sent when the agent is waiting for client-side tool results."
  },
  {
    "type": "session.completed",
    "description": "Sent when a session finishes successfully."
  },
  {
    "type": "session.failed",
    "description": "Sent when a session fails."
  },
  {
    "type": "session.idle",
    "description": "Sent when the agent finishes a run and waits for the next message."
  },
  {
    "type": "session.status_updated",
    "description": "Sent on every session status change, including running, completed, failed, timed out, interrupted, paused, idle, or awaiting tool results."
  },
  {
    "type": "session.timed_out",
    "description": "Sent when a session exceeds its time limit."
  }
]
```
