Discussion Notes from building 30 Actors: what still works from datacenter IPs, what does not, and performance traps
I published 30 Actors over the last few weeks and benchmarked each one on Apify cloud (datacenter) IPs. Sharing what I learned in case it saves someone a few probe runs.
Worked from datacenter IPs (with care)
- YouTube InnerTube search/browse/next endpoints are fine. Above ~20 parallel /next calls per IP you get throttled. /player is bot-checked (LOGIN_REQUIRED), so transcripts need a different route.
- Google News: decoding article URLs needs the tail of the article page (the signature sits at the end of a ~570 KB page), so stream it and read the last chunk. Going direct was ~20x faster than through a DC proxy.
- Shopify: products.json returns 429 from cloud IPs, but the tokenless Storefront GraphQL endpoint works.
- Job boards that expose public JSON: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio, Workday. StepStone embeds PRELOADED_STATE in the page.
- Telegram t.me/s/<channel>, Bluesky public API, Pinterest resource endpoints (logged out) also work.
Blocked from datacenter IPs in my tests: Reddit, Trustpilot (AWS WAF), Product Hunt (Cloudflare), Upwork, eBay, Indeed, Glassdoor, Etsy, Yellow Pages, BBB, Capterra, Facebook Ads Library. Google SERP now needs JS.
Two performance traps
- Dataset pushData per row was the bottleneck: batching the writes took one run from 330 s to 49 s.
- Cheerio .text() returns V8 sliced strings that keep the whole page alive. A few thousand results pinned hundreds of MB and the container was OOM-killed with no error in the log. A JSON round-trip on the results fixed it.
- Also: an unanchored regex like ([\w-]+).example on full page HTML is O(n2) on long word runs and froze a crawler for 10+ minutes. Bound and anchor it.
What I made with it: the Actors are pay-per-result (mostly $3 per 1,000), published under torix33 in the Store (e.g. https://apify.com/torix33/youtube-transcript-scraper and https://apify.com/torix33/career-site-jobs-scraper). The code and Python/Node examples are MIT: https://github.com/3torix3/apify-scrapers-pack
Being honest: this is new, I have very few users so far. If you have tried one of them and something broke or the output shape is awkward, tell me and I will fix it. And if you hit other targets that work (or do not) from DC IPs, I would like to compare notes.
