Arguably browser vs. API client is already covered by the Accept header. A browser request has something like `Accept: text/html,application/xhtml+xml,[…]`, where an API client request has something like `Accept: application/json`.
If the client requests HTML, it’s a pretty safe assumption they want to have something display-able.