---
title: "Retrieve a Webhook"
method: GET
path: "/webhooks/{webhook-id}"
tags: ["webhooks"]
---

# Retrieve a Webhook

`GET /webhooks/{webhook-id}`

## Request

- Base URL: `https://api.withpersona.com/api/v1`
- URL: `https://api.withpersona.com/api/v1/webhooks/{webhook-id}`
- Auth: HTTP bearer

Retrieves the details of an existing webhook, including its secret.

## Path parameters

- `webhook-id` string, required

## Query parameters

- `include` string
- `fields` object

## Headers

- `Key-Inflection` 'camel' | 'kebab' | 'snake'
- `Idempotency-Key` string
- `Persona-Version` '2026-09-29' | '2025-12-08' | '2025-10-27' | '2023-01-05' | '2022-09-01' | '2021-08-18' | '2021-07-05' | '2021-02-21' | '2020-05-18': Server API version. More info on versioning can be found [here](https://docs.withpersona.com/versioning).

## Response `200`

This endpoint returns a Webhook object.

- WebhooksRetrieveAWebhookResponse200
  - `data` WebhookWithSecret, required: A Webhook object
    - `type` 'webhook'
    - `id` string
    - `attributes` WebhookWithSecretAttributes
      - `status` string
      - `url` string
      - `name` string, nullable
      - `description` string, nullable
      - `secret` string: secret is deprecated in favor of secrets
      - `secrets` WebhookWithSecretAttributesSecretsItems[]
        - `value` string
        - `expires-at` string, date-time, nullable
      - `api-version` '2026-09-29' | '2025-12-08' | '2025-10-27' | '2023-01-05' | '2022-09-01' | '2021-08-18' | '2021-07-05' | '2021-02-21' | '2020-05-18': Server API version. More info on versioning can be found [here](https://docs.withpersona.com/versioning).
      - `api-key-inflection` string
      - `api-attributes-blocklist` string[]
      - `file-access-token-expires-in` integer
      - `enabled-events` string[]
      - `payload-filter` WebhookWithSecretAttributesPayloadFilter
      - `included-allowlist` union: Controls which related objects appear in the `included` array of webhook payloads. The default is `include_none`. When `state` is `custom`, `event-types` configures which related objects to include per event type: event types you are subscribed to (via `enabled-events`) but do not list are excluded, and event types you list but are not subscribed to are dropped on save. A `custom` config whose event types are all `["*"]` is equivalent to, and is normalized to, `include_all`.
        - IncludedAllowlist0
          - `state` 'include_all', required: Include all related objects for every subscribed event type.
        - IncludedAllowlist1
          - `state` 'include_none', required: Include no related objects (the default).
        - IncludedAllowlist2
          - `state` 'custom', required: Configure included related objects per event type via `event-types`.
          - `event-types` IncludedAllowlistOneOf2EventTypesItems[], required: Per-event-type include configuration. At most one entry per event type.
            - `event-type` string, required: Event type identifier (e.g. `inquiry`, `account`).
            - `relationships` string[], required: Related object names to include for this event type, or `["*"]` to include all related objects. `"*"` cannot be combined with named relationships.
      - `relationship-allowlist` union: Controls whether relationships are serialized in webhook payload objects. The default is `include_all`. The object shape leaves room for future granular relationship configuration.
        - RelationshipAllowlist0
          - `state` 'include_all', required: Include relationship linkages in webhook payload objects.
        - RelationshipAllowlist1
          - `state` 'include_none', required: Omit relationship linkages from webhook payload objects.
      - `created-at` string, date-time
  - `included` unknown[]: Excluded from the response by default. Will be an empty array when the `include` query parameter in the request was explicitly set to empty.
    - unknown

## Other responses

- `400`: The request was unacceptable, often due to invalid parameters.
- `401`: An invalid API key was provided.
- `403`: The given API key doesn’t have permissions to perform the request or a quota has been exceeded.
- `404`: The requested resource doesn’t exist.
- `429`: Your organization’s rate limit has been exceeded. We recommend an exponential backoff on requests.

---

[API](https://skmtc.dev/withpersona/apis/withpersona-6.md) - [All operations](https://skmtc.dev/withpersona/apis/withpersona-6/llms.txt) - [OpenAPI document](https://skmtc.dev/withpersona/apis/withpersona-6/revisions/b2a170061bd9?raw)
