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.