---
title: "Create a project webhook"
method: POST
path: "/projects/{project_id}/webhooks"
tags: ["project-webhooks"]
---

# Create a project webhook

`POST /projects/{project_id}/webhooks`

Create a webhook; returns the signing secret once.

## Path parameters

- `project_id` string, required

## Request body

- CreateProjectWebhook — Request body for creating a project webhook.
  - `url` string, required — HTTPS destination URL.
  - `events` WebhookEvent[], required — Events that should trigger delivery.
  - `enabled` boolean — Whether the webhook is active.

## Response `201`

Successful Response

- ProjectWebhookCreated — Create response that includes the signing secret once.
  - `id` string, required
  - `project_id` string, required
  - `organization_id` string, required
  - `url` string, required
  - `events` string[], required
  - `enabled` boolean, required
  - `consecutive_failures` integer
  - `disabled_reason` string, nullable
  - `created_by` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `secret` string, required — HMAC signing secret; shown only in the create response.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ionworks/apis/fastapi.md) · [All operations](https://skmtc.dev/ionworks/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ionworks/fastapi/revisions/7337a3cbdaf2/schema)
