---
title: "List webhook endpoints"
method: GET
path: "/v2/webhook_endpoints"
tags: ["Webhook endpoints"]
---

# List webhook endpoints

`GET /v2/webhook_endpoints`

## Request

- Base URL: `https://api.logo.dev`
- URL: `https://api.logo.dev/v2/webhook_endpoints`
- Auth: HTTP bearer

Returns every webhook endpoint on your team. Not paginated. Needs a paid plan. See [Who can use webhooks](/webhooks#who-can-use-webhooks).

## Response `200`

All endpoints. An empty array when there are none.

- object
  - `data` V2WebhookEndpoint[], required
    - `object` 'webhook_endpoint', required
    - `id` string, required
    - `url` string, uri, required
    - `description` string, required: Empty string when unset.
    - `disabled` boolean, required: `true` when you switched the endpoint off, or when deliveries were stopped after sustained failures.
    - `filter_types` string[], required: Event types this endpoint receives. An empty array means all of them.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `metadata` V2Metadata, required
    - `request_id` string, required: Unique id for this request. Also sent as the `Request-Id` header.
    - `resolution` V2Resolution: How the request identified the brand.
      - `type` 'domain' | 'ticker' | 'isin' | 'crypto' | 'name' | 'brand_id', required: Which identifier the request used.
      - `value` string, required: The identifier after normalization: the registrable domain, an upper-cased ticker, and so on.
      - `method` 'direct' | 'domain' | 'security' | 'crypto' | 'search' | '', required: How the identifier reached the brand. `direct` is a brand id or a domain that is its own brand; `domain` went through an alias or redirect; `security` is a ticker or ISIN; `crypto` is a crypto token symbol; `search` is a name lookup. Empty on a cached miss.
      - `context` object, required: Reserved for brands involved in a merchant lookup. Always `{}` today.
    - `pending` V2Pending: Present only on a `202`. Tells you when to retry.
      - `reason` 'indexing' | 'resolving', required: `indexing` is a brand's first crawl; `resolving` means the identifier is still being matched to a brand.
      - `message` string, required
      - `retry_after_seconds` integer, required: Wait this long before retrying. Matches the `Retry-After` header.
      - `expires_in_seconds` integer, required: Stop polling after this long.
      - `webhook` boolean, required: Whether a `brand.indexed` webhook event carrying this request's `request_id` will be sent when the lookup settles.
      - `doc_url` string, uri, required
    - `subscription` object: Present when a brand lookup (`GET /v2/brands` or `GET /v2/brands/{id}`) ran the automatic subscribe: webhooks are on for the account, and `nosubscribe` is not `true`. See [automatic subscriptions](/brand/introduction#automatic-subscriptions).
      - `status` 'subscribed' | 'quota_exceeded', required: `subscribed`: the account is subscribed to the brand. `quota_exceeded`: the account is at its plan's subscription limit, so the brand was not subscribed. The lookup is answered and billed either way.
      - `message` string: Why the subscribe was refused. Only with `quota_exceeded`.

## Other responses

- `401`: The secret key is missing, malformed, unknown, or disabled. A publishable key (`pk_`) is refused.
- `403`: Your plan does not include webhooks, or your role cannot change them. See [Who can use webhooks](/webhooks#who-can-use-webhooks).
- `500`: Managing the endpoint failed.

---

[API](https://skmtc.dev/logo/apis/logo-dev-api.md) · [All operations](https://skmtc.dev/logo/apis/logo-dev-api/llms.txt) · [OpenAPI document](https://skmtc.dev/logo/apis/logo-dev-api/revisions/6251e2aca8fb?raw)
