well do you know mashery http://www.mashery.com/ and programmableweb?
maybe there are some useful ressources
http://www.mashery.com/solution/collegeboard
and
http://www.3scale.net/
i would use api keys for statistics and limitation but also serve some services without an api key like google does
You can create easily APIs with solutions like
Restler http://luracast.com/products/restler/
Frapi http://getfrapi.com/
The Datatank http://thedatatank.com/
Services (just for Drupal) http://drupal.org/project/services
there are some more: http://blog.programmableweb.com/2011/09/23/short-list-of-restful-api-frameworks-for-php/