What Does Idempotent Mean in HTTP? GET, PUT, DELETE Explained
An idempotent HTTP method produces the same result no matter how many times it's repeated. Learn which methods are idempotent and why it matters for retries.
Published September 20, 2026
An HTTP method is idempotent if making the same request multiple times has the same effect as making it once. GET, PUT, DELETE, HEAD, and OPTIONS are defined as idempotent by the HTTP specification. POST and PATCH are not guaranteed to be idempotent.
Common causes
- Networks are unreliable — a client may not know whether a request actually reached the server before a timeout, so it needs to know whether it's safe to simply retry
How to fix it
- Design PUT to fully replace a resource with the given representation — sending the same PUT request twice results in the same final state both times
- Design DELETE so deleting an already-deleted resource is a no-op (or a safe 404) rather than an error, keeping repeated calls harmless
- For POST endpoints that create resources (which are inherently not idempotent — calling twice creates two records), use an idempotency key header if clients need safe retries
Example
DELETE /api/users/42 → 204 No Content
DELETE /api/users/42 → 204 No Content (still succeeds, same end state)
POST /api/orders → creates order #1
POST /api/orders → creates order #2 (NOT idempotent)FAQ
Is PATCH idempotent?
Not guaranteed by spec — it depends on the operation. A PATCH that sets a field to an absolute value is idempotent; one that increments a counter is not.