---
title: "Create a webhook subscription"
method: POST
path: "/v1/webhook_subscriptions"
tags: ["Webhooks"]
---

# Create a webhook subscription

`POST /v1/webhook_subscriptions`

## Request

- Base URL: `https://api.revdesk.com`
- URL: `https://api.revdesk.com/v1/webhook_subscriptions`
- Auth: HTTP bearer

Subscribes an https URL to an event type (one of: new_call, call_completed, contact_replied, contact_created, new_appointment, number_purchased, number_released, number_updated, call_no_answer, call_voicemail, call_busy, call_failed, sms_sent, sms_delivered, sms_failed, texting_registration_status_changed, registration_submitted, registration_confirmed, registration_failed, job_started, job_progressed, job_outcome_recorded, job_completed, optimize.test.created, optimize.test.started, optimize.test.completed, optimize.test.winner, optimize.test.shipped, optimize.conversion.created). The response includes the HMAC signing secret used for X-RevDesk-Signature — it is shown once, here, and is not retrievable afterwards.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `webhook_url` string, required
  - `event_type` string, required

## Response `201`

Success

- object
  - `data` object, required
    - `id` string, required
    - `secret` string, required

## Other responses

- `400`: Validation error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict (incl. idempotency conflicts)
- `429`: Rate limited

---

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