5
8 Comments

Spent a day reverse-engineering a Google API, shipped the product, made $0

Short version: the building was the easy part, and I badly underestimated everything after it.

I wanted a competitor ad research tool. Google's Ads Transparency Center has the data but no public API, so I mapped their internal endpoint by intercepting the requests the site makes to itself. A few things fell out of that:

  • Region codes are just ISO 3166-1 numeric + 2000. France is 250, so 2250.
  • There's a free text field that accepts a brand name or a domain, which removes the "go find the advertiser ID first" step that every competing tool makes you do.
  • Ad copy is hidden inside the creative renderer bundle as escaped hex. Un-escape it and you get the real HTML back, no headless browser needed. I had assumed that part was impossible.

Shipped it, priced it, published it. Revenue so far: $0.

Three things I got wrong:

1. I validated demand but not access.

I pulled the entire marketplace catalogue I was targeting, 13,214 listings with usage stats, and could read demand per niche straight off it. The median listing gets 4 users a month. The top 100 hold 64% of all demand. Useful.

What that does not tell you is whether anyone will buy from you. The incumbents in my niche have hundreds of thousands of runs and 4.8 star ratings. I have zero reviews. The demand was real. My access to it was not.

2. I assumed the hard part was technical.

It wasn't. Of the places I tried to post about it afterwards, two blocked me outright for having a new account. Not because of what I wrote, but because of what a new account posting links looks like from the outside. Distribution channels defend themselves against exactly the thing you are trying to do on day one.

(This community was one of them, and then Courtland manually promoted my account after I'd left a few comments. Which is sort of the whole lesson in miniature.)

3. The thing that actually worked was not talking about the product.

I published two things the same day: the product, and a technical writeup of the reverse-engineering behind it. The writeup got picked up. The product announcement would have gone nowhere.

Nobody searches for a product they don't know exists. People search for problems constantly.


One concrete thing I found while researching competitors, which I think generalises: one of them is charging 6.7x my price, and its own public description says it is bot-walled and returns empty results. It has real usage anyway. Being findable beats being good, at least for a while, and that is an uncomfortable thing to sit with when you have just spent a day making something work properly.

Genuinely curious from people further along: did you solve the first-five-customers problem with cold outreach, or by giving the thing away until someone vouched for you?

on September 20, 2026
  1. 3

    The point about validating demand but not access really resonates. I’ve found that people can clearly have the problem you’re solving, but that doesn’t mean they’ll discover or trust a new product yet. Distribution and credibility can end up being a bigger bottleneck than the product itself.

  2. 2

    I think the first few customers are usually a mix of both. Cold outreach helps you get in front of people who might actually have the problem, while giving the product away can remove the friction of trying something new. For me, the most valuable part is getting real users early — even if they don’t pay at first — because their feedback shows whether the product is actually solving a problem or just technically working.

  3. 2

    The catalogue of 13,214 listings measured demand, not whether a no-review result can sit in front of it. Take ten of the top listings and search the marketplace with phrases already on their public pages. Write down who ranks above an account with zero reviews. That hour tells you whether the next week is reviews, a narrower niche, or a different surface.

    A launch post from a brand-new account is a sample of one. The thing that actually moved this post was the slower order: a few specific comments in threads people already read, then the writeup. Same hours, earlier in the sequence, and the filters stop treating the account as disposable.

  4. 1

    Your 13,214-listing analysis is a useful demand signal, but I’d turn the first-five problem into a deliberately narrow experiment: pick one niche where the free-text search is materially better, manually recruit five operators who already run that workflow, and ask each to try one real query with you on a call. Track activation (first useful result), repeat use after a week, and one referral—not just signups. That separates access/credibility from whether the wedge is actually sticky. I’d keep the technical writeup as the acquisition surface and use the tool as the conversion step, since your results already suggest the reverse-engineering story earns attention better than a launch post.

  5. 1

    The undocumented endpoint is the risk I would price in before anything else. A product whose entire data source can vanish on one Google deploy is hard to build a durable business on, but it makes an excellent lead magnet for something sturdier you sell next to it. Your teardown out-performing your launch post is the actual finding here, so keep publishing the reverse-engineering work and treat the tool as what readers convert into.

  6. 1

    Your “validated demand but not access” point is the key risk. For an intercepted endpoint, I’d keep a fixture suite of representative queries and schema assertions, then wrap the adapter with rate-limit/backoff metrics and a circuit breaker. That turns a silent response change into an early, testable failure before it affects users.

  7. 1

    Reverse engineering an internal endpoint means the product can break on any Google deploy, and buyers who have been burned by exactly that know it. That is probably costing you more than pricing or positioning. The competitor with more usage is bot walled and still gets paid, which suggests people are not buying the data, they are buying the belief that it will still answer next month. So I would sell the maintenance rather than the feature: a public status page showing the endpoint has held for ninety days, and what happens if it breaks. Free text search instead of hunting an advertiser ID is genuinely better, it just cannot prove it will be there in March.

  8. 1

    The 6.7x competitor that admits it is bot-walled and still has usage is the annoying part. Un-escaping the hex so you get real HTML was the easy day. First five never came from a cold list for me, they came from people already pissed at the broken tool that week, and I just gave it to them until one of them said so to someone else. Your 13,214 catalogue tells demand, not who will open the message.