I will make a node.js npm package for the API one day if the API proves useful.
So far I have a few bug reports/feature requests:
1) Stop violating HTTP/1.1. http://tools.ietf.org/html/rfc2616#section-14.1
If no Accept header field is present, then it is assumed that the
client accepts all media types. If an Accept header field is present,
and if the server cannot send a response which is acceptable
according to the combined Accept field value, then the server SHOULD
send a 406 (not acceptable) response.
Your server (not necessarily the code you wrote but maybe web server or Ruby stuff you are using) sends 406 if no accept: header is present. This is clearly a violation as it contradicts "If no Accept header field is present, then it is assumed that the client accepts all media types."
As a quick and dirty solution, you can say in your documentation that accept: */* header must be present because of a bug in such and such software you use.
2) Enhance your documentation. Your API expects HTTP requests with content-type 'application/x-www-form-urlencoded' and responds with application/json. But from your documentation it seems that API expects JSON passed in POST body, which is a different thing. I only could figure out by looking at your Ruby example.
3) Document your existing or planned private key recycling policy. You must either destroy, reuse or send your outdated private keys to API users. Otherwise you are going to end with verifying transactions for millions of keys.
0. US Govt makes bitcoin a legal tender.
1. Google Checkout and Paypal start to accept bitcoins using your API
2. Zillions of users request a bitcoin address to pay for a service but never pay and even don't record the generated addresses
3. Zillions of addresses (and corresponding private keys!) become stranded
4. Your service keeps storing zillions of key pairs generated 10 years ago and keeps looking for a transaction for any of them.
So I suggest:
a) to document default expiration time for addresses
b) to reuse expired addresses so your wallet.dat grows slower over time
c) to implement order cancellation API to allow manual expiration