---
title: "Update signal"
method: PATCH
path: "/v1/projects/{projectSlug}/signals/{signalSlug}"
tags: ["Signals"]
---

# Update signal

`PATCH /v1/projects/{projectSlug}/signals/{signalSlug}`

Updates a signal's name, description, and evaluation pre-gate `filters`. Filter changes apply forward-only — existing membership is never re-evaluated. The slug is stable.

## Path parameters

- `projectSlug` string, required — Project slug (human-readable identifier)
- `signalSlug` string, required — Signal slug.

## Request body

- UpdateSignalBody
  - `name` string — New name. Omitted leaves it unchanged.
  - `description` string — New description. Omitted leaves it unchanged.
  - `filters` object, nullable — New evaluation pre-gate. Explicit `null` clears it; omitted leaves it unchanged.

## Response `200`

Signal updated

- UpdateSignalResponse
  - `id` string, required — Updated signal id.
  - `slug` string, required — URL-safe identifier (stable across updates).
  - `changed` boolean, required — Whether any field actually changed.

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `404` — Not found

---

[API](https://skmtc.net/latitude-dev/apis/latitude.md) · [All operations](https://skmtc.net/latitude-dev/apis/latitude/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/latitude-dev/latitude/versions/6a8789c59a5c/schema)
