Creating an API method in service studio consumes 1 AO where as APIs used in extension doesn't consume AO.
Considering the AO usage, Is it okay to always create an extension for API integration?
You can use extensions to integrate with API's, but it will consume more development time and maintenance on your side and also knowledge of a development team that knows how to integrate using .NET.
AOs measure, amongst others, the ease you have to use OutSystems instead of going high code. If you use an extension, you forego the ease of consuming it in OutSystems - instead, you need to write C# code. This also goes for a lot of other AO-consuming parts. Static entities for example cost more AOs than an ordinary entity, but the ease of maintenance and translation for a SE is much better than an ordinary one.
So it's up to you, but if you can avoid it at all, do not look at AOs, but what are best practices.