Skip to content

Official regional API feasibility — Douyin, LINE, WeChat, Bilibili, Weibo, Xiaohongshu, Kuaishou (2026-10-15)

Research only (issue #68, first rule: the sourced feasibility matrix). This page records what each provider’s own developer documentation says about posting through an official API. It adds no adapter, no OAuth flow, no account, no registry change and no post. Every surface below stays manual_only in reachweaver/distribution_registry.json, and none is in the adapter matrix. No developer account was created, no console was opened, no terms were accepted and no provider API was called; the only network traffic was reading public documentation pages.

It builds on, and does not repeat, the regional channel catalog (#64) and the community and creator batch (which re-read the LINE Messaging API overview). The general rules for channel research are in DISTRIBUTION-GOVERNANCE.md.

  • Every page was fetched with curl -sL -A 'Mozilla/5.0' <url> and read as text. Pages were read between 23:57 on 2026-10-15 and the first minutes of 2026-10-16 (CEST); the Reviewed column gives the date on which the last page for that row was read.
  • A fact appears here only if it was visible in the fetched text of an official provider page, with that page’s URL. Short Chinese quotes carry an English translation, which is ours.
  • not verified (reason) means the page was unreachable, rendered only with JavaScript, needed a login, returned an error, or did not say. No scope name, quota, price or endpoint was inferred.
  • No row is a legal opinion, and no row says that the owner is or is not eligible: eligibility depends on facts (legal entity, country, account verification) that only the owner can supply.
Provider Registry id Jurisdiction Account type Eligible posting surface Scopes Official docs/terms Owner eligibility Rate/cost Content types Scheduling Data retention Reviewed Confirmation action Verdict
Douyin douyin China (Douyin Open Platform docs are zh-CN); service-agreement jurisdiction not verified (not read) Douyin user who authorizes the developer’s registered mobile or website app (OAuth 2.0 authorization code) The user’s own works: upload_video then POST https://open.douyin.com/api/douyin/v1/video/create_video/; a new video is reviewed and visible only to its author meanwhile video.create.bind (not video.create), requested under Capability Lab > “post content to Douyin on behalf of users”, plus user authorization create_video; publishing norms; issue’s solution URL: not verified (redirects to 404) Unknown. Capability Lab conditions: not verified (console login). SDK/H5 publishing: formal app, enterprise with registered capital of at least 500,000 and 1+ year, creation-tool/community/hardware/game apps only, no marketing content 75 works per user per app per day; default quota after approval, increases reviewed in 5 to 7 working days; price: not verified (not stated) Video up to 15 min and 4 GB (chunked above 300 MB); slides; live photo; title up to 1,000 characters with topics and @mentions No publish-time field in the create_video body; native scheduling: not verified (not stated) access_token 15 days, refresh_token 30 days (renewal up to 195 days); user can revoke; developer data rules: not verified (agreement not read) 2026-10-15 Response data.item_id, then platform review; owner confirms the public work in the Douyin app NO-GO
LINE Official Account line_official_account LY Corporation; pricing pages for Japan, Taiwan, Thailand and “other regions” LINE Official Account created with a Business ID, with a Messaging API channel enabled (provider choice is permanent) Messaging, not a public feed: chats with the account’s friends and groups (reply, push, multicast, narrowcast, broadcast) No OAuth user scope; the channel access token of the owner’s own Messaging API channel Send messages; pricing; Developers Agreement; development guidelines: not verified (HTTP 403) Unknown; the getting-started page describes a self-service Business ID and entry form; per-country plan availability: not verified (regional plan pages not read) Monthly free messages by plan (Japan example: 200 free; JPY 5,000 for 5,000; JPY 15,000 for 30,000 plus up to JPY 3 per extra message, excl. tax); reply messages not counted; over the limit sends fail Text, sticker, image, video, audio, location, imagemap, template, Flex; up to 5 message objects per request Sent when the API is called; no schedule parameter on the page; native Official Account Manager scheduling: not verified (Japanese-only pages not read) Agreement 8.2: user data only with explicit consent, for the permitted purpose, never outside the application; LINE User Data Policy: not verified (not read) 2026-10-16 Request ID (X-Line-Request-Id, named on the page for narrowcast); no public post URL exists, so the owner checks the account’s chat or statistics NO-GO as a feed publisher; CONDITIONAL opt-in messaging pilot (owner-gated)
WeChat Official Accounts wechat China (Tencent); jurisdiction clause: not verified (terms not read) Subscription account (公众号) or service account (服务号) Published articles: POST /cgi-bin/draft/add then POST /cgi-bin/freepublish/submit Account access_token, or a third-party platform’s authorizer_access_token with permission set 7 Publish guide; freepublish_submit; draft_add; call quotas Unknown. Since July 2025 personal-entity, unverified enterprise and non-verifiable accounts lose the publish APIs; subscription accounts need enterprise verification Daily limits per API in the account backend (publish limits not listed on the quota page); error 45009 when exceeded; 10 counter resets a month; price: not verified (not stated) news article (title up to 32 characters, content under 20,000 characters and 1 MB, images uploaded to WeChat first) or newspic (up to 20 images) Submission is asynchronous with no time parameter; native scheduling: not verified (not stated) not verified (not stated on the pages read) 2026-10-16 publish_id, then the PUBLISHJOBFINISH event or freepublish/get: status 0 with article_url = published; 2 to 4 = failed or rejected CONDITIONAL (owner-gated; only with an eligible verified account)
WeChat Channels wechat_channels China (Tencent) Channels (视频号) creator account; separate from Official Accounts No posting endpoint in the Channels API navigation; the listed APIs cover live records, showcase products, leads, live dashboards, data and local-life deals not verified (no posting API found) Channels developer docs Unknown not verified (no posting API found) not verified (no posting API found) not verified (not stated) not verified (not stated) 2026-10-16 Native only: the owner posts in Channels and keeps the native URL NO-GO
Bilibili bilibili China not verified (developer pages JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) Open platform: not verified (openhome.bilibili.com and open.bilibili.com return a JavaScript-only shell) Unknown not verified (JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) 2026-10-16 Native only: the owner uploads in the Bilibili creator center NO-GO
Weibo weibo China (SINA); jurisdiction clause: not verified (agreement not read) Weibo user who authorizes the developer’s app (OAuth) Not general posting: statuses/share shares a link from the app’s own verified domain; it is the only status write endpoint in the API index OAuth access_token; app review (unreviewed apps: 15 test accounts) statuses/share; API index; rate limits Unknown; app review required before posts reach non-test users Examples: 100 requests per authorized user per app per day; 30 posts per user per hour; 15,000 requests per IP per hour; paid commercial APIs exist Text up to 140 Chinese characters with one or more URLs on the app’s bound domain and no #topic#; optional JPEG/GIF/PNG under 5 MB No schedule parameter; native scheduling: not verified (not stated) The platform forbids third-party server-side storage of user data 2026-10-16 Response id/mid; owner checks the post natively NO-GO
Xiaohongshu xiaohongshu China Xiaohongshu user who authorizes the developer’s app (OAuth 2.0) None open: only basic_info is open; write_notes is planned basic_info (open); write_notes (planned, manual review, specific scenarios only) Scope list (last updated 2026-03-29) Unknown; sensitive scopes need a business-scenario statement, privacy-policy link and data-use commitment not verified (not stated) not verified (no posting API open) not verified (not stated) Data-use commitment required for sensitive scopes; retention: not verified (not stated) 2026-10-16 Native only: the owner posts in the app NO-GO
Kuaishou kuaishou China not verified (developer pages JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) Open platform: not verified (open.kuaishou.com and its OpenAPI page return a JavaScript-only shell) Unknown not verified (JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) not verified (JavaScript-only) 2026-10-16 Native only: the owner posts in the app NO-GO

Using these platforms today: manual-export writes a China-aware package for each of them (sourced limits, topic syntax, AI and ad declarations), which the owner posts by hand: see CHINA.md (2026-10-17).

Verdicts. NO-GO means: no ReachWeaver adapter, keep the native human handoff (manual-export package or the owner posting in the provider’s own app). CONDITIONAL means: an official write API exists, but it may be used only after the owner-gated steps below, and the matrix does not say the owner qualifies. No row is a GO, and no row is a ReachWeaver adapter, an account connection or a receipt.

Toutiao is not covered by the Douyin row. Nothing above says anything about a Toutiao or Toutiaohao posting API. toutiao stays manual_only with unverified scheduling until its own documentation is read.

  • Endpoint and scope. The create_video reference (the issue’s URL now redirects there) lists POST https://open.douyin.com/api/douyin/v1/video/create_video/, Scope video.create.bind, “需要用户授权” (user authorization required) and the permission path “能力管理 > 能力实验室 > 代替用户发布内容到抖音” (capability management > Capability Lab > post content to Douyin on behalf of users). The upload_video reference uses the same scope. The issue calls the scope video.create; the official page says video.create.bind.
  • Review before visibility. “创建抖音视频后, 会有一个审核过程, 期间只有自己可见” (after a video is created it goes through review, during which only the author can see it).
  • Limits from the error table. 2114007: “一个用户在一个应用下,一天最多发布75个作品” (a user may publish at most 75 works per app per day); 2114006: videos may not exceed 15 minutes; 28003017: quota used up; 28001018: the app does not have the capability. Upload: chunked upload is recommended above 50 MB and required above 300 MB, total size within 4 GB, mp4 and webm recommended.
  • Capability Lab is a test channel. The Capability Lab overview says lab capabilities are not formally launched, “可能会调整开放范围或下架” (may change scope or be withdrawn), that visibility differs per developer, and that application rules are on each capability’s page in the console. Those rules were not verified (console login).
  • Publishing norms. The publishing norms set admission for the SDK and H5 publishing capabilities: “不再向个体工商户类型主体开放” (no longer open to individual businesses), enterprises with “注册资本≥50万且注册时间≥1年” (registered capital of at least 500,000 and registered for at least one year; the currency is not stated), formal apps only, and only creation-tool, community, hardware-companion and game apps. Their usage rules require that the posting user be the original author and state “禁止发布的内容涉及商铺宣传、商品介绍、诱导分享等营销类内容” (content involving shop promotion, product introductions, induced sharing or other marketing is prohibited). Capabilities are withdrawn after violations or 90 consecutive days without posting. The share-and-publish page says publishing suits scenarios where users create their own content.
  • Auth. Login and authorization: authorization-code OAuth 2.0; code 10 minutes, access_token 15 days, refresh_token 30 days, renewable to 195 days; users can revoke in the app, and the platform periodically revokes non-compliant tokens. New apps start as test apps until they go live (create an app). Capability applications are reviewed in 5 to 7 working days (capability list).
  • Not verified: the issue’s content-posting solution page (/dop/solution/video redirects to 404), Capability Lab admission rules, pricing, the developer service agreement and its data-retention terms, native scheduling.
  • Why NO-GO. The server-side path is a test-stage permission with unseen admission rules; the documented publishing norms bar marketing content and individual businesses, and ReachWeaver’s purpose is promotion. Re-evaluate only if the owner has an eligible entity and app category and qualified review accepts the use case.

LINE Official Account — messaging, not feed publishing

Section titled “LINE Official Account — messaging, not feed publishing”
  • Send messages: “you can make your bot send messages to users”. Reply messages answer a user’s webhook event with its replyToken; push goes to one user, group or chat; multicast to a list of user IDs; narrowcast to an audience or demographic filter; broadcast to “all users who are friends with your LINE Official Account”. Up to five message objects per request. Narrowcast has a minimum recipient count so recipients cannot be inferred.
  • Consent. Broadcast reaches the users who added the Official Account as a friend, and push and multicast need the recipient’s user ID; messages to users who blocked the account are not counted. A reply needs the user’s own message or action. The Developers Agreement section 8.2 (last revision 3 February 2025) allows retrieving user data “only with the user’s explicit consent” and never using it outside the application. Contact lists, cold outreach and bought audiences are out of scope for ReachWeaver.
  • Cost. Pricing: every plan has a monthly free-message allowance; the Japan example is Communication (free, up to 200), Light (JPY 5,000, up to 5,000) and Standard (JPY 15,000, up to 30,000, then up to JPY 3 per additional message), excluding tax. Push, multicast, broadcast and narrowcast count per recipient; reply messages are not counted. Over the limit, the API returns an error and nothing is sent.
  • Setup. Getting started: register a Business ID, create the Official Account, enable the Messaging API in the Official Account Manager, and choose a provider, which “can’t” be changed afterwards.
  • Not verified: the development guidelines (HTTP 403), plan prices outside Japan, the LINE User Data Policy, request rate limits, native scheduled broadcasts.
  • Why no feed adapter. There is no public post, so the adapter matrix’s text-post model and a native post URL do not apply. A future messaging pilot would be a separate, owner-approved design for an existing opted-in audience, not a publisher.

WeChat Official Accounts — CONDITIONAL; WeChat Channels — NO-GO

Section titled “WeChat Official Accounts — CONDITIONAL; WeChat Channels — NO-GO”
  • Official Accounts. The publish guide and the draft guide list /cgi-bin/draft/add and /cgi-bin/freepublish/submit (plus get, batchget, getarticle and delete). The subscription and service publish guides both note: “2025年7月起,个人主体账号、企业主体未认证账号及不支持认证的账号将被回收以上接口的调用权限” (from July 2025, personal-entity accounts, unverified enterprise accounts and accounts that cannot be verified lose access to these APIs). The freepublish_submit reference marks subscription accounts “仅认证” (verified enterprise accounts only) and service accounts as callable.
  • Ambiguous by design. “errcode将为0,此时只意味着发布任务提交成功,并不意味着此时发布已经完成” (errcode 0 means only that the task was submitted, not that publishing finished); originality checks or platform review can still fail it. The result arrives as a PUBLISHJOBFINISH event with publish_status 0 (success, with article_url), 1 (publishing), 2 (originality failed), 3 (failed), 4 (rejected by review), 5 or 6 (later deleted or blocked). This maps onto ReachWeaver’s needs_review and reconcile path, which must stay intact.
  • Content. draft_add: news (title up to 32 characters, author up to 16, digest up to 120, content under 20,000 characters and 1 MB, JavaScript stripped, image URLs must come from WeChat’s upload API) or newspic (up to 20 images).
  • Quotas. Call quotas: per-API daily limits are shown in the account backend, 45009 when exceeded, ten counter resets a month, and higher limits for some APIs above 100k, 1M and 10M followers. The draft and publish APIs are not in that page’s table.
  • Channels. The Channels developer docs navigation lists access tokens and quotas, Channels Assistant APIs (live records and reservations, showcase products, leads, live dashboards, data) and local-life and shop APIs. No video-posting endpoint appears, so Channels stays a native handoff and is not reachable through the Official Account API.
  • Not verified: WeChat’s service terms and data-retention rules, native scheduling for either surface, whether a non-Chinese individual can obtain a qualifying account.

Bilibili, Weibo, Xiaohongshu, Kuaishou — NO-GO

Section titled “Bilibili, Weibo, Xiaohongshu, Kuaishou — NO-GO”
  • Bilibili and Kuaishou: their open-platform pages (openhome.bilibili.com, open.bilibili.com, open.kuaishou.com, open.kuaishou.com/platform/openApi) returned only a JavaScript shell to curl, so no posting API, scope or eligibility rule could be read. Nothing here says such an API does or does not exist; none is verified or authorized for the owner.
  • Weibo: the API index (updated 2025-05-09) lists statuses/share as the only status write endpoint. statuses/share is “第三方分享一条链接到微博” (a third party shares a link to Weibo): the text must contain a URL under the app’s bound security domain, may not contain #topic#, and must carry the acting user’s real IP. The rate-limit page says posts from an unreviewed app’s 15 test accounts are visible only to test accounts, warns that frequent calls not triggered by a user action can get the app and IP blocked even under the limits, and says “微博开放平台禁止第三方服务器端存储用户数据” (third parties may not store user data server-side). That is a link-share widget for a site’s own pages, not a general creator-posting API.
  • Xiaohongshu: the scope list says “当前仅开放 basic_info 一个 scope” (only the basic_info scope is open); write_notes is “规划中” (planned) and “需要人工审核,仅特定场景开放” (needs manual review, open only for specific scenarios). This supersedes nothing in the registry; it confirms the #64 entry.

Native scheduling versus ReachWeaver delivery

Section titled “Native scheduling versus ReachWeaver delivery”

The three layers in PLATFORM-MATRIX.md stay separate for every provider here:

Layer Status for the eight surfaces above
Platform-native scheduling (the owner schedules in the provider’s own app or console) Not verified for any of them. The registry keeps scheduling.mode: unverified.
API-delivered ReachWeaver post (an adapter sends an approved post) None. No adapter exists or is proposed by this page; policy.SUPPORTED_LIVE is unchanged (Bluesky, Mastodon, Telegram, LinkedIn).
Locally queued ReachWeaver post (calendar-plan --apply records a local due time) Not available: local due times apply only to the four text adapters. A distribution-plan or calendar-plan suggestion for these surfaces is a proposal, not a queue entry.

Zero reach guarantee. None of these layers, nor an API acceptance (an item_id, publish_id, request id or mid), says anything about how many people will see a post. Douyin and WeChat review content after submission, and LINE delivers only to opted-in friends. Any reach figure must come from the owner’s own native analytics.

The issue’s later rules, “implement the first authorized provider with mocked contract tests” and the legal/IP review, are not done. They need an owner-authorized developer account, which no agent may create or accept terms for. In order:

  1. Owner decision and facts. Choose whether any provider is worth pursuing, and supply the facts the docs make decisive: legal entity (individual or enterprise), registered country, and any existing verified Douyin, WeChat or LINE account.
  2. Developer account and app registration. The owner registers (Douyin developer platform, WeChat Official Account platform, or LINE Business ID and Official Account) and accepts that provider’s agreement personally. An agent never accepts terms on the owner’s behalf.
  3. Scope and capability approval. Douyin capability application (5 to 7 working days, Capability Lab rules visible only in the console); WeChat account verification; LINE Messaging API channel and a subscription plan with an explicit monthly message cap.
  4. Legal, IP and privacy review. Qualified review of the provider agreement, content and marketing rules (Douyin forbids marketing content), cross-border data handling, consent for messaging, media rights and the provider’s data-retention terms, plus the security review that any new adapter requires.
  5. Mocked contract tests for the first authorized provider only. Written against the reviewed official reference, offline, with the approval, dry-run, emergency-stop, credential-isolation and ambiguous-send reconciliation controls unchanged.
  6. First supervised receipt. An owner-run live send with the existing live flags, a native URL or equivalent confirmation, a receipt file under receipts/ and a scorecard update. Until then the matrix rows stay research.

Hacker News stays human-only and Reddit stays moderator-only; nothing on this page changes either rule.

Provenance: original editorial text with links to official provider pages; no third-party code, SDK text, account data or media copied.