# Update Subscription

```
PUT 
/v1/subscriptions/:subscription_id
```

Change an existing subscription in place. **This is how you pause one.**

A PARTIAL update: only the fields present in the body are applied, and the subscription keeps its id — so its send history stays reachable at `GET /v1/subscriptions/{subscription_id}/deliveries`. So:

* `{"isActive": false}` **pauses** it. The underlying schedule is rewritten to an expression that can never match, so nothing is sent and nothing is lost; `{"isActive": true}` restores the original cron.
* `{"cron": …}` reschedules, `{"recipients": […]}` changes who receives it, `{"format": …}` / `{"channel": …}` change what and how.

Prefer this to DELETE + POST for any reversible intent. A recreated subscription gets a new id, and `/deliveries` is queried BY that id — so every send the old one made becomes unreachable, which is exactly the evidence you need when asking why a report stopped arriving.

## Request[​](#request "Direct link to request")

## Responses[​](#responses "Direct link to Responses")

* 200
* 404
* 422

Successful Response

Not found

Validation Error
