---
title: "Create a webhook endpoint"
method: POST
path: "/v1/finder/webhook_endpoints"
tags: ["Recruit Affiliates webhooks"]
---

# Create a webhook endpoint

`POST /v1/finder/webhook_endpoints`

## Request

- Base URL: `https://api.affiliaterail.com`
- URL: `https://api.affiliaterail.com/v1/finder/webhook_endpoints`
- Auth: HTTP bearer

A public https:// address, or a Slack incoming webhook address with `kind: "slack"`. The answer carries `secret` this once. A test key always makes a test endpoint.

**Scope:** `finder:write`

## Request body

- FinderWebhookEndpointCreate
  - `url` string, required: A public https:// address
  - `kind` 'webhook' | 'slack'
  - `event_types` string[]: Event names from the catalogue on the webhooks docs page. Leave empty for every event.
  - `livemode` boolean: false makes a test endpoint

## Response `201`

The new endpoint, with its secret

- FinderWebhookEndpointWithSecret
  - `id` string, required: Prefixed id (`fwe_…`)
  - `object` 'finder_webhook_endpoint', required
  - `url` string, required
  - `kind` 'webhook' | 'slack', required: `slack` sends a Slack message to a Slack incoming webhook address instead of signed JSON
  - `event_types` string[], required: The events this endpoint gets. Empty means every event.
  - `enabled` boolean, required
  - `livemode` boolean, required: false for a test endpoint, which only gets test events
  - `previous_secret_expires_at` string, date-time, nullable, required: After a rotation, when the old secret stops signing. Null when only one secret is live.
  - `created_at` string, date-time, required: ISO-8601, UTC
  - `secret` string, required: The signing secret. Shown here once, and never again. Keep it somewhere safe.

## Other responses

- `400`: Invalid request
- `401`: Missing or unknown API key
- `402`: The organization's Recruit Affiliates plan does not include the API
- `403`: Key lacks the required scope
- `404`: No such object in your organization
- `409`: In conflict with the object's state, or the same idempotent request is still running
- `422`: The request was understood and refused
- `429`: Rate limited, by key or by organization: see Retry-After and X-RateLimit-Scope
- `501`: Not available to a test key (`sandbox_no_send`)

---

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