Как спрятать ключ от API чтоб работал github pages?
Для хранения секретных ключей используется сервер, либо environment variables.

Как пример, dotenv
Я не знаю, кто у вас предоставляет API, но у Гугла сделано это с помощью цифровой подписи: https://developers.google.com/maps/documentation/m...
Допустим, вы знаете какие у вас параметры (надеюсь, что они не меняются), вы подписываете свой запрос и шлёте провайдеру. Если кто-либо захочет поменять параметры запроса, то ему придётся подписать его заново, а без приватного ключа он не сможет.
С другой стороны, если у вас есть квота на запросы, или вы хотите их в JS динамически менять, то да, вам без личного бекенда не справится.

Всё, что приходит в браузер, можно украсть :)