---
url: >-
  https://scruple.dev/rules/api-contracts/no-side-effects-in-safe-http-methods.md
description: Disallow requested mutation through safe HTTP methods.
---

# api-contracts/no-side-effects-in-safe-http-methods

Disallow requested mutation through safe HTTP methods.

## What it checks

GET, HEAD, OPTIONS, and TRACE routes should not perform requested domain mutations; incidental logging, metrics, auditing, and cache upkeep are allowed.

## Rule metadata

* Package: `@scruple/api-contracts`
* Category: HTTP contracts
* Tags: http, side-effects, routes
* Default threshold: `0.9`
* Minimum confidence: `0.75`

## Examples

### Reported

```ts
app.get("/users/:id/activate", req => activateUser(req.params.id));
```

### Accepted

```ts
app.post("/users/:id/activate", req => activateUser(req.params.id));
```
