You can call any external APIs(using axios, fetch, whatever) from your components directly without writing any API routes yourself. However, I wouldn't recommend that.
Next.js API routes have some clear advantages:
You build your own APIs so that you can use the API for different consumers in the app.
The secrets are handled on the server side. you do not have the API keys mashed up in your client code.