A Kakao Talk Channel page hands a plain HTTP client 200 OK, 4,198 bytes and zero words, with an Organization block in the head. Rendered, the same URL returns 33 words from a South Korean exit and from an American one, and 4 words from a Japanese one, every response a 200. We measured it on 28 September 2026. The setting for Kakao proxies is a residential exit pinned to Korea, a rendered fetch that waits for content, and a word count per country instead of a status check.
Kakao proxy means four things, and only one is about data
The US first page for "kakao proxies" is four different products wearing one word. A vendor page for buying proxies with Kakao Pay, the payment method. An r/kakaoFriends thread about proxy-buying services that ship Korean merchandise abroad. A CNCF case study about Kakao replacing kube-proxy in its Kubernetes clusters. And one vendor guide about reaching the KakaoTalk messenger from outside Korea with an anti-detect browser. The rest is a firewall thread, the Kakao login page, a Reuters story on the KakaoAI spin-off, investor relations and Wikipedia. The suggest box for "kakao scraper" is about KakaoPage, the webtoon store.
Nobody on the page fetches pf.kakao.com, which is where the data lives. Every business on KakaoTalk runs a Kakao Talk Channel with a public page at pf.kakao.com/_<id>: name, description, posts, coupons, a chat button. Brand monitoring in Korea, competitor promotions, coupon tracking and directory building read those pages. We picked Kakao's own Customer Center channel, pf.kakao.com/_SzxixaC, and fetched it seven times from three countries.
Without JavaScript the page is a 4,198-byte head with an Organization block
The plain fetch from a Korean exit returned 200 OK, 4,198 bytes, zero words of body, and a head that already describes the channel: the title, the description ("the Kakao Customer Center channel for users of Kakao services", in Korean), an og:title, a Twitter summary card and an Organization JSON-LD block. No canonical, no H1. The response also carries access-control-allow-origin: *, which is Kakao telling every browser on the web that this page may be read cross-origin; the same header sits on its robots.txt.
| Exit | No-JS words | Rendered words | H1 in render | Audit time (both passes) |
|---|---|---|---|---|
| South Korea | 0 | 33 | 카카오톡 채널 | 22.8 s |
| Japan | 0 | 4 | 카카오톡 채널 | 9.6 s |
| United States | 0 | 33 | 카카오톡 채널 | 11.6 s |
For a directory of channels, the head is enough and costs four kilobytes. For the posts and coupons, you need the browser, and that is where the exit starts to matter.
The render is exit-sensitive: 33 words from Korea and the US, 4 from Japan
From South Korea the rendered page weighed 935,265 bytes, took 5.0 seconds and produced 33 audited words, 114 in our Markdown conversion, with three headings and three images. From the United States, 33 words again. From Japan, the rendered pass came back with a 200, the H1 and 4 words: the app had not finished loading inside the capture window, and the page it left behind is a valid page with almost nothing in it. This is the failure mode we first documented on Bluesky, where two of four rendered passes returned a short page under a 200, and the rule is the same: count words per country, never trust the status.
Two settings fix it. Pin the exit to Korea, where the app's assets and API are closest and the render completed in every attempt. And wait on a content selector rather than on the load event, so the capture happens after the posts arrive; the web scraping API does that with a waitForSelector action. A rotating pool with no country will hand you a mix of 33-word and 4-word pages, all marked success.
robots.txt is two lines: everything allowed
pf.kakao.com/robots.txt is 23 bytes.
User-agent: *
Allow: /
No disallow, no sitemap, no crawler named. Kakao wants channel pages indexed and says so in the shortest possible file; Google's own index of pf.kakao.com is how we found channel ids for Kakao's business partner centre, a customer service line and a sportswear brand. Compare Instagram, which disallows everything and bans AI crawlers by name: the two networks sit at opposite ends of the same file.
Counting a gigabyte as 10^9 bytes, and using the per-GB prices on our pricing page:
| Fetch | Bytes per page | Pages per GB | Residential Basic $0.80/GB | Residential Premium $2.20/GB | Mobile $2.30/GB |
|---|---|---|---|---|---|
| Plain HTTP, head only (title, description, Organization) | 4,198 | 238,209 | $0.0000034 | $0.0000092 | $0.0000097 |
| Rendered, Korea (33 words) | 935,265 | 1,069 | $0.00075 | $0.00206 | $0.00215 |
Ten thousand channel heads cost three cents. Ten thousand rendered channel pages from a Korean exit cost $7.48 on residential Basic, and the Premium and Mobile lines return the same 33 words for three times the price; nothing in seven fetches asked about our address. The render is the expensive part, so keep it for the channels whose posts and coupons you actually track and read the rest as heads. For sizing from the page weight, how much proxy data you need runs the arithmetic.
The REST API reads a channel through an app key, for the channel's owner
Kakao Developers documents a Kakao Talk Channel REST API at kapi.kakao.com. Every request carries an Authorization: KakaoAK header with the app's REST API key or admin key, or a user access token from Kakao Login. The methods are about your own channel and your own users: GET /v2/api/talk/channels checks whether a logged-in user has added your channel, /v1/talkchannel/target_user_file manages customer files for targeted messages. The channel id in those calls, channel_public_id, is the suffix of the public URL, _ZeUTxl in Kakao's own example. There is no method that returns another channel's posts, and no oEmbed. For that, the public page is the only surface.
The Kakao Operation Policy, section 3, names what a proxy must not be used for on this network: selling, transferring or lending an account (item 1.5), massive or repeated account creation (item 1.8), and commercial content designed to attract visits, friend requests or likes by exploiting the system (item 2.19); section 4 adds that creating more than a certain number of accounts from the same information or device gets them all restricted. Reading a public channel page that robots.txt allows to everyone is none of that. Running accounts through proxies is, and we do not help with it.
The setting that works on Kakao
- Network: residential proxies, Basic line, $0.80/GB. Seven fetches from South Korea, Japan and the United States were all plain 200s; the Premium ($2.20/GB) and Mobile ($2.30/GB) lines returned the same 33 words.
- Fetch mode: rendered, waiting on a content selector. Without JavaScript the page is 4,198 bytes and 0 words (the head carries title, description and an Organization block); rendered from Korea it is 935,265 bytes and 33 words in 5.0 seconds.
- Country: South Korea, pinned. The render returned 33 words from Korea and the United States and 4 from Japan, all under a 200. Check the word count per exit and treat a short page as a retry, not a result.
- When the proxy is not enough: there is no Kakao collector in our catalogue. Use the web scraping API with rendering on and a
waitForSelectoraction, $0.001 per page, which returned the rendered Korean page in 5.0 seconds; for the two-view check the SEO audit API fetched this channel both ways from Korea in 22.8 seconds for $0.0012. - Free tier: every account gets $2 of free API usage per month, which at $0.00075 per rendered page is about 2,600 channel pages with their posts before you pay anything.
Korean exit, rendered with a wait, words counted per country, accounts left alone. That is the whole configuration for Kakao.