Content-Type describes the body you are sending. “This is JSON.”
Accept describes what you would like back. “Please reply with JSON.”
I have watched Laravel APIs return HTML error pages to API clients because Accept said nothing useful, and the framework (or the server) chose a web response. I have watched providers reject a body because Content-Type was application/json when they wanted a form.
Postman often sets both without making a fuss. Your HTTP client will not, unless you tell it.
Related: Postman vs Laravel, HTML instead of JSON.