Update: December 30th, 2008
This post was published a long time ago on the Italian version of my blog and later moved here after the English blog opened. Please note that the following post can contain outdated information and (probably) multiple typos.
I have to admit I'm really frustrated with Technorati, in particular with its APIs. It's probably the worst API service I have ever developed with: let me explain why.
I'm not really a newbie in the web service field. I love XML stuff including feeds and APIs. I've developed many products and classes which interact with public web services via XML-RPC, SOAP, or REST based interfaces.
Technorati APIs are essentially unreliable. An API interface cannot take more than 10 seconds to return a response. If my website needs to send a query to Technorati, my visitor can't wait 15 seconds for a response! OK, there are many other ways I can improve my website, for instance with AJAX calls, but this is not the real problem!
I don't know where I could start to tell you how much I'm frustrated with Technorati APIs. OK, let's try to start from yesterday's experience!
I'm developing Zend_Service_Technorati library, part of the Zend Framework package. I'm really proud of it, Zend Framework is the best library package for PHP I have ever used, thus I want my class to be reliable, powerful and easy to use.
After the proposal has been approved, I started to collect test cases to drive development. This is what I had to deal with:
Cosmos claim option is out of office, try again later
From cosmos documentation:
claim: The default setting of 0 returns no user information about each weblog included in the result set when available.
Set this parameter to 1 to include Technorati member data in the result set when a weblog in your result set has been successfully claimed by a member of Technorati.
Unfortunately, for some reason Technorati decided this option doesn't work when type is weblog. Don't ask me why, that's the way it goes!
Before committing test cases, I decided to give another chance to the claim option. It wasn't the first time Technorati failed to return a response. For some other reason, it worked thus I had to create two test cases for the same configuration. Then I tried for the third time and the option didn't work again.
Technorati doesn't seem to know Google
A few minutes ago I decided to go ahead with development and create search test cases. I composed API URL in my browser and requested a search result for google keyword.
<result>
<query>google</query>
<querycount>0</querycount>
<rankingstart></rankingstart>
</result>
Gulp! This answer shocked me… Technorati doesn't have any post about Google?!? I tried again but unfortunately, each keyword returned 0 results.
OK, search interface is buggy, let me try with tag API. None, I'm sorry, dear developer, I don't have any post tagged as google. Probably Technorati doesn't love Google, I suppose, thus I tried with other common words. No, this was not the problem. web tag didn't work either!
Contact us… if you can
First, let me say I tried to contact Technorati three times via the support interface in the last nine months for these problems, but I never received any answer! I hope this post will have enough visibility to be taken into consideration by someone from the Technorati Office.
Because I don't want to criticize, I decided it was the time to try to contact Technorati for the fourth time. I haven't been really lucky with the default contact us interface, thus I decided to try the support website.
Let me log in before. Maybe they give me more attention if I provide them my identity, I thought. This is what happened when I tried to log in (more than six times).

This is not an error. This is what Technorati returned to me: a blank page! Definitely, this is not my lucky day…
Really frustrated, I decided to come back and try the API interface again. I composed a simple search for Google again: it worked! Cool, now let me try msn: it works! Great, I can work now, I thought.
Thus, I decided to start with an error test case, as usual. I composed the following URI: http://api.technorati.com/search?key=MY_API_KEY. It should generate a "missing query argument" error. This is what the request returned.

I opened source code. An Advanced Search page in HTML format was returned instead of a simple XML error: have a look at source.txt.