My Korean data scrapers on Apify hit 6,600+ runs and 75 users in 10 days. But there's a problem: if you're not on RapidAPI, most API consumers will never find you.
Apify is excellent for building and running scrapers. But its marketplace caters to a specific audience — data engineers and automation folks who already know Apify exists. RapidAPI, on the other hand, is where 4 million+ developers search when they need "an API for X."
I searched RapidAPI for Korean data APIs. The result? Almost nothing. One Naver Shopping API. Zero for Naver News, Naver Place, or Melon Charts. Complete blue ocean.
So I built a bridge.
The Architecture: Apify → Cloudflare Worker → RapidAPI
The idea is simple: a Cloudflare Worker sits between RapidAPI and Apify, translating REST requests into Actor runs.
Developer → RapidAPI → Cloudflare Worker → Apify Actor → Korean Data
Each Worker:
- Validates the
X-RapidAPI-Proxy-Secretheader (security) - Maps URL parameters to Apify Actor input
- Calls
run-sync-get-dataset-itemsfor instant results - Returns clean JSON
The Core Worker Logic (~20 Lines)
Here's the essential pattern, stripped down:
const ACTOR_ID = 'your-username~your-actor';
const APIFY_RUN_URL =
`https://api.apify.com/v2/acts/${ACTOR_ID}/run-sync-get-dataset-items`;
function validateRapidAPI(request: Request, env: Env): boolean {
const secret = request.headers.get('X-RapidAPI-Proxy-Secret');
return !env.RAPIDAPI_PROXY_SECRET || secret === env.RAPIDAPI_PROXY_SECRET;
}
async function callApify(
input: Record<string, unknown>,
env: Env,
timeout = 120
): Promise<Response> {
const url = `${APIFY_RUN_URL}?token=${env.APIFY_TOKEN}&timeout=${timeout}`;
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(input),
});
const data = await response.json();
return new Response(JSON.stringify({
success: true,
count: Array.isArray(data) ? data.length : 0,
data,
}), { headers: { 'Content-Type': 'application/json' } });
}
That's it. Each endpoint maps query parameters to Actor input and calls callApify(). The Worker handles CORS, error responses, and timeout configuration.
What I Deployed
Three Workers, three APIs, covering gaps that literally don't exist on RapidAPI:
| API | Endpoints | What It Does |
|---|---|---|
| Naver News | /search, /section, /ranking, /article | Korean news search, sections, trending rankings |
| Naver Place | /search | Korean business/restaurant search with reviews |
| Melon Chart | /chart, /search | Real-time K-pop charts and artist search |
Each one maps to an existing Apify Actor that's already battle-tested with thousands of runs.
The Economics: Why This Is Almost Free
The beauty of this stack:
- Cloudflare Workers: Free tier — 100K requests/day
- Apify: Pay-per-event costs are covered by RapidAPI pricing
- RapidAPI: Takes 25% commission
So my actual cost for adding this distribution channel? $0 infrastructure. The margins work out to roughly 50-60% after RapidAPI's cut and Apify's compute costs.
Compare that to running your own servers, managing uptime, handling billing... Cloudflare Workers as a proxy layer is essentially a free distribution multiplier.
Why Korean Data Is a Blue Ocean
I did competitive research before building this. On RapidAPI:
- "Naver" APIs: 1 result (Naver Shopping only)
- "Korean news" APIs: 0 results
- "K-pop chart" APIs: 0 results
- "Korean restaurant" APIs: 0 results
Meanwhile, K-pop is a global industry. Korean beauty and fashion brands are expanding worldwide. Researchers and businesses need Korean market data, and there's nowhere to get it via a simple REST API.
This is the definition of "build it and they might come" — except the demand signals are already there. My Naver Place scraper hit 17 users organically on Apify alone.
Lessons Learned
1. Same product, different shelf. The scrapers didn't change. The data didn't change. I just made them accessible to a different audience through a different marketplace.
2. Cloudflare Workers are the perfect proxy layer. Zero cold start, global edge network, generous free tier. For wrapping existing APIs, you can't beat it.
3. The real work is distribution, not building. I spent 10 days building 13 scrapers. The Cloudflare Workers took one evening. But getting discovered on multiple platforms could be worth more than building the next scraper.
Current Status
The Workers are deployed and tested (live Melon chart data flowing). I'm currently registering as a RapidAPI Provider to list all three APIs. The repos are public:
And the source Actors on Apify Store:
This is post #19 in my series documenting the journey from zero to revenue with Korean data scrapers. Previously: The Last Actor Goes Live
Top comments (0)