---
title: "Create webhook endpoint"
method: POST
path: "/v1/webhooks"
tags: ["Webhooks"]
---

# Create webhook endpoint

`POST /v1/webhooks`

Create a new webhook endpoint to receive event-driven updates.
**Requires the Scale plan.**

## Request body

- CreateWebhookRequest
  - `url` string, uri, required — Webhook endpoint URL (must be HTTPS)
  - `events` string[], required — Events to subscribe to
  - `description` string — Optional description for the webhook

## Response `201`

Webhook endpoint created successfully

- WebhookResponse
  - `success` boolean
  - `webhook` Webhook
    - `id` string
    - `url` string, uri
    - `events` string[]
    - `secret` string — HMAC signing secret for verification
    - `active` boolean
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `last_delivery` object
      - `attempted_at` string, date-time
      - `status` 'success' | 'failed' | 'pending'
      - `response_code` integer

## Other responses

- `400` — Bad request - Invalid webhook configuration
- `403` — Insufficient plan - Scale required
- `500` — Unexpected server error. Retry transient failures with bounded backoff and retain the request ID when contacting support.

---

[API](https://skmtc.net/oilpriceapi/apis/oil-price-api-v1.md) · [All operations](https://skmtc.net/oilpriceapi/apis/oil-price-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oilpriceapi/oil-price-api-v1/versions/5a5ce424cacc/schema)
