---
title: "Register a webhook"
method: POST
path: "/api/v2/webhooks"
tags: ["Webhooks"]
---

# Register a webhook

`POST /api/v2/webhooks`

Register a webhook URL to receive event notifications. Events include candidate completion, interview status changes, etc.

## Headers

- `X-API-KEY` string, nullable
- `Authorization` string, nullable
- `X-Workspace-Id` string, nullable

## Request body

- CreateWebhookRequest — Request body for creating a webhook.
  - `posting_id` string, required — ID of the posting this webhook is for.
  - `webhook_url` string, required — Destination URL for webhook delivery.
  - `event_type` string, required — Type of event that triggers the webhook: 'interview_completed', 'candidate_ingested', etc.

## Response `201`

Successful Response

- SingleResponseWebhookResponse
  - `data` WebhookResponse, required — A webhook configuration.
    - `object` 'webhook' — Object type identifier.
    - `webhook_id` string, required — Unique webhook identifier.
    - `posting_id` string, required — ID of the posting this webhook is for.
    - `webhook_url` string, required — Destination URL for the webhook.
    - `event_type` string, required — Type of event that triggers the webhook.
    - `is_active` boolean, required — Whether the webhook is active.
    - `created_at` number, required — Unix timestamp when the webhook was created.
    - `updated_at` number, required — Unix timestamp when the webhook was last updated.
  - `meta` object, nullable — Optional metadata. Shape varies by endpoint.

## Other responses

- `401` — Invalid or missing API key.
- `404` — Resource not found.
- `422` — Validation Error
- `429` — Rate limit exceeded.

---

[API](https://skmtc.net/heymilo/apis/heymilo-public-api.md) · [All operations](https://skmtc.net/heymilo/apis/heymilo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/heymilo/heymilo-public-api/revisions/a93ca9c2c777/schema)
