LINE既読APIの移行方法:2026年10月までにmarkAsReadへ切り替える
LINEのMark as read API(旧)から移行するには、Messaging APIのwebhookメッセージイベントで markAsReadToken を取得し、POST https://api.line.me/v2/bot/chat/markAsRead に渡します。新しいendpointは個別申請が不要で、Official Account Chatと併用できます。LINEが2026年10月末に終了するのは旧APIの新規申請受付であり、既存利用者の同日停止ではありません。
要点
- LINEは2026年5月18日、旧法人向けAPIの新規申請受付を10月末で終了すると告知しました。承認済みアカウントはその後も利用できます。
- 新endpointは、webhookメッセージイベントに含まれる不透明な
markAsReadTokenを受け取ります。ユーザーIDやmessage.idから生成する値ではありません。 POST /v2/bot/chat/markAsReadは指定メッセージと、それ以前のメッセージをまとめて既読にします。処理順と既読を付けるタイミングが重要です。- 新endpointはOfficial Account Chatと併用できます。旧APIは併用できないため、URLだけでなく運用フローも移行対象です。
- UnifyPortは一般LINEアカウント向けの別の受信経路を提供しますが、message-read APIもLINE公式の
markAsReadTokenも提供しません。
LINE既読APIの移行で何が変わるのか
LINEの2026年5月18日のお知らせは、10月のサービス終了告知ではありません。Mark as read API(旧)の新規申請を2026年10月末で締め切り、承認済みアカウントは引き続き利用可能としたうえで、将来の廃止を検討しているという内容です。新規実装にはMessaging APIの「メッセージを既読にする」手順が推奨されています。
2つの契約は異なるため、endpointの置換だけでは移行できません。
| 判断項目 | Mark as read API(旧) | Messaging API markAsRead |
|---|---|---|
| 利用条件 | 申請が必要な法人向けオプション | 個別申請は不要 |
| Chat機能 | Official Account Chatと併用不可 | 手動で既読にする場合はChatをオンにする |
| 入力 | 旧APIのユーザー単位の契約 | webhookイベントの markAsReadToken |
| 対象範囲 | 特定ユーザーのメッセージに既読を表示 | tokenのメッセージと、それ以前を既読にする |
| 新規開発 | 非推奨 | 公式推奨 |
LINE Official Account ManagerでChatがオフの場合、ユーザーからのメッセージは自動的に既読になります。その構成ではAPI callを追加する必要はありません。新endpointは、Chatをオンにしたまま、バックエンドが既読表示の時点を制御したいチーム向けです。
POST /v2/bot/chat/markAsReadへの移行手順
1. サポート運用における「既読」を定義する
ユーザーに既読を表示してよい業務イベントを決めます。キューへの受付、担当者が画面を開いた時点、自動処理が正式に引き受けた時点などが候補です。「webhookが到着した」と「人が読んだ」は同じではありません。1回のcallで複数メッセージが既読になる可能性があるため、コード変更前に基準を明文化します。
旧APIを呼ぶ全サービス、retry job、Official Account、環境を棚卸しし、Chat設定も記録してください。旧APIのドキュメントでは、旧機能の利用により自動既読が無効になり、Chatとも併用できないと説明されています。アカウント設定も移行状態の一部です。
2. webhookのread tokenを不透明な値として保存する
ユーザーがLINE Official Accountへメッセージを送ると、Messaging APIのメッセージイベントに message.markAsReadToken が含まれる場合があります。LINEはread tokenに有効期限がないとしていますが、referenceでは常に含まれる項目ではありません。欠落時は記録して未読のままにし、message.id から推測した値を使わないでください。
tokenはwebhook event ID、message ID、会話の担当、受信時刻、処理状態と関連付けて保存します。analytics labelやクライアント側logには出さないでください。channel access tokenではありませんが、LINEのwebhook契約から得た操作用の値です。
3. Messaging API endpointを呼び出す
実際に処理済みの地点に対応する最新tokenを使います。
curl -X POST "https://api.line.me/v2/bot/chat/markAsRead" \
-H "Authorization: Bearer ${LINE_CHANNEL_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"markAsReadToken":"30yhdy232..."}'
公式referenceでは、成功は空のJSONを伴う 200、無効なread tokenは 400、rate limitは毎秒2,000 requestです。成功時には指定メッセージだけでなく、それ以前のメッセージも既読になります。
4. 会話内の順序とretry境界を守る
既読処理は会話単位で直列化します。メッセージBがAより新しい場合、Bを既読にするとAも対象になります。同じ会話のtokenを複数workerが競合して処理すると、内部タスクが終わる前にユーザー画面へ既読が表示されるおそれがあります。
LINEへcallする前に「既読にする予定」の業務状態を保存し、応答も記録します。400 は契約またはデータのエラーとして調査します。timeoutやserver errorはLINEの最新共通retryガイドに従って回数を制限し、無限retryにはしません。どのtokenを、どの業務イベントで送ったか追跡できるようにします。
5. アカウント単位で受け入れテストを行う
非本番のOfficial Accountまたは管理されたテスト会話を使い、Chatをオンにして次を確認します。
- ユーザーメッセージのwebhookイベントに
markAsReadTokenが含まれる。 - 定義した業務チェックポイントまでは既読にならない。
- チェックポイントで新endpointが
200を返す。 - 対象とそれ以前のメッセージが既読になる。
- tokenがない、または無効な場合に、後続メッセージを誤って既読にしない。
- 移行後もOfficial Account Chatを利用できる。
新経路と有人Chatの両方が合格してから旧callerを削除します。10月は新規申請の締切であり、既存利用者が未検証の一斉切替を行う期限ではありません。
UnifyPortが適合する範囲
公式の markAsReadToken はLINE Official AccountとMessaging APIの機能です。LINEクライアントに公式の既読状態を表示する必要がある場合は、この公式経路を使います。
UnifyPortは別の要件を扱います。一般LINEアカウントを接続し、対応する受信会話を標準化された message.received イベントとしてバックエンドへ届けます。WhatsApp、Telegram、TikTok、Zalo、Xと同じenvelopeを使い、webhook endpointに signing_secret を設定した場合は X-Device-Timestamp と X-Device-Signature でHMAC-SHA256を検証します。
このイベントにはLINE公式の markAsReadToken は含まれません。UnifyPortの現行ドキュメントにもmessage-read APIはないと明記されています。Official Accountの既読workerとUnifyPortの受信workerは、tokenや前提を共有しない別機能として設計してください。
選択肢の背景は、Official AccountなしでLINEメッセージを受信する方法とLINEのanalytics pollingが受信ルーターではない理由で確認できます。
制約とトレードオフ
Official Accountの本人性、Chat、公式既読、rich menu、audience機能などLINEネイティブの機能が必要ならMessaging APIが適切です。新しい markAsRead endpointが、その既読要件の公式手段です。
非公式インターフェースはOfficial Account機能を付与できず、LINEの申請方針も変更できません。また、Official Accountの会話を既読にすることもできません。バックエンドへの到着は、人が読んだ証明でもありません。クロスチャネル受信キューだけが必要なら別に評価し、LINE画面に「既読」が必要なら公式endpointを構成に残してください。
FAQ
LINEのMark as read API(旧)は2026年10月に停止しますか?
その日付での停止は発表されていません。LINEは10月末で新規申請受付を終了しますが、承認済みアカウントは継続利用できます。将来の廃止は検討中で、移行が推奨されています。
新しいLINE markAsRead endpointに申請は必要ですか?
不要です。channel access tokenと、Messaging API webhookメッセージイベントで受け取る markAsReadToken を使います。
markAsReadはLINE Official Account Chatと併用できますか?
はい。Messaging APIで手動既読を使うにはChatをオンにします。Chatがオフなら、ユーザーからの受信メッセージは自動的に既読になります。
markAsReadTokenに有効期限はありますか?
LINEは現在、read tokenに有効期限はないと説明しています。それでも運用・データ保持方針に必要な期間だけ保存し、実際に確認する地点に対応したtokenを使用してください。
UnifyPortでLINE Official Accountのメッセージを既読にできますか?
できません。UnifyPortは接続したLINEアカウントの対応済み受信メッセージを届けますが、message-read APIもMessaging API公式の markAsReadToken も提供しません。
次のステップ
旧callerをLINE公式のメッセージを既読にするガイドへ対応付け、管理されたOfficial Accountで6項目の受け入れテストを実行してください。一般アカウントの受信ルーティングが別要件なら、UnifyPortのLINE認証ガイドを確認して第2の経路を設計します。
出典
以下のLINE公式情報を2026年7月25日に確認しました。