XML-RPC Web Service

There is an XML-RPC web service located at the following URL:

http://www.upcdatabase.com/xmlrpc

This is the new API -- the old API is now deprecated. Certain documentation and example code will continue to be here (further down the page) until it's completely taken out of service (which won't be long).

The first thing you'll need is an account on the web site. Then you'll need to get an RPC access key assigned, which can be done on the User Info page. The key is a 40-character hexadecimal string. It is not case-sensitive.

This service, and the data provided by it, is licensed for PERSONAL USE ONLY, and may not be used for commercial purposes, NOR REDISTRIBUTED IN ANY FORM without prior written consent. For questions regarding commercial licensing, please contact me at webmaster@upcdatabase.com. I can't guarantee an answer, or even a response, but I do my best...

Please make yourself aware of the Web Site and RPC Terms of Service (available here and here, respectively), before using this service.

Each XML-RPC method takes a single parameter -- an XML-RPC struct. That struct contains further named parameters specific to the method. Each method returns a single struct, with named values providing any necessary status messages, and the answer to the query, if available. The one named parameter that almost all methods require is "rpc_key". Pass that on every call, and you can't go wrong. If you're having trouble getting things working, though, the "test" method does not require the rpc_key parameter, and returns a hashmap of a random assortment of data. This has been useful to me many times when testing, and will probably be so for you if you're having trouble.

Once you can call "test" then you should move on to "help". This method will return (a struct containing) help text listing every available method, what they do, and what parameters are required.

This Perl script takes the method name on the command-line first, followed by key-value pairs. The script already handles passing your RPC key (assuming you substitute your own in the script). Extra parameters depend on the method being called.

Here are all of the coding examples I have so far. I'll add more as I get them. So far, it's my code, or code I adjusted for the new API from previous user submissions. I could use additional examples in Java, Python, C#, VB, or anything else you think others might benefit from.

More detail on the XML-RPC standard is available at The XML-RPC Home Page.

Old RPC API Examples

These examples are for the old API (at http://www.upcdatabase.com/rpc). They won't work with the current API, but may be useful for those unfamiliar with XML-RPC, until we have a more complete set of examples for the new API. Most of this code was submitted by users of the site, and I can't provide support for it.