Getting a topic by slug that is in a secured category through API

Getting a topic like this that is in a category seen by not logged in users works well by id and slug:

GET https://myurl.com/t/13.json => 200
GET https://myurl.com/t/topic-13-as-slug.json => 200

However, if I put the category in a secured category (One where all groups but Everyone can see, read and edit) it only works to get the topic with the topic_id

GET https://myurl.com/t/13.json?api_key=mycoolkey&api_username=mycoolbot => 200 //all users apikey & admin + moderator user
GET https://myurl.com/t/13.json => 403 //Unauthed gets 403, this is correct

And when you do it by topic-slug it gives a 403

GET https://myurl.com/t/topic-13-as-slug.json?api_key=mycoolkey&api_username=mycoolbot => 403

Even though this key is for all users, and the user is admin, moderator and present in atleast 3 groups that have read and write access to the secured category that the topic is in.

Is there a way to get a topic by topic-slug that is in a secured category? We are using discourse lazily and are able to predict topic-slugs clientside. It would be really nice to not have to setup a database for keeping a lookup table between topic-slugs and topic-ids.

Perhaps if you pass the credentials in the header rather than in the url?

https://docs.discourse.org/ mentions that you can pass the api_key and api_username in the body in a post request but does not mentioning using headers as a place for the api_key and api_username. If it is possible how is it done?