---
title: "Add an inbound webhook to one app (the secret goes through S2)"
method: POST
path: "/api/nodes/{node_id}/services/{service}/hooks"
tags: ["nodes"]
---

# Add an inbound webhook to one app (the secret goes through S2)

`POST /api/nodes/{node_id}/services/{service}/hooks`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/nodes/{node_id}/services/{service}/hooks`
- Auth: none declared

Forward the webhook with a fresh Idempotency-Key; refusals in the daemon's words.

No cloud audit row: the daemon audits ``hook.created`` and D-WH-11 keeps
Activity to failures and Redeliver.

## Path parameters

- `service` string, required
- `node_id` string, uuid, required

## Request body

- NodeHookWrite: A webhook to add. No secret field: S2 carries it, separately.
  - `name` string, required
  - `sender` 'stripe' | 'github' | 'slack' | 'hmac' | 'none', required
  - `path` string, required
  - `header` string, nullable
  - `prefix` string, nullable

## Response `200`

Successful Response

- NodeHookSetView: The webhook the machine now holds, and whether this call created it.
  - `name` string, required
  - `sender` string, required
  - `path` string, required
  - `header` string, nullable, required
  - `prefix` string, nullable, required
  - `secret_key` string, nullable, required
  - `url` string, nullable, required
  - `hook_id` string, nullable, required
  - `created_at` string, date-time, required
  - `created` boolean, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Content
- `429`: Too Many Requests
- `502`: Bad Gateway

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
