No puedo asignar el valor a la API, intenté darle un valor predeterminado y luego cambiarlo, pero aún no funciona (soy nuevo con las API), la variable es ciudad.
searchBtn.addEventListener("click", function(){ let searchValue = document.getElementById("searchbar").value; let city = searchValue; }) fetch(`http://api.weatherapi.com/v1/forecast.json?key=${apik}&q=${city}&days=7`)JavaScript tiene scopes y la variable de city que creaste se declara dentro de una función, mientras que la llamada a la API está fuera de la función.
Puede mover la llamada API a la función y luego debería funcionar.
searchBtn.addEventListener("click", function(){ let searchValue = document.getElementById("searchbar").value; let city = searchValue; fetch(`http://api.weatherapi.com/v1/forecast.json?key=${apik}&q=${city}&days=7`) });