Does this need to be a service? Here's how I've approached this in the past, using free/Open Source tools:
Download public-domain shape files from Natural Earth Data
Use Quantum GIS to convert .shp to .geojson (one step, under "Layer > Save As...")
Now you have hi-res GeoJSON data. Here, have some countries.
This is a really big file, though, so you'll want to split it up. But you don't need a service for this, just static files for each country, named by ID. This would be easy enough to produce with a script in your utility of choice (Python, Ruby, node.js).