Iv'e moved this from SO as it's more of a design question than a code one.
In many applications third party websites/programs can access the website via a key.
For example, a web application hosts applications each of which have a unique API key. These keys are issued to the various developers to ensure they don't make too many requests based on their contract.
However, the 3rd party applications often make requests in the form:
http://www.thewebapplication.com/my.api?key=TheKey¶meter=SomeValue
These can be seen by a myriad of technologies (fiddler, traffic snoopers). Even worse these requests may be placed in Javascript and made available to everyone. How can you design an API system which helps to protect your clients' API keys?