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

# Quickstart

> Create an endpoint and list its events in a few lines.

<Steps>
  <Step title="Get an API key">
    Create a `whk_` API key in your [dashboard](https://app.webhook.co) and export it:

    ```sh theme={null}
    export WEBHOOK_API_KEY=whk_your_key_here
    ```
  </Step>

  <Step title="Install an SDK">
    <CodeGroup>
      ```sh npm theme={null}
      npm install @webhook-co/sdk
      ```

      ```sh pip theme={null}
      pip install webhook-co
      ```

      ```sh go theme={null}
      go get github.com/webhook-co/webhook-go
      ```
    </CodeGroup>
  </Step>

  <Step title="Create an endpoint">
    Each endpoint has a signed ingest URL that's returned **once** at creation — capture it now.

    <CodeGroup>
      ```ts TypeScript theme={null}
      import { WebhookClient } from "@webhook-co/sdk";

      const webhook = new WebhookClient({ apiKey: process.env.WEBHOOK_API_KEY! });
      const endpoint = await webhook.endpoints.create({ name: "orders-prod" });
      console.log(endpoint.ingestUrl);
      ```

      ```python Python theme={null}
      import os
      from webhook_co import WebhookClient

      client = WebhookClient(api_key=os.environ["WEBHOOK_API_KEY"])
      endpoint = client.endpoints.create(name="orders-prod")
      print(endpoint.ingest_url)
      ```

      ```go Go theme={null}
      client, _ := webhook.NewClient(os.Getenv("WEBHOOK_API_KEY"))
      ep, _ := client.Endpoints.Create(ctx, webhook.EndpointsCreateParams{Name: "orders-prod"})
      fmt.Println(ep.IngestUrl)
      ```
    </CodeGroup>
  </Step>

  <Step title="List the events it captures">
    Point a provider at the ingest URL, then iterate the captured events. List methods auto-paginate.

    <CodeGroup>
      ```ts TypeScript theme={null}
      for await (const event of webhook.events.list(endpoint.id)) {
        console.log(event.id, event.provider, event.verificationState);
      }
      ```

      ```python Python theme={null}
      for event in client.events.list(endpoint.id):
          print(event.id, event.provider, event.verification_state)
      ```

      ```go Go theme={null}
      it := client.Events.List(ep.Id, nil)
      for it.Next(ctx) {
          e := it.Value()
          fmt.Println(e.Id, e.Verified)
      }
      if err := it.Err(); err != nil {
          log.Fatal(err)
      }
      ```
    </CodeGroup>
  </Step>
</Steps>

## Next

Browse the full **[API reference](/api-reference/endpoints/list-endpoints)** (generated from the live OpenAPI spec, with an
interactive playground), or dive into your language's SDK guide for retries, errors, replay, and more.
