import httpx async def fetch_api_data(icon: str, url: str, params: dict, remove_keys: list = None) -> dict: try: print(f"🔨{icon}Input parameters: {params}") async with httpx.AsyncClient() as client: response = await client.get(url, params=params, timeout=10.0) response.raise_for_status() print(f"🖇️{icon}Request URL: {response.url}") data = response.json() if remove_keys and isinstance(data, dict): for key in remove_keys: data.pop(key, None) print(f"🚮{icon}Successfully removed key: {key}") return data except httpx.HTTPStatusError as e: return {"error": "http_error", "status_code": e.response.status_code, "detail": e.response.text} except httpx.RequestError as e: return {"error": "request_error", "status_code": str(e)} except Exception as e: return {"error": "unexpected_error", "status_code": str(e)}