Our API is actually provided by a series of web services that any programming language can call.
To hide some of this complexity we have written a series of clients in different programming languages. However if your programming language isn't supported then you can follow these instructions to see how the web services work in order to write your own client. If you would like to make your client open source we would be happy to host it in our repository so others can also use it.
Please could you also tell us what language isn't supported, if enough people request it we will write a new version of the client in that language.
Signing a Web Service Request
The key part of making a request to our web services is to sign the request, as the signature prevents unauthorized parties using your account.
To do this you need to create a signature string, which contains every parameter including the application secret separated by the pipe ('|') character. However the parameters must be concatenated in the correct order, which you can find the for a particular method call by looking at the open source code.
This signature string must then be converted into ASCII before being hashed to MD5 and finally converted into a hex string to give the signature for the request.
Executing a Web Service Request
Every call to our web services consists of query string parameters two of which must be the application key and signature for the request. This information is represented by the key and sig parameters respectively.
Most string parameters should be URL encoded. Check our open source PHP client to see what parameters you should encode. This class also shows what parameters can be sent to our web services. To find out what these parameters do check out the associated PHP client documentation.
The best approach when creating a client for a different programming language is to simply translate each method you require from one of the existing open source clients and any associated methods into your desired language.
If you require anymore information on how to create a client you can contact us.