I want to build a mobile application which should have a screen with a 3D Earth which is spinning and allows user to enter a search query to see a city from above.
I would like to have a 3D earth similar to the picture above, where users can rotate the globe, zoom in/out etc.
I don't think creating my own model would help. (using openGL or something like this).
What is really important is that I would like to have the same functionality of Google Earth/Maps (like search, pins, routes etc)
Also I would like to color a whole country with a specific color like in th example but filled).
Is there an API that I could use? I didn't find anything relevant on Google yet.

Try map box
Mapbox is built on vector maps, an advanced approach to mapping where data is delivered to the device and precisely rendered in real-time. The result is smooth, fast maps.
They also provide studio to create custom maps.