The API Unlock
I'd heard of eBay's apps, but I didn't realize I could build my own private one. I got to talking it through with Claude, we walked the API, and I was a kid in a candy store: individual order data, what each item sold for, what I paid in shipping and fees, all of it callable. Where had this been all my life?
I registered a developer keyset and moved listing creation onto the Sell APIs. Now a script takes the markdown my pipeline produces, builds the inventory record, attaches the R2-hosted photos, sets the category-required specifics, applies my shipping and return policies, and publishes, in batches. Twenty items that used to eat an afternoon go out in minutes, more consistent than I ever managed by hand.
Sharp edges
The APIs have their sharp edges, and it's worth naming them so you're not blindsided:
- Category-required "item aspects" differ by category. What one wants, the next doesn't.
- Service codes don't always match their documentation names. You will chase these.
- Transient errors just want a retry. So the script retries once automatically.
My script absorbs most of that now.
Pre-flight, before anything goes live
The other thing the API gave me is a pre-flight: I can validate a listing and see what's wrong before it goes live, and the API is far more informative about failures than the website or app ever is. Pre-flight passes, it publishes; pre-flight fails, I see exactly how and fix it from the feedback. After years of hitting "submit" and hoping, that alone felt like a superpower.
The one door still closed: sold data
There's still one thing I can't get through the API: sold listings. I can pull live/active pricing all day, but the historical sold data, the stuff that actually tells you what's worth buying, is walled off. A few third parties sell access, and eBay may too, for a price. Getting a reliable feed of 90-days-and-back sold comps is high on my list, and I'll write it up when I crack it.