Let you give my experience.
In Addition to this how I can identify I need to use migrated extensions or non migrated extensions?
This is not using one API or the other. Within the same account both migrated and non-migrated extensions may exist. If you look careful in the UI of an account with non-migrated extensions, you will notice that you can migrate these extensions OR SOME OF THEM.
Some articles on this subject mentioned that all sitelinks would be forcefully migrated last year October, then that date was postponed to March. However, a few weeks ago I ran into an account which still had unmigrated sitelinks.
If the deadline of your project is still some months away, you are probably better off telling your boss or customers that your project will only work with migrated extensions, and use the API for asset-based sitelinks. One reason could be that you can no longer create unmigrated sitelinks, making testing extremely hard. Another reason is that the API for feed-based sitelinks is very hard.
If you can't get away with that, there's another nasty angle: Actually it's not the sitelinks that are migrated, but the campaigns or ad groups attached to sitelinks. Look again in the UI of unmigrated sitelinks: you can only upgrade groups and campaigns. On top of that, the API documentation does not state what happens to a feedbased sitelink once it is migrated, for instance what status it will get.
The algorithm I use is:
First get all asset-based sitelinks, and get the campaigns and ad groups attached to them. Get each and everyone, including the disabled and removed links. Then go on for the feed-based sitelinks, and get the campaigns and ad groups they are attached too, EXCEPT the campaigns and ad groups that are or were used for asset-based sitelinks - because these are migrated.
I hope this makes sense and helps you to get started.