---
title: "Update incoming source"
method: PUT
path: "/api/v1/projects/{projectId}/incoming-sources/{id}"
tags: ["Incoming Sources"]
---

# Update incoming source

`PUT /api/v1/projects/{projectId}/incoming-sources/{id}`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/api/v1/projects/{projectId}/incoming-sources/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Updates incoming source configuration

## Path parameters

- `projectId` string, uuid, required
- `id` string, uuid, required

## Request body

- IncomingSourceRequest: Request to create or update an incoming webhook source
  - `name` string, required: Display name for the source
  - `slug` string: URL-friendly slug (auto-generated if omitted)
  - `providerType` string: GENERIC, or the id of a provider listed by GET /api/v1/incoming-providers
  - `status` 'ACTIVE' | 'DISABLED': Source status
  - `verificationMode` 'NONE' | 'HMAC_GENERIC' | 'PROVIDER': Signature verification mode
  - `hmacSecret` string: HMAC secret for signature verification (write-only, never returned)
  - `hmacHeaderName` string: HTTP header name containing the signature
  - `hmacSignaturePrefix` string: Prefix before the signature value
  - `rateLimitPerSecond` integer: Rate limit per second for the ingress URL, at most the plan's own (null = the default limit)

## Response `200`

Source updated

## Other responses

- `404`: Source not found

---

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