---
url: https://scruple.dev/rules/api-contracts/no-misleading-http-status.md
description: Disallow statuses that contradict visible outcomes.
---

# api-contracts/no-misleading-http-status

Disallow statuses that contradict visible outcomes.

## What it checks

Explicit HTTP status exits should agree with the route's visible result while allowing accepted work and deliberate protocol or privacy contracts.

## Rule metadata

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

## Examples

### Reported

```ts
app.post("/users", async (_req, res) => { await createUser(); res.sendStatus(404); });
```

### Accepted

```ts
app.post("/users", async (_req, res) => { await createUser(); res.sendStatus(201); });
```
