> Unlike POST, however, the method is explicitly safe and idempotent, allowing functions like caching and automatic retries to operate.<p>And just like with POST, whether or not this is actually the case in a given API, depends entirely on the server-side implementation.<p>Look, I get it. We want to make rules. Rules are good. Rules define things.<p>But in a world where so many "REST APIs" are actually "RESTful" or REST-ish, or <i>"actually about as REST as a Pelican, but we really liked the sound of the acronym"</i>, I wonder if adding one more rule to the pile is really going to substantially change anything.<p>A majority of APIs don't even use all of the existing HTTP verbs, or HTTP response codes for that matter. And every API is free to make up their own rules. I had the dubious pleasure of consuming APIs that required GET with both a body and urlparams, and which returned 200 on error, but with an `{error: {...}}` object in the body. The crown jewel so far, was an authentication system that had me send credentials as multipart/form-data, with a PUT request (because you inPUT the credentials, see? Not a joke, that was the rationale given to me by the dev who made it.)