The issues with the API are not entirely technical. It's not entirely fair to blame the API engineering team for problems there.

At one point, Etsy had an employee, a PM, who acted as a developer liaison. He left and was not replaced, and the contact became an engineer. They current crew does not appear to have any experience, flair for or interest in customer service.

Communication has always been a problem. This has always been a problem with Etsy (going on up to and coming down from Kalin). The API devs are inconsistent regarding warning about changes and making changes. Sometimes there will be an elaborate system to make sure everyone is prepared for some piece of data changing from "content" to ["content"] in three weeks. Other times, they do things like change the way OAuth signatures are calculated without warning.

Yes, that's right: after being asked for years to give more warning for changes which may cause service interruption or compatibility problems, Etsy moved their API off of Mashery to their own platform with no warning whatsoever.

Generally, when one requests something from the Etsy API team, the answer will be "No, that is impossible". For instance, a request for announcements to be made on a separate mailing list. The answer was that this was impossible. They did implement a change log, which is poorly maintained and incomplete. They release changes on Fridays at 4:30 PM, then leave for the weekend. This is actually a cultural issue at Etsy: they think their business is Mon-Fri, 9-5. They even have less forum moderators on the weekends! Rob Kalin has made this a point of pride, that they 'respect weekends'. Their employees' weekends, that is. This would be great if it made sense for a 24 hour, global web marketplace. There is no API support on weekends.

They recently released a shopping cart that requires customers to be authenticated through OAuth. Someone pointed out this isn't very reasonable for many applications, and we were told it was impossible because Etsy's system does not support anonymous carts. Any reasonable engineer could see how this could be done (a temp. ownership transferred to an account, I mean JFC). Someone pointed out that this is how Etsy's own site already functions, and I don't think there was even a response.

On the mailing list, questions such as this come up: http://groups.google.com/group/etsy-api-v2/browse_thread/thr...

The fact that Etsy did not even address this for three weeks says enough, does it not?

Technical changes at Etsy in general affect the API, and the API devs do not seem to notice these changes until users report problems. They claim to be doing TDD, unfortunately it seems the wrong tests are being written. One may experience failures such as avatar images being blank for a week straight after some change, and wonder what sort of poorly written test would not catch that.

There is no schema provided for any of the data that you can write, and validation rules are incompletely specified when they are available.

As for PHP, I do think it's an okay choice for templating and light scripting tasks. I believe a language with actual type checking would be a better choice - Python, Ruby, Java, anything - for a backend task such as this. It's is likely due to sloppy coding, but at different times Etsy has returned ints, floats, strings, and incorrectly formatted strings ("10.5", "10,20") for prices. The overall impression I get is of rather jumbled code beneath the hood.

The Etsy API is poorly organized conceptually, also. There is no reasonable map of relations between object types, and often the associations seem backwards (and are not transitive). That is, you might want info on a list of items, but instead you have to get a shop, then an item, then the info from there. As someone who has been around this for longer than the people working on the API team have been, it's clear that whomever is designing the API doesn't really understand how developers or customers use Etsy.

Then, there are the glitches. Say you're monitoring a stream of featured products. Everyonce in a while, there will be a blank space for like 5 hours. Did Etsy stop featuring items during that time? No, looks like their official site was working fine. Is there any explanation or acknowledgment as to why the API shows a gap of five hours? No, the API team probably didn't even notice, and reporting issues such as this is a complete waste of time as experience shows.

This is on top of the background issue, which is that the entire company is a mess and has always been a mess. My expectation is that they will be the Friendster or MySpace of this market, because Etsy really is that abysmal.