If the API is indeed RESTful, and it complies with the concept that a URI represents an address of a specific resource, then returning 200 even when the resource was not found does not make any sense. The request was not &quot;successful&quot;, rather the request failed to find what it was looking for!<p>That said, &quot;single URL APIs that you throw JSON&#x2F;YAML&#x2F;whatever at&quot; are not RESTful anyway. For a non-REST API, then it may make sense to return 200 even if something was not found, but it is still not a good idea to just ignore the properties of the upper-level protocol your data is ferried on.<p><pre><code>    &gt; I&#x27;m not sure why people insist on spreading their APIs out between the transport and content layer.
</code></pre>
HTTP is not the transport layer. It&#x27;s an application protocol meant to convey application data. People spread their API over it because that&#x27;s how it&#x27;s supposed to be used. If you&#x27;re just using HTTP as a means to toss random data between computers, you should consider TCP.