PUT vs PATCH — What's the Difference?

PUT replaces an entire resource with the representation provided in the request; PATCH applies a partial update, modifying only the specified fields.

Published October 3, 2026

PUT replaces an entire resource with the representation provided in the request; PATCH applies a partial update, modifying only the specified fields.

Why they differ

  • PUT is defined as idempotent and expects the full resource representation — fields omitted from the body may be reset to their defaults
  • PATCH is designed for sending only the fields that changed, leaving everything else untouched

How to choose

  • Use PUT when the client always has and sends the complete resource, such as replacing a settings object wholesale
  • Use PATCH for partial updates, like changing just one field on a large object, which is far more common in real-world APIs

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 value is not.

More HTTP articles