# Messaging APIリファレンス

# 共通仕様

Messaging APIにおけるエンドポイントのドメイン名、リクエストが成功・失敗した際のレスポンス、レート制限などの共通仕様です。


# ドメイン名

Messaging APIでは、エンドポイントによってドメイン名が異なります。利用時は注意してください。

ドメイン名 エンドポイント
api-data.line.me
api.line.me 上記以外のエンドポイント

# レート制限

Messaging APIでは、チャネル単位かつAPI機能(エンドポイント)ごとに以下のレート制限が適用されます。レート制限が適用される範囲について詳しくは、「レート制限の範囲」を参照してください。

レート制限を超えてリクエストを送信しないでください

レート制限を超えて送信を行った場合、429 Too Many Requestsが返却され、エラーとなります。Messaging APIを使ったLINEボットを開発する際は、レート制限を含め、Messaging API開発ガイドラインに従ってください。

エンドポイント レート制限
60リクエスト/時
60リクエスト/分
1,000リクエスト/分
100リクエスト/時 ※
3リクエスト/時
200リクエスト/秒
100リクエスト/秒
370リクエスト/秒
上記以外のエンドポイント 2,000リクエスト/秒

LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。

# レート制限の範囲

Messaging APIでは、レート制限をチャネル単位かつAPI機能(エンドポイント)ごとに適用します。レート制限の範囲について、以下の点に注意してください。

  • エンドポイントのURLが同じであっても、HTTPメソッドが異なれば別のエンドポイントとみなします。
  • レート制限は、URL中のパラメータの内容や、リクエストボディの内容を区別せずに適用されます。
  • レート制限は、エンドポイントの呼び出し元のIPアドレスの違いを区別せずに適用されます。
  • 同じLINE公式アカウントに対するエンドポイントの呼び出しであっても、チャネルが異なる場合はチャネルごとに独立してレート制限が適用されます。

# 同時処理数の制限

ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId)単位での同時処理数の制限があります。

下記のエンドポイントで同時に処理されているリクエストの合計が、同時処理数としてカウントされます。

エンドポイント 同時処理数の上限
10

同時処理数の上限を超えるリクエストに対しては、ステータスコード429 Too Many Requestsのエラーが返ります。エラーを受け取った場合は、しばらく時間をおいてから再度リクエストをしてください。

処理中のリクエストの数は、以下のエンドポイントのレスポンスに含まれるjobsプロパティで確認できます。ジョブのステータス(jobs[].jobStatusプロパティ)が待機中(QUEUED)、もしくは実行中(WORKING)の場合に、同時処理数として計上されます。


# ステータスコード

APIコールの後で、以下のHTTPステータスコードが返されます。ステータスコードの説明は、特に断りがない限り、HTTP status code specification (opens new window)に準拠しています。

ステータスコード 説明
200 OK リクエストが成功しました。
400 Bad Request リクエストに問題があります。
401 Unauthorized 有効なチャネルアクセストークンが指定されていません。
403 Forbidden リソースにアクセスする権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。
404 Not Found プロフィール情報を取得できませんでした。次のような理由が考えられます。
  • 対象のユーザーIDが存在していない。
  • ユーザーがプロフィール情報の取得に同意していない。
  • ユーザーが対象のLINE公式アカウントを友だち追加していない。
  • ユーザーが対象のLINE公式アカウントを友だち追加した後にブロックした。
詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。
409 Conflict 同じリトライキーを持つAPIリクエストがすでに受理されています。詳しくは、「失敗したAPIリクエストを再試行する」を参照してください。
410 Gone 利用できなくなったリソースにアクセスしています。
413 Payload Too Large リクエストのサイズが上限の2MBを超えています。リクエストのサイズを2MB以下にしてリクエストしなおしてください。
415 Unsupported Media Type アップロードしようとしたファイルのメディア形式はサポートされていません。
429 Too Many Requests
  • APIコールのレート制限を超過しました。
  • 同時処理数の制限を超過しました。
  • 無料メッセージ通数を超過しました。
  • 追加メッセージ数の上限目安を超過しました。
無料メッセージ通数や、追加メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。
500 Internal Server Error 内部サーバーのエラーです。

# レスポンスヘッダー

Messaging APIのレスポンスには以下のHTTPヘッダーが含まれます。

レスポンスヘッダー 説明
X-Line-Request-Id リクエストID。各リクエストごとに発行されるIDです。
X-Line-Accepted-Request-Id
含まれないことがあります
同じリトライキーを使ってすでにリクエストが受理されている場合、そのリクエストのx-line-request-idを示します。詳しくは、「APIリクエストを再試行する」を参照してください。

# エラーレスポンス

エラー発生時は、以下のJSONデータを含むレスポンスボディが返されます。

message

String

エラー情報を含むメッセージ。詳しくは、「エラーメッセージ」を参照してください。

details

Array

含まれないことがあります

エラー詳細の配列。配列が空の場合は、レスポンスに含まれません。

details[].message

String

含まれないことがあります

エラーの詳細。特定の状況ではレスポンスに含まれません。

「オーディエンス管理」のエンドポイントに関するエラーの詳細については、「オーディエンス管理に関するエラーの詳細」を参照してください。

details[].property

String

含まれないことがあります

エラーの発生箇所。リクエストのJSONのフィールド名やクエリパラメータ名が返ります。特定の状況ではレスポンスに含まれません。

エラーレスポンスの例

# エラーメッセージ

エラーのJSONレスポンスのmessageプロパティに含まれる、主なエラーメッセージは以下のとおりです。

メッセージ 説明
The request body has X error(s) リクエストボディのJSONデータにエラーがありました。Xの部分にエラーの数が表示されます。詳細はdetails[].messageプロパティとdetails[].propertyプロパティに含まれます。
Invalid reply token 応答メッセージを送る際にreplyTokenで指定した応答トークンが無効です。次のような理由が考えられます。
  • 有効期限が切れた応答トークンを使って応答メッセージを送った。
  • 使用済みの応答トークンを使って応答メッセージを送った。
The property, XXX, in the request body is invalid (line: XXX, column: XXX) リクエストボディに無効なプロパティが指定されていました。XXXの部分に具体的な行と列が表示されます。
The request body could not be parsed as JSON (line: XXX, column: XXX) リクエストボディのJSONデータを解析できませんでした。XXXの部分に具体的な行と列が表示されます。
The content type, XXX, is not supported APIでサポートされていないコンテンツタイプがリクエストされました。
Authentication failed due to the following reason: XXX APIが呼び出されたときに認証に失敗しました。XXXの部分に理由が表示されます。
Access to this API is not available for your account 実行権限がないAPIを呼び出しました。
Failed to send messages メッセージの送信に失敗しました。指定したユーザーIDが存在しない場合などにこのエラーが発生します。
You have reached your monthly limit.
  • 無料メッセージ通数を超過しました。
  • 追加メッセージ数の上限目安を超過しました。
無料メッセージ通数や、追加メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。
Not found プロフィール情報を取得できませんでした。次のような理由が考えられます。
  • 対象のユーザーIDが存在していない
  • ユーザーがプロフィール情報の取得に同意していない
  • ユーザーが対象のLINE公式アカウントを友だち追加していない
  • ユーザーが対象のLINE公式アカウントを友だち追加した後にブロックした
詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。

# その他の共通仕様

# リクエストボディのプロパティに指定するURLのエンコードについて

プロパティにURLを指定する場合は、ドメイン名、パス、クエリパラメータ、フラグメントはUTF-8を用いてパーセントエンコード (opens new window)してください。

たとえば、以下の構成要素を持つURIを指定する場合は、 https://example.com/path?q=%E3%81%8A%E3%81%AF%E3%82%88%E3%81%86#%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AFとします。

スキーム ドメイン名 パス クエリパラメータ フラグメント
キー
https example.com /path q おはよう こんにちは

# Webhook

友だち追加やユーザーからのメッセージ送信のようなイベントが発生すると、LINEプラットフォームからWebhook URL(ボットサーバー)にHTTPS POSTリクエストが送信されます。

Webhook URLはチャネルごとにLINE Developersコンソールで設定します。

イベント処理を非同期化することを推奨します

HTTP POSTリクエストの処理が後続のイベントの処理に遅延を与えないよう、イベント処理を非同期化することを推奨します。

LINEプラットフォームのIPアドレスは開示していません

Webhookリクエスト送信元のLINEプラットフォームのIPアドレスは開示していません。セキュリティの担保はIPアドレスによるアクセス制御ではなく、署名の検証で実施してください。

# リクエストヘッダー

x-line-signature

署名の検証に使う署名

リクエストヘッダーのフィールド名は大文字小文字を区別せずに扱ってください

リクエストヘッダーのフィールド名は、大文字・小文字の表記が予告なく変更される可能性があります。Webhookを受け取るボットサーバー側では、ヘッダーフィールド名の大文字小文字を区別せずに扱ってください。*1

変更前 変更後
ヘッダーフィールド名の例 X-Line-Signature x-line-signature

*1 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 (opens new window)


# リクエストボディ

リクエストボディは、Webhookイベントを受信すべきボットのユーザーIDとWebhookイベントオブジェクトの配列を含むJSONオブジェクトです。

destination

String

Webhookイベントを受信すべきボットのユーザーID。ユーザーIDの値は、U[0-9a-f]{32}の正規表現にマッチする文字列です。

events

Array

Webhookイベントオブジェクトの配列。LINEプラットフォームからの疎通確認のために、Webhookイベントオブジェクトを含まない空配列が送信される場合があります。


# レスポンス

LINEプラットフォームから送信されるHTTP POSTリクエストをボットサーバーで受信したときは、ステータスコード200を返してください。

注意
  • LINEプラットフォームから送信されるHTTP POSTリクエストの受信に失敗した場合でも、このリクエストを再度受け取ることができます。詳しくは、「受け取りに失敗したWebhookを再送する」を参照してください。

  • LINEプラットフォームから疎通確認のために、Webhookイベントが含まれないHTTP POSTリクエストが送信されることがあります。この場合も、ステータスコード200を返してください。

    Webhookイベントが含まれないHTTP POSTリクエストの例:

    {
      "destination": "xxxxxxxxxx",
      "events": []
    }
    

# 署名を検証する

ボットサーバーにWebhookのリクエストが届いたら、Webhookイベントオブジェクトを処理する前に、リクエストヘッダーに含まれる署名を検証してください。署名の検証は、開発者のボットサーバーに届いたリクエストが「LINEプラットフォームから送信されたWebhookか」および「通信経路で改ざんされていないか」などを確認するための重要な手順です。

詳しくは、『Messaging APIドキュメント』の「Webhookの署名を検証する」を参照してください。

署名検証の例

# Webhookイベントオブジェクト

LINEプラットフォームで生成されるイベントを含むJSONオブジェクトです。

これらのイベントオブジェクトのプロパティは、値が存在しない場合があります。値が存在しないプロパティは、生成されるイベントオブジェクトに含まれません。

1つのWebhookに複数のWebhookイベントオブジェクトが含まれる場合があります

LINEプラットフォームから送信されるWebhookには、複数のWebhookイベントオブジェクトが含まれる場合があります。また1つのWebhookにつき一人のユーザーとは限らず、Aさんからのメッセージイベントと、Bさんからのフォローイベントが同じWebhookに入ることもあります。

複数のWebhookイベントオブジェクトを含むWebhookを受信した場合も、ボットサーバーは適切な処理を行えるようにしてください。詳しくは、Webhookのリクエストボディを参照してください。

Webhookイベントオブジェクトの例


# 共通プロパティ

以下のプロパティはWebhookイベントオブジェクトの共通プロパティです。

type

String

イベントのタイプを表す識別子

mode

String

チャネルの状態。

  • active:チャネルがアクティブです。このWebhookイベントを受信したボットサーバーから、応答メッセージやプッシュメッセージなどを送信できます。
  • standby:チャネルが待機状態です。チャネルの状態がstandbyのときは、Webhookに応答メッセージを送るための応答トークンは含まれません。チャネルの状態がstandbyになるタイミングについて詳しくは、『モジュールドキュメント』の「Webhookイベントの受信」を参照してください。
チャネルの状態がstandbyのときは、メッセージの送信を控えてください

チャネルの状態がstandbyのときは、受信したWebhookイベントに対してモジュールがメッセージなどで応答している可能性があります。ユーザーとモジュールがやりとりをしている最中に、ボットからもメッセージが送信されるとユーザーの混乱を招きます。そのため、modeプロパティがstandbyのWebhookイベントを受信したボットサーバーはメッセージの送信を控えてください。

timestamp

Number

イベントの発生時刻。UNIX時間(ミリ秒)で返されます。再送されたWebhookの場合でも、再送された時刻ではなく、イベントの発生時刻を表します。

Webhookの再送が有効な場合はtimestampを確認してください

Webhookの再送が有効である場合、Webhookイベントの発生順序と、ボットサーバーに到達する順序が大きく崩れる可能性があります。これが問題になる場合は、timestampを確認することによって、前後関係を確認してください。

source

Object

含まれないことがあります

イベントの送信元情報を含むユーザーグループトーク、または複数人トークオブジェクト。

このプロパティは、アカウントの連携に失敗した場合、アカウント連携イベントには含まれません。

webhookEventId

String

WebhookイベントID。Webhookイベントを一意に識別するためのID。ULID形式の文字列になります。

deliveryContext.isRedelivery

Boolean

Webhookイベントが再送されたものかどうか。詳しくは、「再送されるWebhook」を参照してください。

  • true:再送されたWebhookイベントです。
  • false:初めて送られたWebhookイベントです。

# 送信元ユーザー

type

String

user

userId

String

送信元ユーザーのID

送信元ユーザーの例

# 送信元グループトーク

type

String

group

groupId

String

送信元グループトークのグループID

userId

String

含まれないことがあります

送信元ユーザーのID。メッセージイベントにのみ含まれます。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみuserIdに含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。

送信元グループトークの例

# 送信元複数人トーク

type

String

room

roomId

String

送信元複数人トークのトークルームID

userId

String

含まれないことがあります

送信元ユーザーのID。メッセージイベントにのみ含まれます。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみuserIdに含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。

送信元複数人トークの例


# メッセージイベント

ユーザーから送信されたメッセージを含むWebhookイベントオブジェクトです。メッセージのタイプに対応するメッセージオブジェクトが、messageプロパティに含まれます。メッセージイベントには応答できます。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

message

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

message

Object

メッセージの内容を含むオブジェクト。メッセージには以下のタイプがあります。

# テキスト

送信元から送られたテキストを含むメッセージオブジェクトです。

id

String

メッセージID

type

String

text

quoteToken

String

メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

text

String

メッセージのテキスト

  • エンドユーザーがLINE絵文字を送信した場合は、(hello)(love)のように、LINE絵文字が文字列で含まれます。LINE絵文字の詳細は、emojisプロパティで確認できます。
  • エンドユーザーがメンションした場合は、@exampleのように、送信相手のLINEアカウントの表示名が文字列で含まれます。メンションの詳細は、mentionプロパティで確認できます。

emojis

Array

含まれないことがあります

1個以上のLINE絵文字オブジェクトの配列。textプロパティにLINE絵文字が含まれる場合のみ、メッセージイベントに含まれます。

送信されたLINE絵文字がemojisプロパティに含まれないことがあります
  • Android版LINEから送信されたデフォルトのLINE絵文字は、含まれません。
  • Unicodeで定義された絵文字や古いバージョンのLINE絵文字は、含まれないことがあります。

emojis[].index

Number

テキストの先頭を0とした、textプロパティ内の絵文字の開始位置。

emojis[].length

Number

LINE絵文字の文字列の長さ。LINE絵文字(hello)であれば、7が長さになります。

emojis[].productId

String

LINE絵文字の集合を示すプロダクトID。プロダクトIDの例として、「LINE絵文字」を参照してください。

emojis[].emojiId

String

プロダクトID内のLINE絵文字のID。LINE絵文字のIDの例として、「LINE絵文字」を参照してください。

mention

Object

含まれないことがあります

メンションの情報を含むオブジェクト。textプロパティにメンションが含まれる場合のみ、メッセージイベントに含まれます。

mention.mentionees[]

Array of objects

1個以上のメンションオブジェクトの配列。

最大メンション数:20

mention.mentionees[].index

Number

テキストの先頭を0とした、textプロパティ内のメンションの開始位置。

mention.mentionees[].length

Number

メンションの長さ。@exampleであれば、8が長さになります。

mention.mentionees[].type

String

メンションの対象。

  • user:ユーザーまたはボット
  • all:グループ全体

mention.mentionees[].userId

String

含まれないことがあります

メンションされたユーザーまたはボットのユーザーID。mention.mentionees[].typeuserの場合にのみ含まれます。メンションされたのがユーザーの場合は、LINE公式アカウントがプロフィール情報を取得することに、ユーザーが同意しているときにのみ含まれます。

mention.mentionees[].isSelf

Boolean

含まれないことがあります

Webhookイベントを受信したボット(destination)に対するメンションかどうか。mention.mentionees[].typeプロパティの値がuserのときのみ含まれます。

  • true:Webhookイベントを受信したボットに対するメンションである。
  • false:他のユーザーに対するメンションである。

詳しくは、『Messaging APIドキュメント』の「ボットへのメンションを含むメッセージが送信されたときのWebhook」を参照してください。

quotedMessageId

String

含まれないことがあります

引用されたメッセージのメッセージID。過去のメッセージを引用している場合にのみ含まれます。

テキストメッセージの例

# 画像

送信元から送られた画像を含むメッセージオブジェクトです。

id

String

メッセージID

type

String

image

quoteToken

String

メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

contentProvider.type

String

画像ファイルの提供元。

  • line:LINEユーザーが画像ファイルを送信しました。画像ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。
  • external:画像ファイルのURLはcontentProvider.originalContentUrlプロパティに含まれます。なお、画像ファイルの提供元がexternalの場合、画像ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。

contentProvider.originalContentUrl

String

含まれないことがあります

画像ファイルのURL。contentProvider.typeexternalの場合にのみ含まれます。画像ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。

contentProvider.previewImageUrl

String

含まれないことがあります

プレビュー画像のURL。contentProvider.typeexternalの場合にのみ含まれます。プレビュー画像が置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。

imageSet.id

String

含まれないことがあります

画像セットID。複数の画像を同時に送信した場合のみ含まれます。

imageSet.index

Number

含まれないことがあります

同時に送信した画像セットの中で、何番目の画像かを示す1から始まるインデックス。複数の画像を同時に送信した場合のみ含まれます。ただし送信元がAndroid版LINE 11.15以前の場合は含まれません。

Webhookが届く順序は不定です

ユーザーが複数の画像を同時に送信すると、LINEプラットフォームからボットサーバーにWebhookイベントが複数送られてきます。このときWebhookの順序は不定ですので、imageSet.indexの値の順序で届くとは限りません。

imageSet.total

Number

含まれないことがあります

同時に送信した画像の総数。同時に2つの画像を送信した場合は2です。複数の画像を同時に送信した場合のみ含まれます。ただし送信元がAndroid版LINE 11.15以前の場合は含まれません。

画像メッセージの例

# 動画

送信元から送られた動画を含むメッセージオブジェクトです。トーク画面に表示されている画像はプレビュー画像で、画像をタップすると動画が表示されます。

id

String

メッセージID

type

String

video

quoteToken

String

メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

duration

Number

含まれないことがあります

動画ファイルの長さ(ミリ秒)

contentProvider.type

String

動画ファイルの提供元。

  • line:LINEユーザーが動画ファイルを送信しました。動画ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。
  • external:動画ファイルのURLはcontentProvider.originalContentUrlプロパティに含まれます。なお、動画ファイルの提供元がexternalの場合、動画ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。

contentProvider.originalContentUrl

String

含まれないことがあります

動画ファイルのURL。contentProvider.typeexternalの場合にのみ含まれます。動画ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。

contentProvider.previewImageUrl

String

含まれないことがあります

プレビュー画像のURL。contentProvider.typeexternalの場合にのみ含まれます。プレビュー画像が置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。

動画メッセージの例

# 音声

送信元から送られた音声を含むメッセージオブジェクトです。

id

String

メッセージID

type

String

audio

duration

Number

含まれないことがあります

音声ファイルの長さ(ミリ秒)

contentProvider.type

String

音声ファイルの提供元

  • line:LINEユーザーが音声ファイルを送信しました。音声ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。
  • external:音声ファイルのURLはcontentProvider.originalContentUrlプロパティに含まれます。なお、音声ファイルの提供元がexternalの場合、音声ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。

contentProvider.originalContentUrl

String

含まれないことがあります

音声ファイルのURL。contentProvider.typeexternalの場合にのみ含まれます。音声ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。

音声メッセージの例

# ファイル

送信元から送られたファイルを含むメッセージオブジェクトです。ファイルのバイナリデータは、メッセージIDを指定してAPIを呼び出すことで取得できます。詳しくは、「コンテンツを取得する」を参照してください。

id

String

メッセージID

type

String

file

fileName

String

ファイル名

fileSize

Number

ファイルサイズ(バイト)

ファイルメッセージの例

# 位置情報

送信元から送られた位置情報データを含むメッセージオブジェクトです。

id

String

メッセージID

type

String

location

title

String

含まれないことがあります

タイトル

address

String

含まれないことがあります

住所

latitude

Decimal

緯度

longitude

Decimal

経度

位置情報メッセージの例

# スタンプ

送信元から送られたスタンプデータを含むメッセージオブジェクトです。LINEの基本的なスタンプとスタンプIDについては、スタンプを参照してください。

スタンプ画像は取得できません

ユーザーが送信したスタンプのパッケージIDやスタンプIDなどはWebhookで取得できますが、スタンプ画像そのものを取得することはできません。

スタンプアレンジ機能には対応していません

Messaging APIは、現時点ではスタンプアレンジ機能に対応していないため、どんなスタンプを組み合わせたかという情報は取得できません。ユーザーがスタンプアレンジ機能を用いてスタンプメッセージを送った場合、Webhookでは一律で以下のスタンプ情報が届きます。

  • パッケージID:30563
  • スタンプID:651698630
  • スタンプのリソースタイプ:STATIC

id

String

メッセージID

type

String

sticker

quoteToken

String

メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

packageId

String

パッケージID

stickerId

String

スタンプID

stickerResourceType

String

スタンプのリソースタイプ。以下のいずれかの値です。

  • STATIC:静止画スタンプ
  • ANIMATION:アニメーションスタンプ
  • SOUND:サウンドスタンプ
  • ANIMATION_SOUND:アニメーション+サウンドスタンプ
  • POPUP:ポップアップスタンプまたはエフェクトスタンプ
  • POPUP_SOUND:ポップアップ+サウンドスタンプまたはエフェクト+サウンドスタンプ
  • CUSTOM:カスタムスタンプ。ユーザーが入力した任意のテキストは取得できません。
  • MESSAGE:メッセージスタンプ
  • NAME_TEXT:カスタムスタンプ(廃止)
  • PER_STICKER_TEXT:メッセージスタンプ(廃止)
stickerResourceTypeについて

今後、新しいリソースタイプが予告なく追加される可能性があります。将来、従来と異なるリソースタイプを受信しても不具合が発生しないように、サーバーを実装してください。

keywords

Array of strings

含まれないことがあります

スタンプを表すキーワード。最大15個の文字列が含まれる配列です。16個以上のキーワードを持つスタンプの場合は、その中からランダムに15個のキーワードを返します。そのため同じスタンプでも、異なるキーワードが返ることがあります。

keywordsについて

keywordsプロパティは、現在試験的に提供しています。そのため、今後予告なく仕様が変更されたり、提供を終了する可能性があります。

text

String

含まれないことがあります

ユーザーが入力した任意のテキスト。このプロパティは、メッセージスタンプの場合のみ含まれます。
最大文字数:100

カスタムスタンプの場合はテキストは取得できません

カスタムスタンプの場合は、ユーザーが入力した任意のテキストは取得できません。

quotedMessageId

String

含まれないことがあります

引用されたメッセージのメッセージID。過去のメッセージを引用している場合にのみ含まれます。

スタンプメッセージの例


# 送信取消イベント

ユーザーがメッセージの送信を取り消したことを示すイベントです。

ユーザーがメッセージの送信を取り消すと、ボットサーバーに送信取消イベントが届きます。送信取消イベントを受け取った場合、サービス提供者はユーザーがメッセージの送信を取り消した意図を尊重し、以降は対象のメッセージを見たり利用したりできないよう、最大限の配慮を持って対象のメッセージを適切に扱うことを推奨します。詳しくは、『Messaging APIドキュメント』の「送信取消イベント受信時の処理」を参照してください。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

unsend

unsend.messageId

String

送信を取り消したメッセージのID

送信取消イベントの例


# フォローイベント

LINE公式アカウントが友だち追加またはブロック解除されたことを示すイベントです。フォローイベントには応答できます。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

follow

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

follow.isUnblocked

Boolean

  • true:ユーザーがLINE公式アカウントをブロック解除しました。
  • false:ユーザーがLINE公式アカウントを友だち追加しました。
follow.isUnblockedの正確性について

follow.isUnblockedプロパティは、「友だち追加」および「ブロック解除」の完全な正確性を保証するものではありません。

フォローイベントの例


# フォロー解除イベント

LINE公式アカウントがブロックされたことを示すイベントです。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

unfollow

フォロー解除イベントの例


# 参加イベント

LINE公式アカウントがグループトーク複数人トークに参加したことを示すイベントです。参加イベントには応答できます。

参加イベントが送信されるタイミングはグループトークと複数人トークで異なります。

  • グループトークの場合:ユーザーがLINE公式アカウントを招待したときに送信されます。
  • 複数人トークの場合:LINE公式アカウントが複数人トークに追加された後で、最初に何らかのイベントが発生したときに送信されます。たとえば、ユーザーがメッセージを送ったり、ユーザーが複数人トークに追加されたりしたときです。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

join

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

参加イベントの例


# 退出イベント

ユーザーがグループトークからLINE公式アカウントを削除したか、LINE公式アカウントがグループトークまたは複数人トークから退出したことを示すイベントです。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

leave

退出イベントの例


# メンバー参加イベント

LINE公式アカウントがメンバーになっているグループトークまたは複数人トークにユーザーが参加したことを示すイベントです。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

memberJoined

joined.members

Array

参加したユーザー。送信元ユーザーオブジェクトの配列です。

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

メンバー参加イベントの例


# メンバー退出イベント

LINE公式アカウントがメンバーになっているグループトークまたは複数人トークからユーザーが退出したことを示すイベントです。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

memberLeft

left.members

Array

退出したユーザー。送信元ユーザーオブジェクトの配列です。

メンバー退出イベントの例


# ポストバックイベント

ユーザーが、ポストバックアクションを実行したことを示すイベントオブジェクトです。ポストバックイベントには応答できます。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

postback

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

postback.data

String

ポストバックデータ

以下のいずれかのJSONオブジェクト

ポストバックイベントの例

# 日時選択アクションのpostback.paramsオブジェクト

日時選択アクションを介してユーザーが選択した日時を含むオブジェクトです。full-datetime-hour、およびtime-minuteの形式は、RFC3339プロトコル (opens new window)で定義されています。

プロパティ 形式 説明
date full-date ユーザーが選択した日付。dateモードの場合にのみ含まれます。
time time-hour ":" time-minute ユーザーが選択した時刻。timeモードの場合にのみ含まれます。
datetime full-date "T" time-hour ":" time-minute ユーザーが選択した日付と時刻。datetimeモードの場合にのみ含まれます。

日時選択アクションのpostback.paramsオブジェクトの例

# リッチメニュー切替アクションのpostback.paramsオブジェクト

リッチメニュー切替アクションを介してユーザーが選択したリッチメニューエイリアスIDを含むオブジェクトです。

プロパティ 形式 説明
newRichMenuAliasId
含まれないことがあります
String 切替先のリッチメニューエイリアスID。リッチメニューの切替に失敗した場合は含まれません。
status String SUCCESS:リッチメニューが正常に変更されました。
RICHMENU_ALIAS_ID_NOTFOUND:指定されたリッチメニューエイリアスIDが見つかりませんでした。
RICHMENU_NOTFOUND:指定されたリッチメニューエイリアスIDに紐づくリッチメニューIDが見つかりませんでした。
FAILED:リッチメニューの切替に失敗しました。

リッチメニュー切替アクションのpostback.paramsオブジェクトの例


# 動画視聴完了イベント

LINE公式アカウントから送信されたtrackingIdが指定された動画の視聴を、ユーザーが少なくとも一回最後まで視聴したことを示すイベントです。

動画の視聴回数について

動画視聴完了イベントは、ユーザーの動画視聴回数を示すものではありません。

トークルーム上で複数回動画を視聴しても、重複してイベントが発生することはありません。ただし、一度トークルームを閉じた後で再度開き動画を視聴すると、再びイベントが発生する場合があります。

イメージマップメッセージおよびFlex Messageの動画は動画視聴完了イベントの対象外です

イメージマップメッセージおよびFlex Messageの動画にtrackingIdを指定することはできません。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

videoPlayComplete

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

videoPlayComplete.trackingId

String

動画を識別するためのID。動画メッセージに付与したtrackingIdと同じ値を返します。

動画視聴完了イベントの例


# ビーコンイベント

ビーコンの電波の受信圏にユーザーが入ったことを示すイベントオブジェクトです。ビーコンイベントには応答できます。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

beacon

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

beacon.hwid

String

検出されたビーコンのハードウェアID

beacon.type

String

ビーコンイベントのタイプ。「ビーコンイベントのタイプ」を参照してください。

beacon.dm

String

含まれないことがあります

検出されたビーコンのデバイスメッセージ。このメッセージは、ボットサーバーへの通知を目的としてビーコンにより生成されるデータです。Device messageプロパティをサポートするデバイスからのWebhookイベントにのみ含まれます。
詳しくは、LINE Simple Beaconの仕様 (opens new window)を参照してください。

ビーコンイベントの例

# ビーコンイベントのタイプ

beacon.type 説明
enter ユーザーがビーコンの電波の受信圏に入りました。
banner ユーザーがビーコンバナーをタップしました。
stay ユーザーがビーコンの電波の受信圏に滞在しています。
このイベントは、最短10秒間隔で繰り返し送信されます。
日本では利用受付は停止しています

2021年1月現在、日本ではbannerおよびstayイベントの新規利用受付は停止していますが、それ以外の地域では継続しています。


ユーザーがLINEアカウントとプロバイダーが提供するサービスのアカウントを連携したことを示すイベントオブジェクトです。アカウント連携イベントには応答できます。

連携トークンの期限が切れている、または使用済みの場合は、Webhookイベント自体が送信されず、ユーザーにエラーが表示されます。

timestamp、sourceなど

共通プロパティ」を参照してください。

アカウントの連携に失敗した場合、sourceプロパティはアカウント連携イベントに含まれません。

type

String

accountLink

replyToken

String

含まれないことがあります

このイベントに対して応答メッセージを送る際に使用する応答トークン。アカウントの連携に失敗した場合、このプロパティは含まれません。

link.result

String

アカウントの連携が成功したかどうかを示す値。以下のどちらかになります。

  • ok:アカウントの連携が成功したことを示します。
  • failed:ユーザーのすり替えなどが原因で、アカウントの連携が失敗したことを示します。

link.nonce

String

ユーザーIDの検証時に指定したnonce(number used once)。詳しくは、『Messaging APIドキュメント』の「nonceを生成してユーザーをLINEプラットフォームにリダイレクトする」を参照してください。

アカウント連携イベントの例


# メンバーシップイベント

ユーザーがLINE公式アカウントのメンバーシップに加入や継続課金、またはメンバーシップを退会したことを示すイベントです。

LINE公式アカウントがメンバーシップで複数のプランを提供している場合において、あるプランに加入中のユーザーが当月中に別のプランに変更したときは、退会と加入に関するWebhookイベントが送信されます。なお、ユーザーがプロフィール情報の取得に同意していない場合は、Webhookイベントは送信されません。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。

timestamp、sourceなど

共通プロパティ」を参照してください。

type

String

membership

replyToken

String

このイベントに対して応答メッセージを送る際に使用する応答トークン

membership.type

String

メンバーシップイベントのタイプ。以下のいずれかの値です。

  • joined:ユーザーがメンバーシップに加入した。
  • left:ユーザーがメンバーシップを退会した。
  • renewed:ユーザーがメンバーシップに継続課金した。

membership.membershipId

Number

ユーザーが加入、退会または継続課金したメンバーシップのID

メンバーシップイベントの例

# Webhook設定

チャネルのWebhookエンドポイントを設定、検証、取得します。


# WebhookエンドポイントのURLを設定する

PUT https://api.line.me/v2/bot/channel/webhook/endpoint

WebhookエンドポイントのURLを設定します。キャッシュデータの影響により、URLの更新に1分ほどかかる場合があります。

Webhook URLの検証ルール

以下のWebhook URLの検証ルールをすべて満たしていることを確認してください。

  • 有効なHTTPS URLである。
  • URLの長さが500文字以内である。

リクエスト例

# レート制限

1,000リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

endpoint

String

必須

有効なWebhook URL

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンス例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なWebhook URLが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# Webhookエンドポイントの情報を取得する

GET https://api.line.me/v2/bot/channel/webhook/endpoint

Webhookエンドポイントの情報を取得します。

リクエスト例

# レート制限

1,000リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

endpoint

String

Webhook URL

active

Boolean

Webhookの利用ステータス。有効の場合のみ、LINEプラットフォームからWebhook URLにWebhookイベントを送信します。

  • true:Webhookの利用が有効です。
  • false:Webhookの利用が無効です。

レスポンス例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
404 チャネルにWebhook URLが設定されていません。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# Webhookエンドポイントを検証する

POST https://api.line.me/v2/bot/channel/webhook/test

設定したWebhookエンドポイントがWebhookの検証イベントを受信できるかを確認します。

Webhook URLの検証ルール

以下のWebhook URLの検証ルールをすべて満たしていることを確認してください。

  • 有効なHTTPS URLである。
  • URLの長さが500文字以内である。

リクエスト例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

endpoint

String

任意

検証したいWebhook URL

endpointパラメータ有無による動作の違い

このエンドポイントは、Request bodyendpointパラメータが含まれるかどうかで動作が変わります。

endpointパラメータがある場合

endpointパラメータに指定したエンドポイントURLが有効か検証し、有効であれば指定されたエンドポイントURLにWebhook検証イベントを送信します。

endpointパラメータがない場合

チャネルに設定されているWebhookエンドポイントに、Webhook検証イベントを送信します。チャネルにWebhookエンドポイントが設定されていない場合は 404が返ります。

# レスポンス

ステータスコード200とおよび以下の情報を含むJSONオブジェクトを返す。

疎通確認のリクエストにはステータスコード200を返してください
  • 疎通確認の際は、LINEプラットフォームからWebhook URL(ボットサーバー)へ、Webhookイベントが含まれないHTTP POSTリクエストが送信されます。ステータスコード200を返すようにボットサーバーを設計してください。

    Webhookイベントが含まれないHTTP POSTリクエストの例:

    {
      "destination": "xxxxxxxxxx",
      "events": []
    }
    

success

Boolean

LINEプラットフォームからWebhook URLへの疎通結果

  • true:成功
  • false:失敗

falseの場合は、『Messaging APIドキュメント』の「エラーが発生した原因を確認する」を参照してください。

timestamp

String

共通プロパティ」を参照してください。

statusCode

Number

HTTPステータスコード。Webhookのレスポンスを受信しなかった場合、ステータスコードは0か負の数になります。

reason

String

レスポンスの原因を表します。詳細は下表を参照してください。

detail

String

レスポンスの詳細を表します。詳細は下表を参照してください。

reason(原因) detail(詳細) 内容
OK HTTPステータスコード(例:200 Webhookの送信に成功しました。
COULD_NOT_CONNECT 接続失敗 Webhookエンドポイントに接続できませんでした。詳しくは、『Messaging APIドキュメント』の「原因が「could_not_connect」の場合」を参照してください。
REQUEST_TIMEOUT Request timeout リクエストがタイムアウトしました。詳しくは、『Messaging APIドキュメント』の「原因が「request_timeout」の場合」を参照してください。
ERROR_STATUS_CODE HTTPステータスコード(例:400 エラーレスポンスのステータスコードが返ります。詳しくは、『Messaging APIドキュメント』の「原因が「error_status_code」の場合」を参照してください。
UNCLASSIFIED N/A 不明なエラーです。詳しくは、『Messaging APIドキュメント』の「原因が「unclassified」の場合」を参照してください。

レスポンスの例(Webhookの送信に成功した場合)

レスポンスの例(ボットサーバーのSSL/TLS設定が原因でWebhook URLへの疎通に失敗した場合)

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なWebhook URLが指定されています。
404 チャネルにWebhook URLが設定されていません。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# コンテンツ取得

ユーザーがLINE公式アカウントに対して送信したコンテンツを、Webhookで受信したメッセージIDを使うことで取得できます。

# コンテンツを取得する

GET https://api-data.line.me/v2/bot/message/{messageId}/content
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

Webhookで受信したメッセージIDを使って、ユーザーが送信した画像動画音声、およびファイルを取得するエンドポイントです。

このエンドポイントは、WebhookイベントオブジェクトcontentProvider.typeプロパティがlineの場合にのみ利用できます。

ユーザーからデータサイズが大きい動画または音声が送られた場合に、コンテンツのバイナリデータを取得できるようになるまで時間がかかるときがあります。バイナリデータの準備中にコンテンツを取得しようとすると、ステータスコード202が返されバイナリデータは取得できません。バイナリデータが取得できるかどうかは、動画または音声の取得準備の状況を確認するエンドポイントで確認できます。

なお、ユーザーが送信したコンテンツは、縮小などの変換が内部的に行われる場合があります。

テキストはAPIでは取得できません

ユーザーが送信したテキストは、Webhookのテキストメッセージオブジェクトで受信できます。Webhookを受信した後で、あらためてテキストを取得するためのAPIはありません。

リクエストの例

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

messageId

必須

メッセージID

# レスポンス

ステータスコード200とコンテンツのバイナリデータを返します。バイナリデータのファイル形式は、レスポンスのContent-Type (opens new window)ヘッダーで示されます。

メッセージが送信されてから一定期間後に、コンテンツは自動的に削除されます。コンテンツの保存期間は保証されません。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

  • 404 Not Found
  • 410 Gone

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 動画または音声の取得準備の状況を確認する

GET https://api-data.line.me/v2/bot/message/{messageId}/content/transcoding
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

Webhookで受信したメッセージIDを使って、ユーザーが送信した動画音声の取得準備の状況を取得するエンドポイントです。

このエンドポイントは、WebhookイベントオブジェクトcontentProvider.typeプロパティがlineの場合にのみ利用できます。

リクエストの例

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

messageId

必須

動画または音声のメッセージID

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

取得準備の状況。以下のいずれかの値です。

  • processing:コンテンツの取得準備中です。
  • succeeded:コンテンツを取得する準備が完了しました。ユーザーが送信したコンテンツを取得できます。
  • failed:コンテンツの取得準備に失敗しました。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

  • 400 Bad Request
  • 404 Not Found
  • 410 Gone

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 画像または動画のプレビュー画像を取得する

GET https://api-data.line.me/v2/bot/message/{messageId}/content/preview
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

Webhookで受信したメッセージIDを使って、ユーザーが送信した画像動画のプレビュー画像を取得するエンドポイントです。プレビュー画像は、実際のコンテンツよりも軽量なデータサイズに変換した画像データです。

このエンドポイントは、WebhookイベントオブジェクトcontentProvider.typeプロパティがlineの場合にのみ利用できます。

リクエストの例

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

messageId

必須

画像または動画のメッセージID

# レスポンス

ステータスコード200とプレビュー画像のバイナリデータを返します。

メッセージが送信されてから一定期間後に、プレビュー画像は自動的に削除されます。プレビュー画像の保存期間は保証されません。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

  • 400 Bad Request
  • 404 Not Found
  • 410 Gone

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# チャネルアクセストークン

アプリからMessaging APIを呼び出す際に必要となるチャネルアクセストークンを発行、取得、取り消しします。詳しくは、『LINEプラットフォームの基礎知識』の「チャネルアクセストークン」を参照してください。


# チャネルアクセストークンv2.1を発行する

POST https://api.line.me/oauth2/v2.1/token

任意の有効期間を指定できるチャネルアクセストークンを発行します。このメソッドでは、認証にJWTアサーションを使用できます。

チャネルアクセストークンv2.1は、チャネルごとに30件まで発行できます。上限に達した場合は、追加発行のリクエストは拒否されます。なお、有効期限が切れたチャネルアクセストークンは、発行数としてカウントされません。

リクエストの例

# リクエストヘッダー

Content-Type

必須

application/x-www-form-urlencoded

# リクエストボディ

grant_type

String

必須

client_credentials

client_assertion_type

String

必須

urn:ietf:params:oauth:client-assertion-type:jwt-bearerをURLエンコードした値

client_assertion

String

必須

JSON Web Tokenアサーションを指定します。JWTアサーションは、クライアント側で生成した上で、アサーション署名キーの秘密鍵で署名する必要があります。

JWTアサーションは、生成されてから30分以内に失効するように設定する必要があります。JWTアサーションの生成について詳しくは、「JWTを生成する」を参照してください。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

access_token

String

チャネルアクセストークン

expires_in

Number

チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数

token_type

String

Bearer

key_id

String

チャネルアクセストークンを識別するための一意のキーID

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • JWTアサーションの検証に失敗した。
  • JWTアサーションの有効期限が切れている。
  • チャネルアクセストークンを発行できる上限に達している。
404 JWTアサーションと紐づく署名キーがチャネルに登録されていません。

エラーレスポンスの例


# チャネルアクセストークンv2.1の有効性を検証する

GET https://api.line.me/oauth2/v2.1/verify

任意の有効期間を指定できるチャネルアクセストークン(チャネルアクセストークンv2.1)の有効性を検証できます。

リクエストの例

# クエリパラメータ

access_token

必須

任意の有効期間を指定できるチャネルアクセストークン(チャネルアクセストークンv2.1)。

# レスポンス

チャネルアクセストークンが有効な場合は、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

client_id

String

チャネルアクセストークンが発行されたチャネルID。

expires_in

Number

チャネルアクセストークンの有効期限が切れるまでの秒数。

scope

String

含まれないことがあります

チャネルアクセストークンに付与されている権限。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なフォーマットのチャネルアクセストークンが指定されている。
  • チャネルアクセストークンの有効期限が切れている。
  • 存在しないチャネルアクセストークンが指定されている。

エラーレスポンスの例


# すべての有効なチャネルアクセストークンv2.1のキーIDを取得する

GET https://api.line.me/oauth2/v2.1/tokens/kid

すべての有効なチャネルアクセストークンのキーIDを取得します。

リクエストの例

# クエリパラメータ

client_assertion_type

String

必須

urn:ietf:params:oauth:client-assertion-type:jwt-bearerをURLエンコードした値

client_assertion

String

必須

クライアントが作成し、秘密鍵で署名する必要があるJSON Web Token (JWT) (opens new window)です。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

kids

Array of strings

チャネルアクセストークンのキーIDの配列

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • JWTアサーションの検証に失敗した。
  • JWTアサーションの有効期限が切れている。
404 JWTアサーションと紐づく署名キーがチャネルに登録されていません。

エラーレスポンスの例


# チャネルアクセストークンv2.1を取り消す

POST https://api.line.me/oauth2/v2.1/revoke

チャネルアクセストークンv2.1を取り消します。

以下のような場合に、チャネルアクセストークンを取り消します。

  • チャネルアクセストークンを再発行することで古いチャネルアクセストークンが不要になったとき
  • チャネルアクセストークンの漏洩が疑われたとき

なお、すでに有効期限が切れているチャネルアクセストークンを取り消す必要はありません。

リクエストの例

# リクエストボディ

client_id

String

必須

チャネルID

client_secret

String

必須

チャネルシークレット

access_token

String

必須

チャネルアクセストークン

# レスポンス

ステータスコード200と空のレスポンスボディを返します。

注意

無効なチャネルアクセストークンを指定した場合も、エラーレスポンスは発生しません。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なフォーマットのチャネルアクセストークンが指定されている。
  • 存在しないチャネルアクセストークンが指定されている。
  • 不正なチャネルアクセストークンが指定されている。

エラーレスポンスの例


# ステートレスチャネルアクセストークンを発行する

POST https://api.line.me/oauth2/v3/token

15分間だけ有効なチャネルアクセストークンを発行します。発行できる数に制限はありません。ステートレスチャネルアクセストークンを発行すると、取り消すことはできません。

チャネルIDとチャネルシークレットから発行するリクエストの例

JWTアサーションから発行するリクエストの例

# リクエストヘッダー

Content-Type

必須

application/x-www-form-urlencoded

# リクエストボディ

ステートレスチャネルアクセストークンを発行する方法には、次の2つがあります。どちらの方法で発行しても、レスポンスボディの形式は同じになります。

# チャネルIDとチャネルシークレットから発行する

grant_type

String

必須

client_credentials

client_id

String

必須

チャネルID。LINE Developersコンソールで確認できます。

client_secret

String

必須

チャネルシークレット。LINE Developersコンソールで確認できます。

# JWTアサーションから発行する

grant_type

String

必須

client_credentials

client_assertion_type

String

必須

urn:ietf:params:oauth:client-assertion-type:jwt-bearerをURLエンコードした値

client_assertion

String

必須

JSON Web Tokenアサーションを指定します。JWTアサーションは、クライアント側で生成した上で、アサーション署名キーの秘密鍵で署名する必要があります。

JWTアサーションは、生成されてから30分以内に失効するように設定する必要があります。JWTアサーションの生成について詳しくは、「JWTを生成する」を参照してください。

# レスポンス

ステータスコード200と、以下の情報を含むJSONオブジェクトを返します。

token_type

String

Bearer

access_token

String

チャネルアクセストークン

expires_in

Number

チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なチャネルIDが指定されている。
  • 無効なチャネルシークレットが指定されている。
  • JWTアサーションの検証に失敗した。
  • JWTアサーションの有効期限が切れている。
404 JWTアサーションと紐づく署名キーがチャネルに登録されていません。

エラーレスポンスの例


# 短期のチャネルアクセストークンを発行する

POST https://api.line.me/v2/oauth/accessToken

30日間有効な短期のチャネルアクセストークンを発行します。

短期のチャネルアクセストークンは、チャネルごとに30件まで発行できます。上限を超過した場合は、最も古いチャネルアクセストークンが取り消されます。なお、有効期限が切れたチャネルアクセストークンは、発行数としてカウントされません。

ヒント
  • Messaging APIのチャネルの場合は、長期のチャネルアクセストークンや任意の有効期間を指定できるチャネルアクセストークンv2.1、ステートレスチャネルアクセストークンを発行できます。詳しくは、『LINEプラットフォームの基礎知識』の「チャネルアクセストークン」を参照してください。
  • LINEログインのチャネルのチャネルアクセストークンも、このAPIで発行できます。LINEログインのチャネルのチャネルアクセストークンは、LIFFのサーバーAPIで利用します。

リクエストの例

# APIプレイグラウンド

# レート制限

370リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/x-www-form-urlencoded

# リクエストボディ

grant_type

String

必須

client_credentials

client_id

String

必須

チャネルID。LINE Developersコンソールで確認できます。

client_secret

String

必須

チャネルシークレット。LINE Developersコンソールで確認できます。

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

access_token

String

短期のチャネルアクセストークン。有効期間は30日です。

注意

チャネルアクセストークンは更新できません。

expires_in

Number

チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数

token_type

String

Bearer

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なチャネルIDが指定されている。
  • 無効なチャネルシークレットが指定されている。
  • リクエストパラメータが誤ったフォーマットで指定されている。
429 レート制限を超過しました。

エラーレスポンスの例


# 短期または長期のチャネルアクセストークンの有効性を検証する

POST https://api.line.me/v2/oauth/verify

短期のチャネルアクセストークンまたは長期のチャネルアクセストークンの有効性を検証できます。

リクエストの例

# リクエストヘッダー

Content-Type

必須

application/x-www-form-urlencoded

# リクエストボディ

access_token

String

必須

短期または長期のチャネルアクセストークン。

# レスポンス

チャネルアクセストークンが有効な場合は、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

client_id

String

チャネルアクセストークンが発行されたチャネルID。

expires_in

Number

チャネルアクセストークンの有効期限が切れるまでの秒数。

scope

String

含まれないことがあります

チャネルアクセストークンに付与されている権限。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なチャネルアクセストークンが指定されている。
  • 無効なフォーマットのチャネルアクセストークンが指定されている。
  • チャネルアクセストークンの有効期限が切れている。

エラーレスポンスの例


# 短期または長期のチャネルアクセストークンを取り消す

POST https://api.line.me/v2/oauth/revoke

短期または長期のチャネルアクセストークンを取り消すAPIです。

以下のような場合に、チャネルアクセストークンを取り消します。

  • チャネルアクセストークンを再発行することで古いチャネルアクセストークンが不要になったとき
  • チャネルアクセストークンの漏洩が疑われたとき

なお、すでに有効期限が切れているチャネルアクセストークンを取り消す必要はありません。

リクエストの例

# APIプレイグラウンド

# リクエストヘッダー

Content-Type

必須

application/x-www-form-urlencoded

# リクエストボディ

access_token

String

必須

チャネルアクセストークン

# レスポンス

ステータスコード200と空のレスポンスボディを返します。無効なチャネルアクセストークンを指定した場合はエラーが返りません。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なフォーマットのチャネルアクセストークンが指定されています。

エラーレスポンスの例

# メッセージ

メッセージを送ったり、送信済みメッセージについての情報を取得したりできます。


# 応答メッセージを送る

POST https://api.line.me/v2/bot/message/reply

ユーザー、グループトーク、または複数人トークからのイベントに対して、応答メッセージを送信するAPIです。応答メッセージを送るには、Webhookイベントオブジェクトに含まれる応答トークンが必要です。

イベントが発生すると、Webhookにより通知されます。応答できるイベントの場合は、応答トークンが発行されます。

応答メッセージの準備中にローディングのアニメーションを表示できます

LINE公式アカウントがユーザーからのメッセージを受信したあと、メッセージの準備や予約の処理などで返答に少し時間がかかることがあります。そのような場合に、ユーザーにそのまま待機しておいて欲しいことをローディングのアニメーションで視覚的に伝えることができます。詳しくは、『Messaging APIドキュメント』の「ローディングのアニメーションを表示する」を参照してください。

# 応答トークン

応答トークンを使用する際は、以下の点を確認してください。

  • 応答トークンは一度のみ使用できます。
  • 応答トークンは、Webhookを受信してから1分以内に使用する必要があります。1分を超える場合の使用については、動作は保証されません。
  • 再送されたWebhookに含まれる応答トークンも、再送されたWebhookを受信してから1分以内であれば使用できます。ただし、以下の場合は応答トークンを使用できません。
    • 元のWebhookに含まれる応答トークンをすでに使用している場合。
    • イベントの発生から20分が経過している場合。
応答トークンは可能な限り早く使用してください

応答トークンの時間制限は、予告なく変更される可能性があります。また、ネットワークの遅延などにより、実際に使用できる期間は変動します。

このため、時間制限に依存した実装をしないようにしてください。また、応答トークンは可能な限り早く使用してください。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

# リクエストボディ

replyToken

String

必須

Webhookで受信する応答トークン

messages

送信するメッセージ
最大件数:5

応答メッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。

notificationDisabled

Boolean

任意
  • true:メッセージ送信時に、ユーザーに通知されない。
  • false:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。

デフォルト値はfalseです。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

sentMessages

Array

送信したメッセージの配列。
最大件数:5

sentMessages.id

Number

送信したメッセージのID。

sentMessages.quoteToken

String

含まれないことがあります

メッセージの引用トークン。引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 メッセージを送信できませんでした。次のような理由が考えられます。
  • 無効な応答トークンが指定されている。
  • 無効なメッセージオブジェクトが指定されている。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、メッセージは送信されません。

エラーレスポンスの例


# プッシュメッセージを送る

POST https://api.line.me/v2/bot/message/push

ユーザー、グループトーク、または複数人トークに、任意のタイミングでメッセージを送信するAPIです。

# プッシュメッセージを送信できる条件

プッシュメッセージは、以下のいずれかの条件に当てはまる場合に送信できます。

  • LINE公式アカウントを友だち追加しているユーザー
  • LINE公式アカウントが参加しているグループトーク、または複数人トーク
  • 1対1のトークで、7日以内にLINE公式アカウントへメッセージを送ったユーザー(※)

なお、以下のユーザーに対してプッシュメッセージの送信処理を行った場合、ステータスコード200が返されますが、実際にはユーザーに送信されません。

  • LINEアカウントを削除したユーザー
  • プッシュメッセージを送信したLINE公式アカウントをブロックしているユーザー
  • プッシュメッセージを送信したLINE公式アカウントを友だち追加していないユーザー(※)

※ユーザーは、友だち追加していないLINE公式アカウントに対しても、メッセージを送ることができます。LINE公式アカウントは、友だちでないユーザーから1対1のトークでメッセージを受け取った場合、メッセージを受け取ってから7日以内であれば、そのユーザーに対してメッセージを送信できます。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

X-Line-Retry-Key

任意

リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。

# リクエストボディ

to

String

必須

送信先のID。Webhookイベントオブジェクトで返される、userIdgroupId、またはroomIdの値を使用します。

messages

送信するメッセージ
最大件数:5

プッシュメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。

notificationDisabled

Boolean

任意
  • true:メッセージ送信時に、ユーザーに通知されない。
  • false:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。

デフォルト値はfalseです。

customAggregationUnits

Array of strings

任意

任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_apromotion_Aは別のユニットとして扱われます。
最大ユニット数:1
最大文字数:30
使用可能文字種:半角英数字(azAZ09)、アンダースコア(_

ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「メッセージ送信時に任意の集計単位のユニット名を付与する」を参照してください。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

sentMessages

Array

送信したメッセージの配列。
最大件数:5

sentMessages.id

Number

送信したメッセージのID。

sentMessages.quoteToken

String

含まれないことがあります

メッセージの引用トークン。引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 メッセージを送信できませんでした。次のような理由が考えられます。
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルに存在しないユーザーのIDが指定されている。
  • 存在しないグループやLINE公式アカウントが参加していないグループが指定されている。
  • 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されている。
  • 無効なメッセージオブジェクトが指定されている。
409 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。
429 リクエスト数が上限を超過しました。次のような理由が考えられます。メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、メッセージは送信されません。

エラーレスポンスの例


# マルチキャストメッセージを送る

POST https://api.line.me/v2/bot/message/multicast

複数のユーザーに対して同じメッセージを効率よく送信するAPIです。グループトークおよび複数人トークにメッセージを送ることはできません。

なお、1人のユーザーに対してもマルチキャストメッセージでメッセージを送信できますが、送信対象が1人の場合にはプッシュメッセージの利用を推奨します。プッシュメッセージは、低遅延用途でのメッセージの送信に適しています。

# マルチキャストメッセージを送信できる条件

マルチキャストメッセージは、LINE公式アカウントを友だち追加しているユーザーに対して送信できます。

なお、以下のユーザーに対してマルチキャストメッセージの送信処理を行った場合、ステータスコード200が返されますが、実際にはユーザーに送信されません。

  • LINEアカウントを削除したユーザー
  • マルチキャストメッセージを送信したLINE公式アカウントをブロックしているユーザー
  • マルチキャストメッセージを送信したLINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

リクエストの例

# レート制限

200リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

X-Line-Retry-Key

任意

リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。

# リクエストボディ

to

Array of strings

必須

ユーザーIDの配列。Webhookイベントオブジェクトで返されるuserIdの値を使用します。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500

messages

送信するメッセージ
最大件数:5

マルチキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。

notificationDisabled

Boolean

任意
  • true:メッセージ送信時に、ユーザーに通知されない。
  • false:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。

デフォルト値はfalseです。

customAggregationUnits

Array of strings

任意

任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_apromotion_Aは別のユニットとして扱われます。
最大ユニット数:1
最大文字数:30
使用可能文字種:半角英数字(azAZ09)、アンダースコア(_

ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「メッセージ送信時に任意の集計単位のユニット名を付与する」を参照してください。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 メッセージを送信できませんでした。次のような理由が考えられます。
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルに存在しないユーザーのIDが指定されている。
  • グループIDなど、ユーザーIDではないIDが指定されている。
  • 無効なメッセージオブジェクトが指定されている。
409 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。
429 リクエスト数が上限を超過しました。次のような理由が考えられます。メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、どのユーザーに対してもメッセージは送信されません。

エラーレスポンスの例


# ナローキャストメッセージを送る

POST https://api.line.me/v2/bot/message/narrowcast

複数のユーザーに、任意のタイミングでメッセージを送信します。送信対象は、属性情報(性別や年齢、OSの種類、地域など)やリターゲティング(オーディエンス)を利用して指定できます。グループトークまたは複数人トークにメッセージを送ることはできません。

ナローキャストメッセージは、LINEプラットフォームがリクエストを受信した後にバックグラウンドで非同期に送信されます。そのため、ナローキャストメッセージを送信するリクエストが成功していたとしても、送信開始後に失敗している可能性があります。メッセージの送信が成功したかどうかは、ナローキャストメッセージの進行状況を取得することで確認できます。

タイの20歳未満のユーザーへのナローキャストメッセージの送信について

送信対象を特定の条件で絞り込む場合に、タイの20歳未満のユーザーは、メッセージの送信対象から除外されます。

# ナローキャストメッセージを送信できる条件

ナローキャストメッセージは、LINE公式アカウントを友だち追加しているユーザーに対して送信できます。

なお、以下のユーザーを送信対象に含めた場合、ステータスコード202が返されますが、送信対象からは除外されます。

  • LINEアカウントを削除したユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

# 属性情報やオーディエンスを利用したメッセージ送信の制限事項

属性情報やオーディエンスを利用した場合、メッセージの送信条件に応じて、ユーザーのプライバシーを保護するための制限が適用されることがあります。制限に該当した場合、リクエスト送信時もしくはメッセージの送信開始時にエラーになります。

  • 送信条件に属性情報を指定するには、LINE公式アカウントのターゲットリーチが100人以上である必要があります。ターゲットリーチが100人未満の場合はステータスコード403が返されます。
  • 送信条件に属性情報またはオーディエンス(※)を指定した場合、最終的な送信対象が50人以上である必要があります。最終的な送信対象が50人未満の場合にもステータスコード202が返されますが、メッセージの送信開始時にエラーとなります。
  • 送信条件に1件以上のオーディエンスを指定した場合、各オーディエンス(※)の送信対象がそれぞれ50人以上である必要があります。送信対象が50人未満のオーディエンスが含まれていた場合にもステータスコード202が返されますが、メッセージの送信開始時にエラーとなります。

※以下のオーディエンスには、送信対象の人数に関する制限はありません。ただし、他のLINE公式アカウントの下で作成されたオーディエンスについては、以下のオーディエンスであっても制限が適用されます。

  • LINE Official Account ManagerやMessaging APIから、ユーザーIDアップロードにより作成されたオーディエンス
  • チャットタグオーディエンス

# 当月に配信できるメッセージの残数に関する注意事項

LINE Official Account ManagerおよびMessaging APIでは、メッセージの送信開始から、実際に送信される件数が確定するまでの間、当月に配信できるメッセージの残数に対して送信予定のメッセージ数が予約された状態になります。メッセージの送信開始時点で送信予定のメッセージ数が予約ができない場合は、メッセージの送信に失敗します。

ナローキャストメッセージの場合、実際の送信対象となるユーザー数に関わらず、LINE公式アカウントのターゲットリーチ分の予約が必要となります。そのため、ナローキャストメッセージの送信時には、以下の点に注意してください。

  • 当月に配信できるメッセージの残数が、LINE公式アカウントのターゲットリーチに満たない場合、ナローキャストメッセージの送信開始時にエラーとなります。
  • 実際の送信対象となるユーザー数が十分に少ないにも関わらず、当月分のメッセージの残数が一時的に枯渇し、ナローキャストメッセージの配信中に他のメッセージの送信ができなくなる場合があります。

これらはナローキャストメッセージの送信時に、メッセージの送信数を制限することによって回避できる場合があります。詳しくは、リクエストボディリミットオブジェクトを参照してください。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

X-Line-Retry-Key

任意

リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。

# リクエストボディ

messages

送信するメッセージ
最大件数:5

ナローキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。

recipient

Object

任意

レシピエントオブジェクト。オーディエンスや、過去に配信したナローキャストメッセージのリクエストIDを合計10件まで使用して、送信対象を指定します。指定できる演算子オブジェクトの数に上限はありません。
省略すると、LINE公式アカウントを友だち追加したすべてのユーザーが送信対象になります。

filter.demographic

Object

任意

デモグラフィックフィルターオブジェクト。友だちの属性情報を使用して、送信対象をフィルタリングできます。
省略すると、属性が「不明」になっているユーザーを含めた全員に配信されます。

limit

Object

任意

リミットオブジェクト。ナローキャストメッセージの最大送信数を制限する場合に設定します。

notificationDisabled

Boolean

任意
  • true:メッセージ送信時に、ユーザーに通知されない。
  • false:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。

デフォルト値はfalseです。

# レシピエントオブジェクト

レシピエントオブジェクトは、オーディエンスオブジェクトまたは再配信オブジェクトを表すオブジェクトです。演算子オブジェクトを利用すると、条件を組み合わせて送信対象を指定できます。1回のリクエストごとに、オーディエンスオブジェクトと再配信オブジェクトを合計10件まで指定できます。演算子オブジェクトの数に上限はありません。

# オーディエンスオブジェクト

type

String

必須

audience

audienceGroupId

Number

必須

オーディエンスID。オーディエンスを作成するには、「オーディエンス管理」のAPIを使用します。

# 再配信オブジェクト

type

String

必須

redelivery

requestId

String

必須

過去に配信したナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

指定できるリクエストIDにはいくつかの条件があります

以下の条件をすべて満たすリクエストIDを、requestIdプロパティで指定してください。条件を満たしていないリクエストIDが指定された場合はステータスコード400が返されます。

# 演算子オブジェクト

積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複数のレシピエントオブジェクトから、新たなレシピエントオブジェクトを作成できます。

type

String

必須

operator

and

レシピエントオブジェクトの配列

配列で指定したレシピエントオブジェクトの積集合(AND)を、新たなレシピエントオブジェクトとします。

Audience 1 and Audience 2

or

レシピエントオブジェクトの配列

配列で指定したレシピエントオブジェクトの和集合(OR)を、新たなレシピエントオブジェクトとします。

Audience 1 or Audience 2

not

レシピエントオブジェクト

指定したレシピエントオブジェクトを配信対象外にした、新たなレシピエントオブジェクトとします。

not Audience 2

andプロパティ、orプロパティ、notプロパティのいずれか1つだけ、必ず指定してください。また、空配列は指定できません。

レシピエントオブジェクトの例

# デモグラフィックフィルターオブジェクト

デモグラフィックフィルターオブジェクトは、送信対象をフィルタリングする条件(性別、年齢、OSの種類、地域、友だち期間)を表すオブジェクトです。演算子オブジェクトを利用すると、条件を組み合わせて送信対象をフィルタリングできます。

属性情報の利用について
  • 属性情報は約3日前(前後する可能性があります)の属性情報を元に絞り込みます。
  • 属性を指定しない場合は、属性が「不明」になっているユーザーを含めた全員に配信されます。
  • 属性情報を利用するには、100人以上のターゲットリーチが必要です。
    • ターゲットリーチが100人未満の場合はステータスコード403が返されます。
# 性別

type

String

必須

gender

oneOf

Array of strings

必須

指定した性別を送信対象とします。以下のいずれかの値を指定します。

  • male
  • female
# 年齢

年齢の範囲を指定してフィルタリングします。

type

String

必須

age

gte

String

指定した年齢以上を送信対象とします。

以下のいずれかの値を指定します。ただし、ltプロパティで指定した値より小さい値を指定してください。

  • age_15
  • age_20
  • age_25
  • age_30
  • age_35
  • age_40
  • age_45
  • age_50
  • age_55
  • age_60
  • age_65
  • age_70

lt

String

指定した年齢未満を送信対象とします。

以下のいずれかの値を指定します。ただし、gteプロパティで指定した値より大きい値を指定してください。

  • age_15
  • age_20
  • age_25
  • age_30
  • age_35
  • age_40
  • age_45
  • age_50
  • age_55
  • age_60
  • age_65
  • age_70

gteプロパティまたはltプロパティの両方またはいずれか一方を、必ず指定してください。

# OSの種類

type

String

必須

appType

oneOf

Array of strings

必須

指定したOSを送信対象とします。以下のいずれかの値を指定します。

  • ios
  • android
# 地域

type

String

必須

area

oneOf

Array of strings

必須

指定した地域を送信対象とします。以下のいずれかの値を指定します。
日本 // JP (country code=392)

  • jp_01:北海道 // Hokkaido
  • jp_02:青森県 // Aomori
  • jp_03:岩手県 // Iwate
  • jp_04:宮城県 // Miyagi
  • jp_05:秋田県 // Akita
  • jp_06:山形県 // Yamagata
  • jp_07:福島県 // Fukushima
  • jp_08:茨城県 // Ibaraki
  • jp_09:栃木県 // Tochigi
  • jp_10:群馬県 // Gunma
  • jp_11:埼玉県 // Saitama
  • jp_12:千葉県 // Chiba
  • jp_13:東京都 // Tokyo
  • jp_14:神奈川県 // Kanagawa
  • jp_15:新潟県 // Niigata
  • jp_16:富山県 // Toyama
  • jp_17:石川県 // Ishikawa
  • jp_18:福井県 // Fukui
  • jp_19:山梨県 // Yamanashi
  • jp_20:長野県 // Nagano
  • jp_21:岐阜県 // Gifu
  • jp_22:静岡県 // Shizuoka
  • jp_23:愛知県 // Aichi
  • jp_24:三重県 // Mie
  • jp_25:滋賀県 // Shiga
  • jp_26:京都府 // Kyoto
  • jp_27:大阪府 // Osaka
  • jp_28:兵庫県 // Hyougo
  • jp_29:奈良県 // Nara
  • jp_30:和歌山県 // Wakayama
  • jp_31:鳥取県 // Tottori
  • jp_32:島根県 // Shimane
  • jp_33:岡山県 // Okayama
  • jp_34:広島県 // Hiroshima
  • jp_35:山口県 // Yamaguchi
  • jp_36:徳島県 // Tokushima
  • jp_37:香川県 // Kagawa
  • jp_38:愛媛県 // Ehime
  • jp_39:高知県 // Kouchi
  • jp_40:福岡県 // Fukuoka
  • jp_41:佐賀県 // Saga
  • jp_42:長崎県 // Nagasaki
  • jp_43:熊本県 // Kumamoto
  • jp_44:大分県 // Oita
  • jp_45:宮崎県 // Miyazaki
  • jp_46:鹿児島県 // Kagoshima
  • jp_47:沖縄県 // Okinawa

台湾 // TW (country code=158)

  • tw_01:台北市 // Taipei City
  • tw_02:新北市 // New Taipei City
  • tw_03:桃園市 // Taoyuan City
  • tw_04:台中市 // Taichung City
  • tw_05:台南市 // Tainan City
  • tw_06:高雄市 // Kaohsiung City
  • tw_07:基隆市 // Keelung City
  • tw_08:新竹市 // Hsinchu City
  • tw_09:嘉義市 // Chiayi City
  • tw_10:新竹県 // Hsinchu County
  • tw_11:苗栗県 // Miaoli County
  • tw_12:彰化県 // Changhua County
  • tw_13:南投県 // Nantou County
  • tw_14:雲林県 // Yunlin County
  • tw_15:嘉義県 // Chiayi County
  • tw_16:屏東県 // Pingtung County
  • tw_17:宜蘭県 // Yilan County
  • tw_18:花蓮県 // Hualien County
  • tw_19:台東県 // Taitung County
  • tw_20:澎湖県 // Penghu County
  • tw_21:金門県 // Kinmen County
  • tw_22:連江県 // Lienchiang County

タイ // TH (country code=764)

  • th_01:バンコク // Bangkok
  • th_02:パタヤ // Pattaya
  • th_03:北部 // Northern
  • th_04:中央部 // Central
  • th_05:南部 // Southern
  • th_06:東部 // Eastern
  • th_07:東北部 // NorthEastern
  • th_08:西部 // Western
# 友だち期間

友だち期間の範囲を指定してフィルタリングします。

type

String

必須

subscriptionPeriod

gte

String

指定した日数以上を送信対象とします。
以下のいずれかの値を指定します。ただし、ltプロパティで指定した値より小さい値を指定してください。

  • day_7
  • day_30
  • day_90
  • day_180
  • day_365

lt

String

指定した日数未満を送信対象とします。
以下のいずれかの値を指定します。ただし、gteプロパティで指定した値より大きい値を指定してください。

  • day_7
  • day_30
  • day_90
  • day_180
  • day_365

gteプロパティまたはltプロパティの両方またはいずれか一方を、必ず指定してください。

# 演算子オブジェクト

積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複数のデモグラフィックフィルターオブジェクトから、新たなデモグラフィックフィルターオブジェクトを作成できます。1回のリクエストごとに、デモグラフィックフィルターオブジェクトは、合計10件まで指定できます。

type

String

必須

operator

and

デモグラフィックフィルターオブジェクトの配列

配列で指定したデモグラフィックフィルターオブジェクトの積集合(AND)を、新たなデモグラフィックフィルターオブジェクトとします。

or

デモグラフィックフィルターオブジェクトの配列

配列で指定したデモグラフィックフィルターオブジェクトの和集合(OR)を、新たなデモグラフィックフィルターオブジェクトとします。

not

デモグラフィックフィルターオブジェクト

指定したデモグラフィックフィルターオブジェクトを配信対象外にした、新たなデモグラフィックフィルターオブジェクトとします。

andプロパティ、orプロパティ、notプロパティのいずれか1つだけ、必ず指定してください。また、空配列は指定できません。

性別を使用してフィルタリングするデモグラフィックフィルターオブジェクトの例

# リミットオブジェクト

リミットオブジェクトは、ナローキャストメッセージの最大送信数を制限する場合に設定します。

max

Number

任意

ナローキャストメッセージの最大送信数。このナローキャストメッセージによる送信数を制限する場合に指定します。なお送信対象は、無作為に抽出されます。

upToRemainingQuota

Boolean

任意

trueを指定すると、配信可能な上限数の範囲内でメッセージを送信します。デフォルト値はfalseです。なお送信対象は、無作為に抽出されます。

リミットオブジェクトの例

maxプロパティおよびupToRemainingQuotaプロパティの設定値と、メッセージの予約数および最大送信数の関係は以下のとおりです。

maxプロパティ upToRemainingQuotaプロパティ 予約数および最大送信数
未指定 false ターゲットリーチの数
任意の数値 false ターゲットリーチの数と、maxプロパティのうちの最小値
未指定 true ターゲットリーチの数と、当月分の上限目安のうちの最小値
任意の数値 true ターゲットリーチの数、当月分の上限目安、maxプロパティのうちの最小値

# レスポンス

HTTPステータスコード202と空のJSONオブジェクトを返します。

ナローキャストメッセージの送信は非同期に行われます。ナローキャストメッセージの送信状況を確認する方法について詳しくは、「ナローキャストメッセージの進行状況を取得する」を参照してください。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 メッセージを送信できませんでした。次のような理由が考えられます。
  • 再配信オブジェクトに無効なリクエストIDが指定されている。
  • ステータスがREADY以外など、無効なオーディエンスが指定されている。
  • 無効なメッセージオブジェクトが指定されている。
403 送信対象が不足しています。詳しくは、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
409 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。
429 リクエスト数が上限を超過しました。次のような理由が考えられます。メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、どのユーザーに対してもメッセージは送信されません。

エラーレスポンスの例


# ナローキャストメッセージの進行状況を取得する

GET https://api.line.me/v2/bot/message/progress/narrowcast

ナローキャストメッセージの進行状況を取得します。

送信対象が一定数よりも少ない場合は送信できません

送信対象のユーザーの属性を推測できないようにするために、送信対象が一定数よりも少ない場合はナローキャストメッセージを送信できません。詳しくは、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。

進行状況を取得できる期間

acceptedTimeプロパティの値(タイムスタンプ)から14日(336時間)以上経過すると、進行状況は取得できません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

requestId

必須

ナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

phase

String

進行状況。以下のいずれかの値です。

  • waiting:送信準備ができていません。フィルタリングなどを行っています。
  • sending:送信中です。
  • succeeded:送信処理が完了しました。これは、ユーザーがメッセージを正常に受信したことを示していません。
  • failed:送信が失敗しました。failedDescriptionプロパティで失敗した理由を確認できます。

successCount

Number

含まれないことがあります

メッセージの受信に成功したユーザー数(※)

failureCount

Number

含まれないことがあります

メッセージの受信に失敗したユーザー数(※)。
phasesucceededの場合でも、failureCountが0でない限りは、ナローキャストメッセージを受信できていないユーザーがいます。たとえば、ナローキャストメッセージを送信中に、ユーザーがLINE公式アカウントをブロックした場合はfailureCountに加算されます。

targetCount

Number

含まれないことがあります

メッセージが配信される予定のユーザー数(※)

failedDescription

String

含まれないことがあります

送信が失敗した理由。phaseプロパティがfailedの場合にのみ含まれます。

errorCode

Number

含まれないことがあります

エラーの概要。phaseプロパティがfailedの場合にのみ含まれます。
以下のいずれかの値が返されます。

  • 1:内部エラーが発生しました。
  • 2:送信対象が少なすぎたためエラーになりました。
  • 3:すでに受理されたリクエストを再試行したため、競合エラーが発生しました。
  • 4:送信対象が50人未満のオーディエンスが、送信条件に含まれています。

acceptedTime

String

ナローキャストメッセージ送信のリクエストを受け付けた時間をミリ秒で表します。

completedTime

String

含まれないことがあります

ナローキャストメッセージの送信を完了した時間をミリ秒で表します。phaseプロパティがsucceededまたはfailedの場合にのみ返されます。

phaseプロパティがwaitingの場合は取得できません。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なリクエストIDが指定されています。
404 進行状況が取得できませんでした。次のような理由が考えられます。
  • 進行状況を取得できる期間を超えている。
  • ナローキャストメッセージ以外のリクエストIDを指定した。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ブロードキャストメッセージを送る

POST https://api.line.me/v2/bot/message/broadcast

LINE公式アカウントと友だちになっているすべてのユーザーに、任意のタイミングでメッセージを送信します。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

X-Line-Retry-Key

任意

リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。

# リクエストボディ

messages

送信するメッセージ
最大件数:5

ブロードキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。

notificationDisabled

Boolean

任意
  • true:メッセージ送信時に、ユーザーに通知されない。
  • false:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。

デフォルト値はfalseです。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。
409 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。
429 リクエスト数が上限を超過しました。次のような理由が考えられます。メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、メッセージは送信されません。

エラーレスポンスの例


# ローディングのアニメーションを表示する

POST https://api.line.me/v2/bot/chat/loading/start

ユーザーとLINE公式アカウントの1対1のトークにおいて、ローディングのアニメーションを表示します。

ローディングのアニメーションは指定した秒数(5秒〜60秒)が経過するか、表示中にLINE公式アカウントからメッセージが届くと自動的に消えます。

ローディングのアニメーションは、ユーザーが対象のLINE公式アカウントとのトーク画面を表示しているときのみ表示されます。ユーザーがトーク画面を表示していないときに、ローディングのアニメーションを表示するリクエストを行っても、通知は行われません。また、その後にユーザーがトーク画面を開いてもアニメーションは表示されません。

ローディングのアニメーションが表示されている間に再び表示のリクエストを行うと、アニメーションはそのまま表示され続け、表示が消えるまでの時間は2回目のリクエストで指定した秒数に上書きされます。

ローディングのアニメーションが表示されるLINEのバージョンは以下のとおりです。

  • iOS版またはAndroid版のLINE:13.16.0以降

詳しくは、『Messaging APIドキュメント』の「ローディングのアニメーションを表示する」を参照してください。

リクエストの例

# レート制限

100リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

# リクエストボディ

chatId

String

必須

ローディングのアニメーションを表示する対象ユーザーのユーザーID。

ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。

loadingSeconds

Number

任意

ローディングのアニメーションを表示する秒数。51015202530354045505560のいずれかの値を指定できます。

デフォルト値は20です。

# レスポンス

ステータスコード202と空のJSONオブジェクトを返します。

なお、以下のユーザーを表示先に指定してリクエストを行った場合、ステータスコード202が返りますが、実際にはローディングのアニメーションは表示されません。

  • LINE公式アカウントとのトーク画面を開いていないユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINEアカウントを削除したユーザー

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 ローディングのアニメーションを表示できませんでした。次のような理由が考えられます。
  • 無効な秒数が指定されています。
  • 無効なユーザーIDが指定されています。
  • グループトークまたは複数人トークが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、ローディングのアニメーションは表示されません。

エラーレスポンスの例


# 当月に送信できるメッセージ数の上限目安を取得する

GET https://api.line.me/v2/bot/message/quota

当月に送信できるメッセージ数の上限目安を取得します。無料メッセージ数と追加メッセージ数を合わせた値が返されます。

このエンドポイントで取得できるメッセージ数には、LINE Official Account Managerから送信するメッセージの数も含まれます。

追加メッセージの上限は、LINE Official Account Managerで設定します。設定方法について詳しくは、『LINEヤフー for Business』の「利用と請求(プラン変更やお支払い関連の管理) (opens new window)」を参照してください。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

type

String

上限目安が設定されているかどうかを示す値。以下のどちらかになります。

  • none:上限目安が未設定であることを示します。
  • limited:上限目安が設定されていることを示します。

value

Number

含まれないことがあります

当月に送信できるメッセージ数の上限目安。typeプロパティがlimitedの場合にのみ返されます。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# 当月のメッセージ利用状況を取得する

GET https://api.line.me/v2/bot/message/quota/consumption

当月に送信されたメッセージの数を取得します。

この操作により取得されるメッセージ数には、LINE Official Account Managerから送信するメッセージの数も含まれます。

この操作により取得されるメッセージ数は概算です。正確なメッセージ送信数を取得するには、LINE Official Account Managerを使用するか、送信済みのメッセージ数を取得するAPI操作を実行してください。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

totalUsage

Number

当月に送信されたメッセージの数

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# 送信済みの応答メッセージの数を取得する

GET https://api.line.me/v2/bot/message/delivery/reply

/bot/message/replyエンドポイントを使って送信されたメッセージの数を取得します。

この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

メッセージが送信された日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:メッセージ数を取得できます。
  • unreadydateに指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。

success

Number

含まれないことがあります

dateに指定した日付に、Messaging APIを使って送信されたメッセージの数。statusの値がreadyの場合にのみ、レスポンスに含まれます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なフォーマットの日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 送信済みのプッシュメッセージの数を取得する

GET https://api.line.me/v2/bot/message/delivery/push

/bot/message/pushエンドポイントを使って送信されたメッセージの数を取得します。

この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

メッセージが送信された日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:メッセージ数を取得できます。
  • unreadydateに指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。

success

Number

含まれないことがあります

dateに指定した日付に、Messaging APIを使って送信されたメッセージの数。statusの値がreadyの場合にのみ、レスポンスに含まれます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なフォーマットの日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 送信済みのマルチキャストメッセージの数を取得する

GET https://api.line.me/v2/bot/message/delivery/multicast

/bot/message/multicastエンドポイントを使って送信されたメッセージの数を取得します。

この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

メッセージが送信された日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:メッセージ数を取得できます。
  • unreadydateに指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。

success

Number

含まれないことがあります

dateに指定した日付に、Messaging APIを使って送信されたメッセージの数。statusの値がreadyの場合にのみ、レスポンスに含まれます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なフォーマットの日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 送信済みのブロードキャストメッセージの数を取得する

GET https://api.line.me/v2/bot/message/delivery/broadcast

/bot/message/broadcastエンドポイントを使って送信されたメッセージの数を取得します。

この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

メッセージが送信された日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:メッセージ数を取得できます。
  • unreadydateに指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。

success

Number

含まれないことがあります

dateに指定した日付に、Messaging APIを使って送信されたメッセージの数。statusの値がreadyの場合にのみ、レスポンスに含まれます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なフォーマットの日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 応答メッセージのメッセージオブジェクトを検証する

POST https://api.line.me/v2/bot/message/validate/reply

メッセージオブジェクトの配列が、応答メッセージを送るエンドポイントのリクエストボディmessagesプロパティの値として有効かを検証します。messagesプロパティ以外のプロパティの値が有効かは検証しません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

messages

Array of objects

必須

検証したいメッセージオブジェクトの配列

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)

エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)


# プッシュメッセージのメッセージオブジェクトを検証する

POST https://api.line.me/v2/bot/message/validate/push

メッセージオブジェクトの配列が、プッシュメッセージを送るエンドポイントのリクエストボディmessagesプロパティの値として有効かを検証します。messagesプロパティ以外のプロパティの値が有効かは検証しません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

messages

Array of objects

必須

検証したいメッセージオブジェクトの配列

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)

エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)


# マルチキャストメッセージのメッセージオブジェクトを検証する

POST https://api.line.me/v2/bot/message/validate/multicast

メッセージオブジェクトの配列が、マルチキャストメッセージを送るエンドポイントのリクエストボディmessagesプロパティの値として有効かを検証します。messagesプロパティ以外のプロパティの値が有効かは検証しません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

messages

Array of objects

必須

検証したいメッセージオブジェクトの配列

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)

エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)


# ナローキャストメッセージのメッセージオブジェクトを検証する

POST https://api.line.me/v2/bot/message/validate/narrowcast

メッセージオブジェクトの配列が、ナローキャストメッセージを送るエンドポイントのリクエストボディmessagesプロパティの値として有効かを検証します。messagesプロパティ以外のプロパティの値が有効かは検証しません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

messages

Array of objects

必須

検証したいメッセージオブジェクトの配列

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)

エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)


# ブロードキャストメッセージのメッセージオブジェクトを検証する

POST https://api.line.me/v2/bot/message/validate/broadcast

メッセージオブジェクトの配列が、ブロードキャストメッセージを送るエンドポイントのリクエストボディmessagesプロパティの値として有効かを検証します。messagesプロパティ以外のプロパティの値が有効かは検証しません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

messages

Array of objects

必須

検証したいメッセージオブジェクトの配列

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なメッセージオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)

エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)


# APIリクエストを再試行する

プッシュメッセージ、マルチキャストメッセージ、ナローキャストメッセージ、ブロードキャストメッセージに、リトライキー(X-Line-Retry-Key)をHTTPヘッダーに含めることで、同じAPIリクエストを重複して処理しないように再試行できます。

LINEプラットフォーム側のリトライキーの管理期間は24時間です。同じリトライキーを24時間を超えて使用すると、新しいAPIリクエストとして扱われます。

APIリクエストの再試行について詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。

同じリトライキーを24時間を超えて使用しないでください

同じリトライキーを24時間を超えて使用すると、同じリトライキーを含むAPIリクエストがすでに成功していても、新しいAPIリクエストとして成功します。その結果、重複したメッセージが送信されてしまいます。

リクエストの例

# リクエストヘッダー

X-Line-Retry-Key

任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)

※ APIリクエストを再試行する場合は必須です。

# すでにリクエストが受理されていた場合のレスポンス

同じリトライキーを含むリクエストがすでに受理されていた場合は、ステータスコード409と、すでに受理されたリクエストのリクエストIDを示すx-line-accepted-request-idヘッダー、および以下の情報を含むJSONオブジェクトを返します。

message

String

すでにリクエストが受理されていることを知らせるメッセージ

sentMessages

Array

含まれないことがあります

送信したメッセージの配列。プッシュメッセージを送信した場合のみ、レスポンスに含まれます。
最大件数:5

sentMessages.id

Number

含まれないことがあります

送信したメッセージのID。プッシュメッセージを送信した場合のみ、レスポンスに含まれます。

sentMessages.quoteToken

String

含まれないことがあります

メッセージの引用トークン。プッシュメッセージで、引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

レスポンスの例

# オーディエンス管理

オーディエンスを作成、更新、有効化、削除できます。オーディエンスは、ナローキャストメッセージを配信する際に指定します。

なお、オーディエンスは、LINE Official Account Manager (opens new window)でも作成できます。詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。

オーディエンス 作成方法
ユーザーIDアップロード用のオーディエンス
メッセージクリックオーディエンス
メッセージインプレッションオーディエンス
チャットタグオーディエンス LINE Official Account Manager (opens new window)
追加経路オーディエンス LINE Official Account Manager (opens new window)
予約オーディエンス LINE Official Account Manager (opens new window)
リッチメニューインプレッションオーディエンス LINE Official Account Manager (opens new window)
リッチメニュークリックオーディエンス LINE Official Account Manager (opens new window)
ウェブトラフィックオーディエンス
アプリイベントオーディエンス LINE広告 (opens new window)
動画視聴オーディエンス LINE広告 (opens new window)
画像クリックオーディエンス LINE広告 (opens new window)
注意
  • 日本(JP)、タイ(TH)、台湾(TW)のユーザーが作成したLINE公式アカウントの場合のみ、オーディエンスを利用できます。
  • Messaging APIでは、次のタイプのオーディエンスは作成できません。
    • チャットタグオーディエンス
    • 追加経路オーディエンス
    • 予約オーディエンス
    • リッチメニューインプレッションオーディエンス
    • リッチメニュークリックオーディエンス
    • ウェブトラフィックオーディエンス
    • アプリイベントオーディエンス
    • 動画視聴オーディエンス
    • 画像クリックオーディエンス

# オーディエンス管理に関するエラーの詳細

オーディエンス管理のエンドポイントでエラーが発生した際の詳細は、JSONレスポンスのdetails[].messageプロパティに含まれます。主なエラーの詳細は以下のとおりです。

メッセージ 説明
AUDIENCE_GROUP_CAN_NOT_UPLOAD_STATUS_EXPIRED オーディエンスを作成してから180日(15,552,000秒)を超えたため、このオーディエンスは使用できません。
AUDIENCE_GROUP_COUNT_MAX_OVER 作成できるオーディエンス数の上限(合計1,000件)に達しています。
AUDIENCE_GROUP_NAME_SIZE_OVER オーディエンスの名前が長すぎます。
AUDIENCE_GROUP_NAME_WRONG オーディエンスの名前に、無効な文字(例:\nなどの制御コード)を指定しました。
AUDIENCE_GROUP_NAME_EMPTY オーディエンスの名前が空であるか、空白文字のみを指定しました。
AUDIENCE_GROUP_NOT_FOUND オーディエンスが見つかりません。
AUDIENCE_GROUP_REQUESTID_DUPLICATE 既存のオーディエンスに指定したリクエストIDと同じ値を指定しました。
AUDIENCE_GROUP_UPLOAD_DESCRIPTION_SIZE_OVER オーディエンスの説明が長すぎます。
REQUEST_NOT_FOUND 指定したリクエストIDが誤っているか、指定したリクエストIDでオーディエンスを作成する準備ができていません。
TOO_OLD_MESSAGES メッセージを配信してから60日(5,184,000秒)を超えた場合、そのメッセージ(リクエストID)に対するオーディエンスは作成できません。
UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT
  • fileプロパティに指定したファイルに、無効なユーザーIDまたはIFAが入力されています。
  • audiences[].idプロパティに、無効なユーザーIDまたはIFAが指定されています。
このメッセージが返ってきた場合は、対処方法を参照してください。
UPLOAD_AUDIENCE_GROUP_NO_VALID_AUDIENCE_IDS
  • fileプロパティに指定したファイルに、有効なユーザーIDまたはIFAが入力されていません。
  • audiences[].idプロパティに、有効なユーザーIDまたはIFAが指定されていません。
UPLOAD_AUDIENCE_GROUP_TOO_MANY_AUDIENCE_IDS ユーザーIDまたはIFAの登録上限に達しています。
WRONG_BOT_ID 指定したリクエストIDに含まれるボットIDが、アクセストークンを発行したチャネルに関連付けられたボットと異なります。
ALREADY_ACTIVE オーディエンスグループは、すでに有効です。

# 対処方法

audiencesプロパティに無効なユーザーIDが含まれている場合

UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMATが返る場合は、プロフィール情報を取得するエンドポイントを使って、JSONに指定しているすべてのユーザーIDのプロフィール情報を取得してください。ステータスコード200以外を返すユーザーIDをJSONから除外したうえで、失敗したエンドポイントを再実行してください。


# ユーザーIDアップロード用のオーディエンスを作成する(JSON指定)

POST https://api.line.me/v2/bot/audienceGroup/upload

ユーザーIDアップロード用のオーディエンスを作成します。

このエンドポイントでは、送信対象アカウントをJSONで指定します。送信対象アカウントをテキストファイルで指定するエンドポイントも利用できます。

ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。

# オーディエンスに追加できるユーザーの条件

ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202が返され、オーディエンスに追加されます。

  • LINEアカウントを削除したユーザー
  • オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
  • オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー

なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。

同時処理数の制限があります

ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。

送信対象アカウントをIFA(Identifier For Advertisers)で指定するには手続きが必要です

送信対象アカウントをIFAで指定することもできますが、この機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。

ユーザーIDアップロード用のオーディエンスの仕様

オーディエンスの仕様は以下のとおりです。

項目 条件
チャネルあたりのオーディエンス数 最大1,000件
オーディエンスの保存期間 最大180日間(15,552,000秒間)
オーディエンスに、1リクエストでアップロードできるユーザーIDまたはIFAの数 JSONを使用する場合:最大10,000件
ファイルを使用する場合:最大1,500,000件
オーディエンスあたりのユーザー数 ユーザーIDアップロード用のオーディエンス:制限なし

ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。

有効なユーザーIDの確認方法

JSONのaudiencesプロパティで無効なユーザーIDが指定されていた場合、エラーレスポンス(details[].message: UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT)が返り、オーディエンスの作成に失敗します。このエンドポイントを実行する前に、audiencesプロパティに含まれるすべてのユーザーIDが有効であることを確認してください。

ユーザーIDが有効か確認するには、プロフィール情報を取得するエンドポイントを使用してください。ユーザーIDが有効な場合は、HTTPステータスコード200が返ります。200以外が返ってきた場合、そのユーザーIDは無効のため、audiencesプロパティには含めないようにしてください。

ユーザーIDを含まないオーディエンスのステータス

オーディエンス作成時にJSONのaudiencesプロパティが省略された、または空配列が指定された場合、ユーザーを含まない空のオーディエンスが作成されます。

空のオーディエンスは、オーディエンスに含まれるユーザーの数(audienceGroup.audienceCount)が0であり、配信に利用できません。そのため、レスポンスのaudienceGroup.statusIN_PROGRESSのまま、READYにはなりません。

LINEのプライバシーポリシー(2022年3月改定)に同意済みのユーザーのみが対象となります

ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。

そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

description

String

必須

オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。
最大文字数:120

isIfaAudience

Boolean

任意
  • 送信対象アカウントをIFAで指定する場合は、trueを指定します。
  • 送信対象アカウントをユーザーIDで指定する場合は、falseを指定するか、isIfaAudienceプロパティを省略します。

uploadDescription

String

任意

ジョブ(jobs[].description)に登録する説明
最大文字数:300

audiences

Array

任意

ユーザーIDまたはIFAの配列。
省略すると、空のオーディエンスが作成されます。
最大件数:10,000

audiences[].id

String

任意

ユーザーIDまたはIFA。空配列も指定できます。
空配列の場合、空のオーディエンスが作成されます。

# レスポンス

ステータスコード202と以下の情報を含むJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

audienceGroupId

Number

オーディエンスID

createRoute

String

オーディエンスの作成方法。

  • MESSAGING_API:Messaging APIで作成したオーディエンス

type

String

オーディエンスのタイプ。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス

description

String

オーディエンスの名前

created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

permission

String

作成したオーディエンスに対する更新権限。

  • READ_WRITE:オーディエンスを利用、更新できます。

expireTimestamp

Number

オーディエンスの有効期限。UNIX時間(秒)で返されます。

isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 作成できるオーディエンス数の上限(合計1,000件)に達している。
  • descriptionプロパティに最大文字数(120文字)より長い名前が指定されている。
  • descriptionプロパティに無効な文字(例:\nなどの制御コード)が指定されている。
  • descriptionプロパティが空であるか、空白文字のみが指定されている。
  • uploadDescriptionプロパティに最大文字数(300文字)より長い文字列が指定されている。
  • audiences[].idプロパティに、無効なユーザーIDまたはIFAが指定されている。
  • audiencesプロパティに最大件数(10,000件)より多いユーザーIDまたはIFAが指定されている。
429 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ユーザーIDアップロード用のオーディエンスを作成する(ファイル指定)

POST https://api-data.line.me/v2/bot/audienceGroup/upload/byFile
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

ユーザーIDアップロード用のオーディエンスを作成します。

このエンドポイントでは、送信対象アカウントをテキストファイルで指定します。送信対象アカウントをJSONで指定するエンドポイントも利用できます。

ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。

# オーディエンスに追加できるユーザーの条件

ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202が返され、オーディエンスに追加されます。

  • LINEアカウントを削除したユーザー
  • オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
  • オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー

なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。

同時処理数の制限があります

ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。

送信対象アカウントをIFA(Identifier For Advertisers)で指定するには手続きが必要です

送信対象アカウントをIFAで指定することもできますが、この機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。

ユーザーIDアップロード用のオーディエンスの仕様

オーディエンスの仕様は以下のとおりです。

項目 条件
チャネルあたりのオーディエンス数 最大1,000件
オーディエンスの保存期間 最大180日間(15,552,000秒間)
オーディエンスに、1リクエストでアップロードできるユーザーIDまたはIFAの数 JSONを使用する場合:最大10,000件
ファイルを使用する場合:最大1,500,000件
オーディエンスあたりのユーザー数 ユーザーIDアップロード用のオーディエンス:制限なし

ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。

LINEのプライバシーポリシー(2022年3月改定)に同意済みのユーザーのみが対象となります

ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。

そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。

リクエストの例

テキストファイルの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

multipart/form-data

# リクエストボディ

description

String

必須

オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。
最大文字数:120

isIfaAudience

Boolean

任意
  • 送信対象アカウントをIFAで指定する場合は、trueを指定します。
  • 送信対象アカウントをユーザーIDで指定する場合は、falseを指定するか、isIfaAudienceプロパティを省略します。

uploadDescription

String

任意

ジョブ(jobs[].description)に登録する説明
最大文字数:300

file

File

必須

ユーザーIDまたはIFAを、1行に1件入力したテキストファイル。Content-Typeは、text/plainを指定してください。
最大ファイル数:1
最大行数:1,500,000

# レスポンス

ステータスコード202と以下の情報を含むJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

audienceGroupId

Number

オーディエンスID

createRoute

String

オーディエンスの作成方法。

  • MESSAGING_API:Messaging APIで作成したオーディエンス

type

String

オーディエンスのタイプ。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス

description

String

オーディエンスの名前

created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

permission

String

作成したオーディエンスに対する更新権限。

  • READ_WRITE:オーディエンスを利用、更新できます。

expireTimestamp

Number

オーディエンスの有効期限。UNIX時間(秒)で返されます。

isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • fileプロパティに指定したファイルに、無効なユーザーIDまたはIFAが入力されている。
  • fileプロパティに最大件数(1,500,000件)より多いユーザーIDまたはIFAを入力したファイルが指定されている。
  • fileプロパティに指定したファイルに、有効なユーザーIDまたはIFAが指定されていない。
  • 作成できるオーディエンス数の上限(合計1,000件)に達している。
  • descriptionプロパティに最大文字数(120文字)より長い名前が指定されている。
  • descriptionプロパティに無効な文字(例:\nなどの制御コード)が指定されている。
  • descriptionプロパティが空であるか、空白文字のみが指定されている。
  • uploadDescriptionプロパティに最大文字数(300文字)より長い文字列が指定されている。
415 fileプロパティに、サポートされていないメディア形式のファイルが指定されている。
429 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ユーザーIDアップロード用のオーディエンスにユーザーIDまたはIFAを追加する(JSON指定)

PUT https://api.line.me/v2/bot/audienceGroup/upload

ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加します。

このエンドポイントでは、送信対象アカウントをJSONで指定します。送信対象アカウントをテキストファイルで指定するエンドポイントも利用できます。

# オーディエンスに追加できるユーザーの条件

ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202が返され、オーディエンスに追加されます。

  • LINEアカウントを削除したユーザー
  • オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
  • オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー

なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。

同時処理数の制限があります

ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。

リクエストタイムアウト値について

リクエストタイムアウトを30秒以上に設定することを強く推奨します。

有効なユーザーIDの確認方法

JSONのaudiencesプロパティで無効なユーザーIDが指定されていた場合、エラーレスポンス(details[].message: UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT)が返り、ユーザーIDの追加に失敗します。このエンドポイントを実行する前に、audiencesプロパティに含まれるすべてのユーザーIDが有効であることを確認してください。

ユーザーIDが有効か確認するには、プロフィール情報を取得するエンドポイントを使用してください。ユーザーIDが有効な場合は、HTTPステータスコード200が返ります。200以外が返ってきた場合、そのユーザーIDは無効のため、audiencesプロパティには含めないようにしてください。

ユーザーIDまたはIFAの種類は変更できません

ユーザーIDアップロード用のオーディエンスを作成したときと同じ種類(ユーザーIDまたはIFA)のデータを追加してください。たとえば、初めにIFAを指定して作成したオーディエンスに、ユーザーIDを指定することはできません。

オーディエンスを作成したときに指定した送信対象アカウントの種類(ユーザーIDまたはIFA)は、オーディエンスのisIfaAudienceプロパティで確認できます。詳しくは、「オーディエンスの情報を取得する」を参照してください。

ユーザーIDまたはIFAは削除できません

一度追加したユーザーIDまたはIFAを削除することはできません。

LINEのプライバシーポリシー(2022年3月改定)に同意済みのユーザーのみが対象となります

ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。

そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

audienceGroupId

Number

必須

オーディエンスID

uploadDescription

String

任意

ジョブ(jobs[].description)に登録する説明
最大文字数:300

audiences

Array

必須

ユーザーIDまたはIFAの配列
最大件数:10,000

audiences[].id

String

必須

ユーザーIDまたはIFA

# レスポンス

HTTPステータスコード202と空のJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • audiences[].idプロパティに、無効なユーザーIDまたはIFAが指定されている。
  • audiencesプロパティに最大件数(10,000件)より多いユーザーIDまたはIFAが指定されている。
  • audiences[].idプロパティに、有効なユーザーIDまたはIFAが指定されていない。
  • 保存期間を超えたオーディエンスが指定されている。
  • 存在しないオーディエンスが指定されている。
  • uploadDescriptionプロパティに最大文字数(300文字)より長い文字列が指定されている。
429 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ユーザーIDアップロード用のオーディエンスにユーザーIDまたはIFAを追加する(ファイル指定)

PUT https://api-data.line.me/v2/bot/audienceGroup/upload/byFile
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加します。

このエンドポイントでは、送信対象アカウントをテキストファイルで指定します。送信対象アカウントをJSONで指定するエンドポイントも利用できます。

# オーディエンスに追加できるユーザーの条件

ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202が返され、オーディエンスに追加されます。

  • LINEアカウントを削除したユーザー
  • オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
  • オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー

なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。

同時処理数の制限があります

ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。

リクエストタイムアウト値について

リクエストタイムアウトを30秒以上に設定することを強く推奨します。

ユーザーIDまたはIFAの種類は変更できません

ユーザーIDアップロード用のオーディエンスを作成したときと同じ種類(ユーザーIDまたはIFA)のデータを追加してください。たとえば、初めにIFAを指定して作成したオーディエンスに、ユーザーIDを指定することはできません。

オーディエンスを作成したときに指定した送信対象アカウントの種類(ユーザーIDまたはIFA)は、オーディエンスのisIfaAudienceプロパティで確認できます。詳しくは、「オーディエンスの情報を取得する」を参照してください。

ユーザーIDまたはIFAは削除できません

一度追加したユーザーIDまたはIFAを削除することはできません。

LINEのプライバシーポリシー(2022年3月改定)に同意済みのユーザーのみが対象となります

ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。

そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。

リクエストの例

テキストファイルの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

multipart/form-data

# リクエストボディ

audienceGroupId

Number

必須

オーディエンスID

uploadDescription

String

任意

ジョブ(jobs[].description)に登録する説明
最大文字数:300

file

File

必須

ユーザーIDまたはIFAを、1行に1件入力したテキストファイル。Content-Typeは、text/plainを指定してください。
最大ファイル数:1
最大行数:1,500,000

# レスポンス

HTTPステータスコード202と空のJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • fileプロパティに指定したファイルに、無効なユーザーIDまたはIFAが入力されている。
  • fileプロパティに最大件数(1,500,000件)より多いユーザーIDまたはIFAを入力したファイルが指定されている。
  • fileプロパティに指定したファイルに、有効なユーザーIDまたはIFAが指定されていない。
  • 保存期間を超えたオーディエンスが指定されている。
  • 存在しないオーディエンスが指定されている。
  • uploadDescriptionプロパティに最大文字数(300文字)より長い文字列が指定されている。
415 fileプロパティに、サポートされていないメディア形式のファイルが指定されている。
429 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# メッセージクリックオーディエンスを作成する

POST https://api.line.me/v2/bot/audienceGroup/click

メッセージクリックオーディエンスを作成します。

メッセージクリックオーディエンスは、ブロードキャストメッセージまたはナローキャストメッセージに記載されたURLをクリックしたユーザーを集めたオーディエンスです。少なくとも1つのリンクをクリックしたユーザーが送信対象になります。

対象のメッセージは、リクエストIDで指定します。

メッセージクリックオーディエンスの仕様

オーディエンスの仕様は以下のとおりです。

項目 条件
チャネルあたりのオーディエンス数 最大1,000件
オーディエンスの保存期間 最大180日間(15,552,000秒間)
オーディエンスあたりのユーザー数 メッセージクリックオーディエンス:最小50件
メッセージを配信してからリターゲティング用オーディエンス(※)を作成できる期間 最大60日間(5,184,000秒間)

※メッセージクリックオーディエンスおよびメッセージインプレッションオーディエンスを指します。

ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

description

String

必須

オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。
最大文字数:120

requestId

String

必須

配信から60日以内のブロードキャストメッセージまたはナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

注意

応答メッセージ、プッシュメッセージ、およびマルチキャストメッセージのリクエストIDは、利用できません。

clickUrl

String

任意

ユーザーがクリックしたURL。省略した場合は、メッセージ内の任意のURLをクリックしたユーザーが送信対象になります。
最大文字数:2,000

# レスポンス

ステータスコード202と以下の情報を含むJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

audienceGroupId

Number

オーディエンスID

createRoute

String

オーディエンスの作成方法。

  • MESSAGING_API:Messaging APIで作成したオーディエンス

type

String

オーディエンスのタイプ。

  • CLICK:メッセージクリックオーディエンス

description

String

オーディエンスの名前

created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

permission

String

作成したオーディエンスに対する更新権限。

  • READ_WRITE:オーディエンスを利用、更新できます。

expireTimestamp

Number

オーディエンスの有効期限。UNIX時間(秒)で返されます。

isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

requestId

String

オーディエンスを作成したときに指定したリクエストID

clickUrl

String

含まれないことがあります

オーディエンスを作成したときに指定したURL。リクエスト時にclickUrlプロパティに値を指定した場合にのみ含まれます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 作成できるオーディエンス数の上限(合計1,000件)に達している。
  • descriptionプロパティに最大文字数(120文字)より長い名前が指定されている。
  • descriptionプロパティに無効な文字(例:\nなどの制御コード)が指定されている。
  • requestIDプロパティとclickUrlプロパティに既存のオーディエンスと同じ組み合わせの値が指定されている。
  • オーディエンスを作成できる期間を超えている。
  • 存在しないリクエストIDが指定されている。
  • 指定したリクエストIDでオーディエンスを作成する準備ができていない。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# メッセージインプレッションオーディエンスを作成する

POST https://api.line.me/v2/bot/audienceGroup/imp

メッセージインプレッションオーディエンスを作成します。

メッセージインプレッションオーディエンスは、ブロードキャストメッセージまたはナローキャストメッセージを表示したユーザーを集めたオーディエンスです。少なくとも1つの吹き出しを表示したユーザーが送信対象になります。

対象のメッセージは、リクエストIDで指定します。

メッセージインプレッションオーディエンスの仕様

オーディエンスの仕様は以下のとおりです。

項目 条件
チャネルあたりのオーディエンス数 最大1,000件
オーディエンスの保存期間 最大180日間(15,552,000秒)
オーディエンスあたりのユーザー数 メッセージインプレッションオーディエンス:最小50件
メッセージを配信してからリターゲティング用オーディエンス(※)を作成できる期間 最大60日間(5,184,000秒間)

※メッセージクリックオーディエンスおよびメッセージインプレッションオーディエンスを指します。

ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

description

String

必須

オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。
最大文字数:120

requestId

String

必須

配信から60日以内のブロードキャストメッセージまたはナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

# レスポンス

ステータスコード202と以下の情報を含むJSONオブジェクトを返します。

オーディエンスの作成は非同期に行われます

オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。

audienceGroupId

Number

オーディエンスID

createRoute

String

オーディエンスの作成方法。

  • MESSAGING_API:Messaging APIで作成したオーディエンス

type

String

オーディエンスのタイプ。

  • IMP:メッセージインプレッションオーディエンス

description

String

オーディエンスの名前

created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

permission

String

作成したオーディエンスに対する更新権限。

  • READ_WRITE:オーディエンスを利用、更新できます。

expireTimestamp

Number

オーディエンスの有効期限。UNIX時間(秒)で返されます。

isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

requestId

String

オーディエンスを作成したときに指定したリクエストID

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 作成できるオーディエンス数の上限(合計1,000件)に達している。
  • descriptionプロパティに最大文字数(120文字)より長い名前が指定されている。
  • descriptionプロパティに無効な文字(例:\nなどの制御コード)が指定されている。
  • 既存のオーディエンスに指定したリクエストIDと同じ値が指定されている。
  • オーディエンスを作成できる期間を超えている。
  • 存在しないリクエストIDが指定されている。
  • 指定したリクエストIDでオーディエンスを作成する準備ができていない。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# オーディエンスの名前を更新する

PUT https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}/updateDescription

既存のオーディエンスの名前を変更します。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# パスパラメータ

audienceGroupId

必須

オーディエンスID

# リクエストボディ

description

String

必須

オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。
最大文字数:120

# レスポンス

HTTPステータスコード200と空のJSONオブジェクトを返します。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • descriptionプロパティに最大文字数(120文字)より長い名前が指定されている。
  • descriptionプロパティに無効な文字(例:\nなどの制御コード)が指定されている。
  • 存在しないオーディエンスが指定されている。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# オーディエンスを削除する

DELETE https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}

オーディエンスを削除します。

削除したオーディエンスは元に戻せません

削除する前に、オーディエンスが使用されていないことを確認してください。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

audienceGroupId

必須

オーディエンスID

# レスポンス

HTTPステータスコード202と空のJSONオブジェクトを返します。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 存在しないオーディエンスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# オーディエンスの情報を取得する

GET https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}

オーディエンスの情報を取得します。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

audienceGroupId

必須

オーディエンスID

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

audienceGroup

Object

オーディエンスグループオブジェクト

audienceGroup.audienceGroupId

Number

オーディエンスID

audienceGroup.createRoute

String

オーディエンスの作成方法。以下のいずれかの値です。

audienceGroup.type

String

オーディエンスのタイプ。以下のいずれかの値です。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス
  • CLICK:メッセージクリックオーディエンス
  • IMP:メッセージインプレッションオーディエンス
  • CHAT_TAG:チャットタグオーディエンス
  • FRIEND_PATH:追加経路オーディエンス
  • RESERVATION:予約オーディエンス
  • RICHMENU_IMP:リッチメニューインプレッションオーディエンス
  • RICHMENU_CLICK:リッチメニュークリックオーディエンス
  • APP_EVENT:アプリイベントオーディエンス
  • VIDEO_VIEW:動画視聴オーディエンス
  • WEBTRAFFIC:ウェブトラフィックオーディエンス
  • IMAGE_CLICK:画像クリックオーディエンス

詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。

audienceGroup.description

String

オーディエンスの名前

audienceGroup.status

String

オーディエンスのステータス。以下のいずれかの値です。

  • IN_PROGRESS:準備中。READYになるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESSのまま更新されません。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
  • INACTIVE:オーディエンスが無効です。
  • ACTIVATING:オーディエンスを有効化しています。

audienceGroup.audienceCount

Number

オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。

  • ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
  • チャットタグオーディエンス

オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroup.audienceCountの値と、メッセージの送信対象となるユーザーの数は異なります。

audienceGroup.created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

audienceGroup.permission

String

オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE、更新できない場合はREADが返ります。

  • READ:オーディエンスを利用できますが、更新はできません。
  • READ_WRITE:オーディエンスを利用、更新できます。

audienceGroup.isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

audienceGroup.requestId

String

含まれないことがあります

オーディエンスを作成したときに指定したリクエストID。audienceGroup.typeCLICKまたはIMPの場合にのみ含まれます。

audienceGroup.clickUrl

String

含まれないことがあります

オーディエンスを作成したときに指定したURL。audienceGroup.typeCLICKで、リンク先URLが指定されている場合にのみ含まれます。

audienceGroup.failedType

String

含まれないことがあります

失敗した原因。audienceGroup.statusFAILEDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

audienceGroup.activated

Number

含まれないことがあります

オーディエンスが有効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroup.inactivatedTimestamp

Number

含まれないことがあります

オーディエンスが無効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroup.expireTimestamp

Number

含まれないことがあります

オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。

jobs

Array

ジョブの配列。ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加した最新履歴を管理する配列です。それ以外のオーディエンスの場合は空配列が返ります。
最大件数:50

jobs[].audienceGroupJobId

Number

ジョブID

jobs[].audienceGroupId

Number

オーディエンスID

jobs[].description

String

ジョブの説明。ユーザーIDまたはIFAを追加する際にuploadDescriptionプロパティに値を指定しなかった場合はnullが返されます。

jobs[].type

String

ジョブの種類。以下のいずれかの値です。

  • DIFF_ADD:Messaging APIでユーザーIDまたはIFAを追加したことを示します。

jobs[].status

String

このプロパティの利用は非推奨です。ジョブのステータスはjobs[].jobStatusを参照してください。

jobs[].failedType

String

失敗した原因。jobs[].jobStatusFAILEDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

jobs[].jobStatusFAILED以外の場合はnullが返されます。

jobs[].audienceCount

Number

追加または削除された送信対象アカウントの数

jobs[].created

Number

ジョブが作成された時刻。UNIX時間(秒)で返されます。

jobs[].jobStatus

String

ジョブのステータス。以下のいずれかの値です。

  • QUEUED:待機中
  • WORKING:実行中
  • FINISHED:成功
  • FAILED:失敗

adaccount

Object

含まれないことがあります

広告アカウントオブジェクト。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

adaccount[].name

String

オーディエンスグループを作成した広告アカウント名

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 存在しないオーディエンスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 複数のオーディエンスの情報を取得する

GET https://api.line.me/v2/bot/audienceGroup/list

複数のオーディエンスの情報を取得します。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

page

必須

取得するページ番号。1以上を指定してください。

description

任意

取得するオーディエンスの名前。部分一致で検索できます。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。省略した場合は、オーディエンスの名前を検索条件として使用しません。

status

任意

取得するオーディエンスのステータス。省略した場合は、オーディエンスのステータスを検索条件として使用しません。以下のいずれかの値です。

  • IN_PROGRESS:準備中。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
  • INACTIVE:オーディエンスが無効です。
  • ACTIVATING:オーディエンスを有効化しています。

size

任意

1ページごとのオーディエンス数。デフォルト値は20です。
最大値:40

includesExternalPublicGroups

任意
  • true:同じボットに関連付けられた、すべてのチャネルで作成された公開オーディエンスを取得(デフォルト)
  • false:同じチャネルに作成されたオーディエンスのみを取得

createRoute

任意

オーディエンスの作成方法。省略した場合は、すべてのオーディエンスを取得します。

複数のパラメータを指定した場合、OR条件となります。

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

audienceGroups

Array

オーディエンスの情報の配列。指定した条件に該当するオーディエンスが存在しなかった場合は空配列が返ります。

audienceGroups[].audienceGroupId

Number

オーディエンスID

audienceGroups[].createRoute

String

オーディエンスの作成方法。以下のいずれかの値です。

audienceGroups[].type

String

オーディエンスのタイプ。以下のいずれかの値です。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス
  • CLICK:メッセージクリックオーディエンス
  • IMP:メッセージインプレッションオーディエンス
  • CHAT_TAG:チャットタグオーディエンス
  • FRIEND_PATH:追加経路オーディエンス
  • RESERVATION:予約オーディエンス
  • RICHMENU_IMP:リッチメニューインプレッションオーディエンス
  • RICHMENU_CLICK:リッチメニュークリックオーディエンス
  • APP_EVENT:アプリイベントオーディエンス
  • VIDEO_VIEW:動画視聴オーディエンス
  • WEBTRAFFIC:ウェブトラフィックオーディエンス
  • IMAGE_CLICK:画像クリックオーディエンス

詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。

audienceGroups[].description

String

オーディエンスの名前

audienceGroups[].status

String

オーディエンスのステータス。以下のいずれかの値です。

  • IN_PROGRESS:準備中。READYになるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESSのまま更新されません。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
  • INACTIVE:オーディエンスが無効です。
  • ACTIVATING:オーディエンスを有効化しています。

audienceGroups[].audienceCount

Number

オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。

  • ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
  • チャットタグオーディエンス

オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroups[].audienceCountの値と、メッセージの送信対象となるユーザーの数は異なります。

audienceGroups[].created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

audienceGroups[].permission

String

オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE、更新できない場合はREADが返ります。

  • READ:オーディエンスを利用できますが、更新はできません。
  • READ_WRITE:オーディエンスを利用、更新できます。

audienceGroups[].isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

audienceGroups[].activated

Number

含まれないことがあります

オーディエンスが有効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroups[].inactivatedTimestamp

Number

含まれないことがあります

オーディエンスが無効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroups[].expireTimestamp

Number

含まれないことがあります

オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。

audienceGroups[].requestId

String

含まれないことがあります

オーディエンスを作成したときに指定したリクエストID。audienceGroups[].typeCLICKまたはIMPの場合にのみ含まれます。

audienceGroups[].clickUrl

String

含まれないことがあります

オーディエンスを作成したときに指定したURL。audienceGroups[].typeCLICKで、リンク先URLが指定されている場合にのみ含まれます。

audienceGroups[].failedType

String

含まれないことがあります

失敗した原因。audienceGroups[].statusFAILEDまたはEXPIREDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

hasNextPage

Boolean

次のページが存在する場合は、true

totalCount

Number

指定した条件で取得できるオーディエンスの総数

readWriteAudienceGroupTotalCount

Number

指定した条件で取得できるオーディエンスのうち、更新権限(audienceGroups[].permission)がREAD_WRITEになっているオーディエンスの数

page

Number

現在のページ番号

size

Number

現在のページに含まれる最大のオーディエンス数

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 クエリパラメータに無効な値が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ビジネスマネージャーで共有されたオーディエンスの情報を取得する

GET https://api.line.me/v2/bot/audienceGroup/shared/{audienceGroupId}

ビジネスマネージャー (opens new window)で共有されたオーディエンスの情報を取得します。

ビジネスマネージャーについて

ビジネスマネージャーを使うことで、特定のオーディエンスを複数のサービス間で共有できます。ビジネスマネージャーでオーディエンスを横断利用することで、エンドユーザーとのより良いコミュニケーションが実現できます。

詳しくは、『LINE DATA SOLUTION』の「ビジネスマネージャー (opens new window)」を参照してください。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

audienceGroupId

必須

情報を取得したいオーディエンスのオーディエンスID。

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

audienceGroup

Object

オーディエンスグループオブジェクト

audienceGroup.audienceGroupId

Number

オーディエンスID

audienceGroup.createRoute

String

オーディエンスの作成方法。以下のいずれかの値です。

audienceGroup.type

String

オーディエンスのタイプ。以下のいずれかの値です。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス
  • CLICK:メッセージクリックオーディエンス
  • IMP:メッセージインプレッションオーディエンス
  • CHAT_TAG:チャットタグオーディエンス
  • FRIEND_PATH:追加経路オーディエンス
  • RESERVATION:予約オーディエンス
  • RICHMENU_IMP:リッチメニューインプレッションオーディエンス
  • RICHMENU_CLICK:リッチメニュークリックオーディエンス
  • APP_EVENT:アプリイベントオーディエンス
  • VIDEO_VIEW:動画視聴オーディエンス
  • WEBTRAFFIC:ウェブトラフィックオーディエンス
  • IMAGE_CLICK:画像クリックオーディエンス

詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。

audienceGroup.description

String

オーディエンスの名前

audienceGroup.status

String

オーディエンスのステータス。以下のいずれかの値です。

  • IN_PROGRESS:準備中。READYになるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESSのまま更新されません。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
  • INACTIVE:オーディエンスが無効です。
  • ACTIVATING:オーディエンスを有効化しています。

audienceGroup.audienceCount

Number

オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。

  • ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
  • チャットタグオーディエンス

オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroup.audienceCountの値と、メッセージの送信対象となるユーザーの数は異なります。

audienceGroup.created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

audienceGroup.permission

String

オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE、更新できない場合はREADが返ります。

  • READ:オーディエンスを利用できますが、更新はできません。
  • READ_WRITE:オーディエンスを利用、更新できます。

audienceGroup.isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

audienceGroups[].webtraffic

Object

含まれないことがあります

ウェブトラフィックオブジェクトaudienceGroups[].typeWEBTRAFFICの場合にのみ含まれます。

audienceGroup.requestId

String

含まれないことがあります

オーディエンスを作成したときに指定したリクエストID。audienceGroup.typeCLICKまたはIMPの場合にのみ含まれます。

audienceGroup.clickUrl

String

含まれないことがあります

オーディエンスを作成したときに指定したURL。audienceGroup.typeCLICKで、リンク先URLが指定されている場合にのみ含まれます。

audienceGroup.failedType

String

含まれないことがあります

失敗した原因。audienceGroup.statusFAILEDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

audienceGroup.activated

Number

含まれないことがあります

オーディエンスが有効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroup.inactivatedTimestamp

Number

含まれないことがあります

オーディエンスが無効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroup.expireTimestamp

Number

含まれないことがあります

オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。

jobs

Array

ジョブの配列。ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加した最新履歴を管理する配列です。それ以外のオーディエンスの場合は空配列が返ります。
最大件数:50

jobs[].audienceGroupJobId

Number

ジョブID

jobs[].audienceGroupId

Number

オーディエンスID

jobs[].description

String

ジョブの説明。ユーザーIDまたはIFAを追加する際にuploadDescriptionプロパティに値を指定しなかった場合はnullが返されます。

jobs[].type

String

ジョブの種類。以下のいずれかの値です。

  • DIFF_ADD:Messaging APIでユーザーIDまたはIFAを追加したことを示します。

jobs[].status

String

このプロパティの利用は非推奨です。ジョブのステータスはjobs[].jobStatusを参照してください。

jobs[].failedType

String

失敗した原因。jobs[].jobStatusFAILEDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

jobs[].jobStatusFAILED以外の場合はnullが返されます。

jobs[].audienceCount

Number

追加または削除された送信対象アカウントの数

jobs[].created

Number

ジョブが作成された時刻。UNIX時間(秒)で返されます。

jobs[].jobStatus

String

ジョブのステータス。以下のいずれかの値です。

  • QUEUED:待機中
  • WORKING:実行中
  • FINISHED:成功
  • FAILED:失敗

owner.serviceType

String

オーディエンスを作成したサービス名称。以下のいずれかの値を返します。

  • bm:ビジネスマネージャー
  • lap:LINE広告
  • account:LINE公式アカウント
  • yda:Yahoo!広告

owner.id

String

オーディエンスを作成したアカウントのID。

owner.name

String

オーディエンスを作成したアカウントの名前。

レスポンスの例

# ウェブトラフィックオブジェクト

ウェブトラフィックオーディエンスについての情報を表すオブジェクトです。

webtrafficIsMyTag

Boolean

LINE TagがMessaging APIチャネルと紐づいているLINE公式アカウントで作成されている場合はtrueを返します。

webtrafficBmTagSharingStatus

String

LINE Tagがビジネスマネージャー上で共有されているかどうかを表す値。

  • SHARED:ビジネスマネージャー上で共有されている
  • UNSHARED:ビジネスマネージャー上で共有されていない

webtrafficIsTagDeleted

Boolean

このウェブトラフィックオーディエンスで使用されているLINE Tagが既に削除されている場合はtrueを返します。

webtrafficTagCreateRoute

String

ウェブトラフィックオーディエンスの作成方法。以下のいずれかの値です。

webtrafficVisitType

String

LINE Tagのマッチング方法。以下のいずれかの値です。

  • VISIT_ALL:すべての訪問ユーザー
  • URL_MATCHING:URL条件
  • EVENT_MATCHING:イベント指定

webtrafficRetentionDays

String

ウェブトラフィックオーディエンスの保有期間

webtrafficTagEventType

String

含まれないことがあります

イベントコードの種類。webtrafficVisitTypeEVENT_MATCHINGの場合にのみ含まれます。以下のいずれかの値です。

  • CONVERSION_EVENT:コンバージョンコード
  • CUSTOM_EVENT:カスタムイベントコード

webtrafficCustomEventName

String

含まれないことがあります

カスタムイベント名。webtrafficVisitTypeEVENT_MATCHINGかつwebtrafficTagEventTypeCUSTOM_EVENTの場合にのみ含まれます。

webtrafficMatchingType

String

含まれないことがあります

LINE Tagのイベント判定方法。webtrafficVisitTypeEVENT_MATCHINGまたはURL_MATCHINGの場合にのみ含まれます。値は常にNORMALです。

webtrafficConditionGroup

Array

マッチング条件を表す配列。

webtrafficConditionGroup[].conditionType

String

keywords配列に含まれるキーワードとのマッチング条件。以下のいずれかの値です。

  • CONTAIN:キーワードを含む
  • NOT_CONTAIN:キーワードを含まない
  • EQUAL_TO:キーワードと一致する

webtrafficConditionGroup[].keywords[]

Array of strings

マッチング条件に使用されるキーワードの配列。

webtrafficTagId

String

LINE TagのタグID。

webtrafficTagOwnerName

String

LINE Tagを発行したアカウントの名前。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 存在しないオーディエンスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ビジネスマネージャーで共有されたオーディエンスのリストを取得する

GET https://api.line.me/v2/bot/audienceGroup/shared/list

ビジネスマネージャー (opens new window)で共有されたオーディエンスのリストを取得します。

ビジネスマネージャーで共有されたオーディエンスの情報を取得する」エンドポイントを使うことで、それぞれのオーディエンスについて、より詳細な情報を取得できます。

ビジネスマネージャーについて

ビジネスマネージャーを使うことで、特定のオーディエンスを複数のサービス間で共有できます。ビジネスマネージャーでオーディエンスを横断利用することで、エンドユーザーとのより良いコミュニケーションが実現できます。

詳しくは、『LINE DATA SOLUTION』の「ビジネスマネージャー (opens new window)」を参照してください。

リクエストの例

# レート制限

60リクエスト/分

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

page

任意

取得するページ番号。1以上を指定してください。省略した場合は、1ページ目を取得します。

オーディエンスをすべて取得する場合、レスポンスのaudienceGroups配列が、1ページごとのオーディエンス数(size)未満の件数になるまで、pageをインクリメントしてリクエストを繰り返します。

description

任意

取得するオーディエンスの名前。部分一致で検索できます。なお、大文字と小文字は区別されないため、AUDIENCEaudienceは同じ名前と判定されます。省略した場合は、オーディエンスの名前を検索条件として使用しません。

status

任意

取得するオーディエンスのステータス。以下のいずれかの値で指定します。省略した場合は、オーディエンスのステータスを検索条件として使用しません。

  • IN_PROGRESS:準備中。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。

size

任意

1ページごとのオーディエンス数。デフォルト値は20です。
最大値:40

createRoute

任意

オーディエンスの作成方法。省略した場合は、すべてのオーディエンスを取得します。

複数のパラメータを指定した場合、OR条件となります。

includesOwnedAudienceGroups

任意

ビジネスマネージャーで共有されたオーディエンスに加えて、LINE公式アカウントで作成したオーディエンスを含めるかどうかの設定。デフォルト値はfalseです。

  • true:LINE公式アカウントで作成したオーディエンスを含めて取得
  • false:ビジネスマネージャーで共有されたオーディエンスのみを取得

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

audienceGroups

Array

オーディエンスの情報の配列。指定した条件に該当するオーディエンスが存在しなかった場合は空配列が返ります。

audienceGroups[].audienceGroupId

Number

オーディエンスID

audienceGroups[].createRoute

String

オーディエンスの作成方法。以下のいずれかの値です。

audienceGroups[].type

String

オーディエンスのタイプ。以下のいずれかの値です。

  • UPLOAD:ユーザーIDアップロード用のオーディエンス
  • CLICK:メッセージクリックオーディエンス
  • IMP:メッセージインプレッションオーディエンス
  • CHAT_TAG:チャットタグオーディエンス
  • FRIEND_PATH:追加経路オーディエンス
  • RESERVATION:予約オーディエンス
  • RICHMENU_IMP:リッチメニューインプレッションオーディエンス
  • RICHMENU_CLICK:リッチメニュークリックオーディエンス
  • APP_EVENT:アプリイベントオーディエンス
  • VIDEO_VIEW:動画視聴オーディエンス
  • WEBTRAFFIC:ウェブトラフィックオーディエンス
  • IMAGE_CLICK:画像クリックオーディエンス

詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。

audienceGroups[].description

String

オーディエンスの名前

audienceGroups[].status

String

オーディエンスのステータス。以下のいずれかの値です。

  • IN_PROGRESS:準備中。READYになるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESSのまま更新されません。
  • READY:配信に利用可能。
  • FAILED:作成時にエラーが発生。
  • EXPIRED:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
  • INACTIVE:オーディエンスが無効です。
  • ACTIVATING:オーディエンスを有効化しています。

audienceGroups[].audienceCount

Number

オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。

  • ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
  • チャットタグオーディエンス

オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroups[].audienceCountの値と、メッセージの送信対象となるユーザーの数は異なります。

audienceGroups[].created

Number

オーディエンスが作成された時刻。UNIX時間(秒)で返されます。

audienceGroups[].permission

String

オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE、更新できない場合はREADが返ります。

  • READ:オーディエンスを利用できますが、更新はできません。
  • READ_WRITE:オーディエンスを利用、更新できます。

audienceGroups[].isIfaAudience

Boolean

ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。

  • true:IFAで指定する
  • false:ユーザーIDで指定する(デフォルト)

audienceGroups[].activated

Number

含まれないことがあります

オーディエンスが有効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroups[].inactivatedTimestamp

Number

含まれないことがあります

オーディエンスが無効化した時間。LINE広告 (opens new window)LINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。

audienceGroups[].expireTimestamp

Number

含まれないことがあります

オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。

audienceGroups[].webtraffic

Object

含まれないことがあります

ウェブトラフィックオブジェクトaudienceGroups[].typeWEBTRAFFICの場合にのみ含まれます。

audienceGroups[].requestId

String

含まれないことがあります

オーディエンスを作成したときに指定したリクエストID。audienceGroups[].typeCLICKまたはIMPの場合にのみ含まれます。

audienceGroups[].clickUrl

String

含まれないことがあります

オーディエンスを作成したときに指定したURL。audienceGroups[].typeCLICKで、リンク先URLが指定されている場合にのみ含まれます。

audienceGroups[].failedType

String

含まれないことがあります

失敗した原因。audienceGroups[].statusFAILEDまたはEXPIREDの場合にのみ含まれます。以下のいずれかの値です。

  • AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。
  • INTERNAL_ERROR:内部サーバーのエラーです。

hasNextPage

Boolean

次のページが存在する場合は、true

totalCount

Number

指定した条件で取得できるオーディエンスの総数

readWriteAudienceGroupTotalCount

Number

指定した条件で取得できるオーディエンスのうち、更新権限(audienceGroups[].permission)がREAD_WRITEになっているオーディエンスの数

page

Number

現在のページ番号

size

Number

現在のページに含まれる最大のオーディエンス数

レスポンスの例

# ウェブトラフィックオブジェクト

ウェブトラフィックオーディエンスについての情報を表すオブジェクトです。

webtrafficIsMyTag

Boolean

LINE TagがMessaging APIチャネルと紐づいているLINE公式アカウントで作成されている場合はtrueを返します。

webtrafficBmTagSharingStatus

String

LINE Tagがビジネスマネージャー上で共有されているかどうかを表す値。

  • SHARED:ビジネスマネージャー上で共有されている
  • UNSHARED:ビジネスマネージャー上で共有されていない

webtrafficIsTagDeleted

Boolean

このウェブトラフィックオーディエンスで使用されているLINE Tagが既に削除されている場合はtrueを返します。

webtrafficTagCreateRoute

String

ウェブトラフィックオーディエンスの作成方法。以下のいずれかの値です。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 クエリパラメータに無効な値が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# 分析

LINE公式アカウントから送信したメッセージの数や友だち数、統計情報などを取得できます。


# メッセージの送信数を取得する

GET https://api.line.me/v2/bot/insight/message/delivery?date={date}

dateに指定した日に、LINE公式アカウントから送信したメッセージの数を確認できます。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

メッセージの送信数を確認する日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:メッセージ数を取得できます。
  • unreadydateに指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2017年3月1日)より前です。

broadcast以降のプロパティは、statusプロパティの値がreadyの場合にのみレスポンスに含まれます。

broadcast

Number

含まれないことがあります

LINE Official Account Managerで配信先を[すべての友だち]にして送信したメッセージの数。

targeting

Number

含まれないことがあります

LINE Official Account Managerで配信先を[絞り込み]にして送信したメッセージの数。

stepMessage

Number

含まれないことがあります

LINE Official Account Managerでステップ配信を使って送信されたメッセージの数。

詳しくは、『LINEヤフー for Business』の「ステップ配信 (opens new window)」を参照してください。

autoResponse

Number

含まれないことがあります

ユーザーからメッセージを受信した際に、自動的に送信された応答メッセージの数。

詳しくは、『LINEヤフー for Business』の「応答メッセージ (opens new window)」を参照してください。

welcomeResponse

Number

含まれないことがあります

ユーザーがLINE公式アカウントを友だち追加した際に、自動的に送信されたあいさつメッセージの数。

詳しくは、『LINEヤフー for Business』の「あいさつメッセージを設定する (opens new window)」を参照してください。

chat

Number

含まれないことがあります

LINE Official Account Managerの「チャット基本画面 (opens new window)」から送信されたメッセージの数。

apiBroadcast

Number

含まれないことがあります

ブロードキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。

apiPush

Number

含まれないことがあります

プッシュメッセージを送る」エンドポイントを使って送信されたメッセージの数。

apiMulticast

Number

含まれないことがあります

マルチキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。

apiNarrowcast

Number

含まれないことがあります

ナローキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。

apiReply

Number

含まれないことがあります

応答メッセージを送る」エンドポイントを使って送信されたメッセージの数。

ccAutoReply

Number

含まれないことがあります

LINEチャットPlusの自動応答で送信されたメッセージの数。

ccManualReply

Number

含まれないことがあります

LINEチャットPlusの有人でのチャット対応で送信されたメッセージの数。

pnpNoticeMessage

Number

含まれないことがあります

法人ユーザー向けオプションの「LINE通知メッセージ」を使って送信されたメッセージの数。

pnpCallToLine

Number

含まれないことがあります

Call to LINE(※)で送信されたメッセージの数。

※ Call to LINEの新規利用受付は終了しています。

thirdPartyChatTool

Number

含まれないことがあります

外部チャットツールから送信されたメッセージの数。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効な日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 友だち数を取得する

GET https://api.line.me/v2/bot/insight/followers?date={date}

LINE公式アカウントの友だち数を確認できます。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

date

必須

友だち数を確認する日付

  • フォーマット:yyyyMMdd(例:20191231
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

status

String

集計処理の状態。以下のいずれかの値です。

  • ready:数値を取得できます。
  • unreadydateに指定した日付の友だち数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。
  • out_of_servicedateに指定した日付が、集計システムの稼働開始日(2016年11月1日)より前です。

followers

Number

dateに指定した日付までに、アカウントが友だち追加された回数。アカウントがブロックされたり、あなたを友だち追加したユーザーがLINEアカウントを削除したりしても、この値は減少しません。

statusの値がready以外の場合、nullになります。

targetedReaches

Number

dateに指定した日付時点の、性別や年齢、地域で絞り込んだターゲティングメッセージの配信先となりうる友だちの総数。LINEおよびその他のLINEサービスの利用頻度が高く、属性の高精度な推定が可能な友だちが含まれます。

statusの値がready以外の場合、nullになります。

blocks

Number

dateに指定した日付時点で、アカウントをブロックしているユーザーの数。ブロックが解除されると、この値は減少します。

statusの値がready以外の場合、nullになります。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 日付が指定されていない、もしくは無効な日付が指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 友だちの属性情報に基づく統計情報を取得する

GET https://api.line.me/v2/bot/insight/demographic

LINE公式アカウントの友だちの属性情報に基づく統計情報を取得します。友だちの属性情報に基づく統計情報を取得するには、以下の条件をすべて満たす必要があります。

  • ターゲットリーチが20人以上である。
  • 日本(JP)、タイ(TH)、台湾(TW)のユーザーが作成したLINE公式アカウントである。
リアルタイムデータではありません

友だちの属性情報に基づく統計情報が反映されるまで約3日かかります。そのため、取得できる情報は約3日前の数値です。なお、反映されるタイミングは前後する可能性があります。

属性情報について

友だちの属性情報は、LINEファミリーサービスにおいて、LINEユーザーが登録した性別、年代、エリア情報と行動履歴をもとに分類した「みなし属性」となります。携帯キャリアおよびOSは、みなし属性に含まれません。

みなし属性は、ユーザーがLINE上で購入、使用したスタンプや興味のあるコンテンツのほか、どのようなLINE公式アカウントと友だちになっているかといった傾向をもとに分類したものです。分類の元となる情報に電話番号、メールアドレス、アドレス帳、トーク内容などの機微情報は含みません。

属性情報の推定は統計的に実施され、特定の個人の識別は行っていません。また、特定の個人を識別可能な情報の第三者(広告主など)への提供は実施していません。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

available

Boolean

  • true:友だちの属性情報に基づく統計情報が利用できる。
  • false:次のような理由で、友だちの属性情報に基づく統計情報が利用できない。
    • ターゲットリーチが20人未満である。
    • 日本(JP)、タイ(TH)、台湾(TW)以外のユーザーが作成したLINE公式アカウントである。

レスポンス内の各配列(gendersagesareasappTypessubscriptionPeriods)の要素は、availableの値がtrueの場合にのみレスポンスに含まれます。

genders

Array

性別ごとの割合。統計情報が利用できない場合、空の配列を返します。

genders[].gender

String

ユーザーの性別に基づいて、以下の値が返されます。

  • male
  • female
  • unknown

genders[].percentage

Number

割合

ages

Array

年齢ごとの割合。統計情報が利用できない場合、空の配列を返します。

ages[].age

String

ユーザーの年齢に基づいて、以下の値が返されます。

タイのLINE公式アカウントを利用している場合

タイのLINE公式アカウントの統計情報を取得する場合、レスポンス内のages[].ageの値として、from0to14from15to19の割合は返されません。年齢が20歳未満のユーザーは、unknownとして集計されます。

ages[].percentage

Number

割合

areas

Array

地域ごとの割合。統計情報が利用できない場合、空の配列を返します。

areas[].area

String

ユーザーの国や地域に基づいて、以下の値が返されます。
JP

  • 北海道
  • 青森
  • 岩手
  • 宮城
  • 秋田
  • 山形
  • 福島
  • 茨城
  • 栃木
  • 群馬
  • 埼玉
  • 千葉
  • 東京
  • 神奈川
  • 新潟
  • 富山
  • 石川
  • 福井
  • 山梨
  • 長野
  • 岐阜
  • 静岡
  • 愛知
  • 三重
  • 滋賀
  • 京都
  • 大阪
  • 兵庫
  • 奈良
  • 和歌山
  • 鳥取
  • 島根
  • 岡山
  • 広島
  • 山口
  • 徳島
  • 香川
  • 愛媛
  • 高知
  • 福岡
  • 佐賀
  • 長崎
  • 熊本
  • 大分
  • 宮崎
  • 鹿児島
  • 沖縄
  • unknown

TW

  • 台北市
  • 新北市
  • 桃園市
  • 台中市
  • 台南市
  • 高雄市
  • 基隆市
  • 新竹市
  • 嘉義市
  • 新竹縣
  • 苗栗縣
  • 彰化縣
  • 南投縣
  • 雲林縣
  • 嘉義縣
  • 屏東縣
  • 宜蘭縣
  • 花蓮縣
  • 台東縣
  • 澎湖縣
  • 金門縣
  • 連江縣
  • unknown

TH

  • Bangkok
  • Pattaya
  • Northern
  • Central
  • Southern
  • Eastern
  • NorthEastern
  • Western
  • unknown

areas[].percentage

Number

割合

appTypes

Array

OSごとの割合。統計情報が利用できない場合、空の配列を返します。

appTypes[].appType

String

ユーザーが使用するOSに基づいて、以下の値が返されます。

  • ios
  • android
  • others

appTypes[].percentage

Number

割合

subscriptionPeriods

Array

友だち期間ごとの割合。統計情報が利用できない場合、空の配列を返します。

subscriptionPeriods[].subscriptionPeriod

String

ユーザーとの友だち期間に基づいて、以下の値が返されます。友だち期間とは、ユーザーがLINE公式アカウントを友だち追加してからの期間のことです。ユーザーがLINE公式アカウントを友だち追加した翌日を1日目として起算します。

  • within7days:7日未満
  • within30days:7日以上30日未満
  • within90days:30日以上90日未満
  • within180days:90日以上180日未満
  • within365days:180日以上365日未満
  • over365days:365日以上
  • unknown:不明

subscriptionPeriods[].percentage

Number

それぞれのsubscriptionPeriodに対するユーザーの割合。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# ユーザーの操作に基づく統計情報を取得する

GET https://api.line.me/v2/bot/insight/message/event?requestId={requestId}

LINE公式アカウントから送信したナローキャストメッセージまたはブロードキャストメッセージに対して、ユーザーがどのように操作したかを示す統計情報を確認できます。

1メッセージ(message)単位、および1吹き出し(bubble)単位で統計情報を取得できます。

message and bubbles

記録される統計情報について

統計情報は、メッセージの送信時刻から14日間(1,209,600秒間)のみ更新されます。それ以降は更新されません。

たとえば2021年2月1日の21:15:00に送信した場合、統計情報は2021年2月15日の21:15:00まで更新されます。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

requestId

必須

ナローキャストメッセージまたはブロードキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

注意

統計情報の数値は、多少の誤差を含むことがあります。

またプライバシーを保護するため、次のような場合、個人の操作に関するプロパティの値はnullになります。

  • プロパティの値が20未満だった場合
  • プロパティの値が20以上であっても、そのイベントを発生させた実人数が20人未満だった場合(たとえばmessages[].mediaPlayedは30だが、messages[].uniqueMediaPlayedが15だった場合は、どちらの値もnullになります)

overview

Object

メッセージに関する統計情報。

overview.requestId

String

リクエストID。

overview.timestamp

Number

メッセージが配信された時刻。UNIX時間(秒)で返されます。

overview.delivered

Number

メッセージの送信数。この値は、20未満の数値も表示されます。ただし、メッセージの送信がすべて完了していない場合はnullになります。

overview.uniqueImpression

Number

メッセージを開封した人数。少なくとも1つの吹き出しを表示した人数です。

overview.uniqueClick

Number

メッセージ内のいずれかのURLをタップした人数。

overview.uniqueMediaPlayed

Number

メッセージ内のいずれかの動画または音声の再生を開始した人数。

overview.uniqueMediaPlayed100Percent

Number

メッセージ内のいずれかの動画または音声を最後まで視聴した人数。

messages

Array

吹き出しに関する情報を表す配列。統計情報が利用できない場合、空の配列を返します。

messages[].seq

Number

吹き出しの通し番号。

messages[].impression

Number

吹き出しが表示された回数。

messages[].mediaPlayed

Number

吹き出し内の動画または音声が再生開始された回数。動画が自動再生された場合も、回数に含まれます。

messages[].mediaPlayed25Percent

Number

吹き出し内の動画または音声が再生開始され、25%再生された回数。

messages[].mediaPlayed50Percent

Number

吹き出し内の動画または音声が再生開始され、50%再生された回数。

messages[].mediaPlayed75Percent

Number

吹き出し内の動画または音声が再生開始され、75%再生された回数。

messages[].mediaPlayed100Percent

Number

吹き出し内の動画または音声が再生開始され、100%再生された回数。

messages[].uniqueMediaPlayed

Number

吹き出し内の動画または音声を再生開始した人数。

messages[].uniqueMediaPlayed25Percent

Number

吹き出し内の動画または音声を再生開始し、25%再生した人数。

messages[].uniqueMediaPlayed50Percent

Number

吹き出し内の動画または音声を再生開始し、50%再生した人数。

messages[].uniqueMediaPlayed75Percent

Number

吹き出し内の動画または音声を再生開始し、75%再生した人数。

messages[].uniqueMediaPlayed100Percent

Number

吹き出し内の動画または音声を再生開始し、100%再生した人数。

clicks

Array

タップしたURLに関する情報を表す配列。メッセージにURLが含まれていない場合や統計情報が利用できない場合は、空の配列を返します。

clicks[].seq

Number

URLが含まれていた吹き出しの通し番号。

clicks[].url

String

URL。

clicks[].click

Number

吹き出し内のURLをタップした回数。

clicks[].uniqueClick

Number

吹き出し内のURLをタップした人数。

clicks[].uniqueClickOfRequest

Number

メッセージ内のURLのうちurlと同じURLをタップした人数。ほかの吹き出しに同じURLが設定されている場合に、1人のユーザーが各URLをタップした場合でも、1回だけカウントされます。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# ユニットごとの統計情報を取得する

GET https://api.line.me/v2/bot/insight/message/event/aggregation?customAggregationUnit={customAggregationUnit}&from={from}&to={to}

LINE公式アカウントから送信したプッシュメッセージやマルチキャストメッセージに対して、ユーザーがどのように操作したかを示す統計情報をユニットごとに確認できます。

統計情報はユニットごとに、1メッセージ(message)単位、および1吹き出し(bubble)単位で取得できます。

message and bubbles

なお、ユニット名が同じメッセージを複数送った場合、メッセージの内容や吹き出し数、吹き出しの順番が異なっていても、統計情報はユニットごとにまとめて集計されます。

記録される統計情報について

統計情報は、メッセージの送信時刻から14日間(1,209,600秒間)のみ更新されます。それ以降は更新されません。

たとえば2021年2月1日の21:15:00に送信した場合、統計情報は2021年2月15日の21:15:00まで更新されます。

メッセージごとの統計情報を取得したい場合

ナローキャストメッセージまたはブロードキャストメッセージについて、メッセージごとの統計情報を取得したい場合は、次のエンドポイントを使用してください。

リクエストの例

# レート制限

60リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

customAggregationUnit

String

必須

メッセージ送信時に付与した任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_apromotion_Aは別のユニットとして扱われます。

ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「ユニット名を付与する」を参照してください。

from

String

必須

集計対象期間の開始日。

  • フォーマット:yyyyMMdd(例:20210301
  • タイムゾーン:UTC+9

to

String

必須

集計対象期間の終了日。終了日は、開始日の30日後まで指定できます。たとえば、開始日が20210301の場合、終了日は20210331まで指定できます。

  • フォーマット:yyyyMMdd(例:20210331
  • タイムゾーン:UTC+9

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

注意

統計情報の数値は、多少の誤差を含むことがあります。

またプライバシーを保護するため、次のような場合、個人の操作に関するプロパティの値はnullになります。

  • プロパティの値が20未満だった場合
  • プロパティの値が20以上であっても、そのイベントを発生させた実人数が20人未満だった場合(たとえばmessages[].mediaPlayedは30だが、messages[].uniqueMediaPlayedが15だった場合は、どちらの値もnullになります)

overview

Object

メッセージに関する統計情報。

overview.uniqueImpression

Number

メッセージを開封した人数。少なくとも1つの吹き出しを表示した人数です。

overview.uniqueClick

Number

メッセージ内のいずれかのURLをタップした人数。

overview.uniqueMediaPlayed

Number

メッセージ内のいずれかの動画または音声の再生を開始した人数。

overview.uniqueMediaPlayed100Percent

Number

メッセージ内のいずれかの動画または音声を最後まで視聴した人数。

messages

Array

吹き出しに関する情報を表す配列。統計情報が利用できない場合、空の配列を返します。

messages[].seq

Number

吹き出しの通し番号。

messages[].impression

Number

吹き出しが表示された回数。

messages[].uniqueImpression

Number

吹き出しを表示した人数。

messages[].mediaPlayed

Number

吹き出し内の動画または音声が再生開始された回数。動画が自動再生された場合も、回数に含まれます。

messages[].mediaPlayed25Percent

Number

吹き出し内の動画または音声が再生開始され、25%再生された回数。

messages[].mediaPlayed50Percent

Number

吹き出し内の動画または音声が再生開始され、50%再生された回数。

messages[].mediaPlayed75Percent

Number

吹き出し内の動画または音声が再生開始され、75%再生された回数。

messages[].mediaPlayed100Percent

Number

吹き出し内の動画または音声が再生開始され、100%再生された回数。

messages[].uniqueMediaPlayed

Number

吹き出し内の動画または音声を再生開始した人数。

messages[].uniqueMediaPlayed25Percent

Number

吹き出し内の動画または音声を再生開始し、25%再生した人数。

messages[].uniqueMediaPlayed50Percent

Number

吹き出し内の動画または音声を再生開始し、50%再生した人数。

messages[].uniqueMediaPlayed75Percent

Number

吹き出し内の動画または音声を再生開始し、75%再生した人数。

messages[].uniqueMediaPlayed100Percent

Number

吹き出し内の動画または音声を再生開始し、100%再生した人数。

clicks

Array

タップしたURLに関する情報を表す配列。メッセージにURLが含まれていない場合や統計情報が利用できない場合は、空の配列を返します。

clicks[].seq

Number

URLが含まれていた吹き出しの通し番号。

clicks[].url

String

URL。

clicks[].click

Number

吹き出し内のURLをタップした回数。

clicks[].uniqueClick

Number

吹き出し内のURLをタップした人数。

clicks[].uniqueClickOfRequest

Number

メッセージ内のURLのうちurlと同じURLをタップした人数。ほかの吹き出しに同じURLが設定されている場合に、1人のユーザーが各URLをタップした場合でも、1回だけカウントされます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 統計情報が取得できませんでした。次のような理由が考えられます。
  • ユニット名が指定されていない。
  • 集計対象期間が指定されていない。
  • 無効な集計対象期間が指定されている。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 当月中に付与したユニット名の種類数を取得する

GET https://api.line.me/v2/bot/message/aggregation/info

当月中にメッセージに付与したユニット名の種類数を取得します。メッセージ送信時にユニット名を付与する際の制限については、『Messaging APIドキュメント』の「ユニット名の種類数の上限」を参照してください。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

numOfCustomAggregationUnits

Number

当月中にメッセージに付与したユニット名の種類数。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# 当月中に付与したユニット名のリストを取得する

GET https://api.line.me/v2/bot/message/aggregation/list

当月中にメッセージに付与したユニット名の、一意なリストを取得します。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

limit

String

任意

1回のリクエストで取得するユニット名の最大数です。デフォルト値は100です。
最大値:100

start

String

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでユニット名をすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

customAggregationUnits

Array of strings

ユニット名を表す文字列の配列です。配列には、当月中にメッセージに付与したユニット名が一意に含まれています。

next

String

含まれないことがあります

継続トークン。ユニット名の次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのcustomAggregationUnitsプロパティで取得しきれなかったユニット名がある場合にのみ返されます。

継続トークンの有効期間は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効な継続トークンを指定している。
  • limitプロパティに不正な値を指定している。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# ユーザー

LINE公式アカウントを友だち追加したユーザーの情報を取得できます。

自分のユーザーIDを取得する

自分のユーザーIDは、LINE Developersコンソールのチャネルの[チャネル基本設定]タブにある[あなたのユーザーID]で確認できます。LINE Developersコンソールのアクセス権限について詳しくは、『権限を管理する』の「チャネルの権限」を参照してください。開発者が自分自身のユーザーIDを取得するためのAPIはありません。


# プロフィール情報を取得する

GET https://api.line.me/v2/bot/profile/{userId}

以下のいずれかの条件を満たすユーザーのプロフィール情報を取得できます。

  • LINE公式アカウントを友だち追加しているユーザー
  • LINE公式アカウントを友だち追加したことはないが、LINE公式アカウントにメッセージを送信したことがあるユーザー(LINE公式アカウントをブロックしているユーザーを除く)

なお取得できる情報はメインプロフィールのみです。ユーザーのサブプロフィールは取得できません。

注意

LINE公式アカウントをブロックしているユーザーのプロフィール情報は取得できません。

グループトークや複数人トークのメンバーのプロフィール情報

グループトークや複数人トークのメンバーのプロフィール情報を取得するには、以下のエンドポイントを利用できます。

リクエストの例

# APIプレイグラウンド

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

userId

必須

Webhookイベントオブジェクトで返されるユーザーID。LINEに表示されるLINE IDは使用しないでください。

# レスポンス

ユーザーIDが有効な場合、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

displayName

String

ユーザーの表示名

userId

String

ユーザーID

language

String

含まれないことがあります

ユーザーの言語。BCP 47 (opens new window)言語タグに従った文字列が返されます。ユーザーがLINEのプライバシーポリシーに未同意の場合はレスポンスに含まれません。
例:en(英語)。

pictureUrl

String

含まれないことがあります

プロフィール画像のURL。スキームはhttpsです。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。

statusMessage

String

含まれないことがあります

ユーザーのステータスメッセージ。ユーザーがステータスメッセージを設定していない場合はレスポンスに含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。
404 プロフィール情報を取得できませんでした。次のような理由が考えられます。
  • 対象のユーザーIDが存在していない。
  • ユーザーがプロフィール情報の取得に同意していない。
  • ユーザーが対象のLINE公式アカウントを友だち追加していない。
  • ユーザーが対象のLINE公式アカウントを友だち追加した後にブロックした。
詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# LINE公式アカウントを友だち追加したユーザーのリストを取得する

GET https://api.line.me/v2/bot/followers/ids
注意

この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。

LINE公式アカウントを友だち追加したユーザーの、ユーザーIDのリストを取得します。

すべてのユーザーIDを取得するには、nextプロパティがレスポンスに含まれなくなるまでリクエストを繰り返す必要があります。レスポンスに含まれるnextプロパティの値を次のリクエストのstartに指定し、リクエストを繰り返してください。

# 取得できるユーザーIDの制限について

取得したユーザーIDのリストに、以下のユーザーのユーザーIDは含まれません。

  • LINEアカウントを削除したユーザー。
  • 対象のLINE公式アカウントを友だち追加した後にブロックしたユーザー。
  • プロフィール情報の取得に同意していないユーザー。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。

そのため、このエンドポイントで取得したユーザーIDの数は、LINE公式アカウントのプロフィールやLINE Official Account Manager (opens new window)に表示される友だち数と一致しない場合があります。

取得したユーザーIDは使用できない場合があります

このエンドポイントで取得したユーザーIDに対してメッセージを送信しても、ユーザーの操作が原因でメッセージが送信できない場合があります。主な原因は以下のとおりです。

  • ユーザーIDを取得してからメッセージを送信するまでの間に、ユーザーが対象のLINE公式アカウントをブロックした。
  • ユーザーが対象のLINE公式アカウントを友だち追加した後に、LINEアカウントを削除 (opens new window)した。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

limit

Number

任意

1回のリクエストで取得するユーザーIDの最大数。デフォルト値は300です。
最大値:1000

start

String

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りのユーザーIDを取得します。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

userIds

Array of strings

LINE公式アカウントを友だち追加したユーザーのユーザーIDを示す文字列の配列です。取得できるユーザーIDに制限があるため、userIdsプロパティに含まれるユーザーIDの数は、nextプロパティが返される場合でも、必ずlimitで指定した最大数になるとは限りません。
ユーザーIDの最大数:limitで指定した数

next

String

含まれないことがあります

継続トークン。次のユーザーIDを取得するために使用します。このプロパティは、前回までのレスポンスのuserIdsプロパティで取得しきれなかったユーザーIDがある場合にのみ返されます。

継続トークンの有効期間は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効な継続トークンが指定されています。
403 このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# メンバーシップ

LINE公式アカウントのメンバーシップの情報を取得できます。詳しくは、『Messaging APIドキュメント』の「メンバーシップ機能を使う」を参照してください。


# ユーザーのメンバーシップ加入状況を取得する

GET https://api.line.me/v2/bot/membership/subscription/{userId}

ユーザーが加入しているメンバーシップの情報を取得できます。

リクエストの例

# レート制限

200リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

userId

必須

メンバーシップ加入状況を確認したいユーザーのユーザーID。

ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。

# レスポンス

ユーザーがメンバーシップに加入している場合、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

subscriptions

Array

メンバーシップの配列。

membership

Object

メンバーシッププランの情報を含むオブジェクト。

membership.membershipId

Number

メンバーシッププランのID。

membership.title

String

メンバーシッププランのプラン名。

membership.description

String

メンバーシッププランの説明。

membership.benefits

Array of strings

メンバーシッププランの特典のリスト。
特典の最大数:5

membership.price

Number

メンバーシッププランの月額。(例:1500.00

membership.currency

String

membership.priceの通貨。以下のいずれかの値です。

  • JPY:日本円
  • TWD:台湾ドル
  • THB:タイバーツ

user

Object

ユーザーのメンバーシップ加入情報を含むオブジェクト。

user.membershipNo

Number

メンバーシッププランにおけるユーザーのメンバー番号。

user.joinedTime

Number

ユーザーがメンバーシップに加入した時刻。UNIX時間(秒)で返されます。

user.nextBillingDate

String

メンバーシッププランの次回更新日。

  • フォーマット:yyyy-MM-dd(例:2024-02-08
  • タイムゾーン:UTC+9

user.totalSubscriptionMonths

Number

メンバーシッププランに加入している月単位の期間。ユーザーが過去に同一のメンバーシッププランを解約して、再加入した場合、再加入後の期間のみがカウントされます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。
404 ユーザーが加入しているメンバーシップの情報が取得できませんでした。次のような理由が考えられます。
  • ユーザーがメンバーシップに加入していない
  • 対象のユーザーIDが存在していない

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# メンバーシップに加入しているユーザーの一覧を取得する

GET https://api.line.me/v2/bot/membership/{membershipId}/users/ids

LINE公式アカウントのメンバーシップに加入しているユーザーのユーザーIDの一覧を取得できます。

# 取得できるユーザーIDに関する制限

ユーザーがメンバーシップに加入している場合でも、以下のいずれかの条件を満たす場合は、そのユーザーのユーザーIDは一覧に含まれません。

  • ユーザーがLINEアカウントを削除している。
  • ユーザーがLINE公式アカウントをブロックしている。
  • ユーザーがLINE公式アカウントを友だち追加していない。
  • ユーザーがプロフィール情報の取得に同意していない。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。

リクエストの例

# レート制限

200リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

membershipId

必須

メンバーシップのID。

# クエリパラメータ

limit

Number

任意

1回のリクエストで取得するユーザーIDの最大数。デフォルト値は300です。
最大値:1000

start

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得できます。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

userIds

Array of strings

メンバーシップに加入しているユーザーのユーザーIDの配列。ユーザーの状況によってユーザーIDを取得できるかどうかが変わるため、userIdsプロパティに含まれるユーザーIDの数は、nextプロパティが返される場合でも、必ずlimitクエリパラメータで指定した数になるとは限りません。詳しくは、「取得できるユーザーIDに関する制限」を参照してください。
ユーザーIDの最大数:limitクエリパラメータで指定した数

next

String

含まれないことがあります

継続トークン。次のユーザーIDの一覧を取得するために使用します。このプロパティは、前回までのレスポンスのuserIdsプロパティで取得しきれなかったユーザーIDがある場合にのみ返されます。

継続トークンの有効期限は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効な継続トークンを指定している。
  • limitプロパティに不正な値を指定している。
404 membershipIdパスパラメータに存在しないメンバーシップIDを指定しています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 提供中のメンバーシッププランを取得する

GET https://api.line.me/v2/bot/membership/list

LINE公式アカウントのメンバーシップで提供中の、メンバーシッププランを取得できます。

審査中のプランや終了後のプランは含まれません。

リクエストの例

# レート制限

200リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

memberships

Array

提供中のメンバーシッププランの配列です。
プランの最大数:5

memberships[].membershipId

Number

メンバーシッププランのID。

memberships[].title

String

メンバーシッププランのプラン名。

memberships[].description

String

メンバーシッププランの説明。

memberships[].benefits

Array of strings

メンバーシッププランの特典のリスト。
特典の最大数:5

memberships[].price

Number

メンバーシッププランの月額。(例:1500.00

memberships[].currency

String

memberships[].priceの通貨。以下のいずれかの値です。

  • JPY:日本円
  • TWD:台湾ドル
  • THB:タイバーツ

memberships[].memberCount

Number

加入しているメンバー数。

memberships[].memberLimit

Number

加入できるメンバー数の上限。上限を設定していない場合はnullになります。

memberships[].isInAppPurchase

Boolean

加入ユーザーの支払い方法。

  • true:App内課金
  • false:Web決済

memberships[].isPublished

Boolean

メンバーシッププランのステータス。

  • true:公開中
  • false:非公開(終了手続きを行い、プランが非公開になったが、まだ特典の提供は終了していない状態)

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
404 提供中のメンバーシッププランがありません。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# ボット

LINE公式アカウントのボットの基本情報を取得できます。

エンドポイント一覧

# ボットの情報を取得する

GET https://api.line.me/v2/bot/info

ボットの基本情報を取得します。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

userId

String

ボットのユーザーID

basicId

String

ボットのベーシックID

premiumId

String

含まれないことがあります

ボットのプレミアムID。プレミアムIDが未設定の場合、この値は含まれません。

displayName

String

ボットの表示名

pictureUrl

String

含まれないことがあります

プロフィール画像のURL。「https://」から始まる画像URLです。ボットにプロフィール画像を設定していない場合は、レスポンスに含まれません。

chatMode

String

LINE Official Account Manager (opens new window)のチャットの設定。以下のいずれかの値が返ります。

  • chat:チャットがオンに設定されています。
  • bot:チャットがオフに設定されています。

markAsReadMode

String

メッセージの自動既読設定。チャットを「オフ」にしていればauto、「オン」にしていればmanualが返ります。

  • auto:自動既読設定が有効です。
  • manual:自動既読設定が無効です。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

# グループトーク

LINE公式アカウントが参加しているグループトークの情報や、グループトークのメンバーの情報を取得できます。


# グループトークの概要を取得する

GET https://api.line.me/v2/bot/group/{groupId}/summary

LINE公式アカウントが参加しているグループトークのグループID、グループ名、アイコンのURLを取得します。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで確認できます。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

groupId

String

グループID

groupName

String

グループ名

pictureUrl

String

含まれないことがあります

グループのアイコンのURL。ユーザーがグループのプロフィール画像を設定していない場合はレスポンスに含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なグループIDが指定されています。
404 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# グループトークに参加しているユーザーの人数を取得する

GET https://api.line.me/v2/bot/group/{groupId}/members/count

グループトークに参加しているユーザーの人数を取得します。参加しているユーザーが、LINE公式アカウントを友だち追加していない場合や、LINE公式アカウントをブロックしている場合でも、人数に含まれます。

人数に、LINE公式アカウントは含まれません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで確認できます。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

count

Number

グループトークに参加しているユーザーの人数。人数に、LINE公式アカウントは含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なグループIDが指定されています。
404 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# グループトークのメンバーのユーザーIDを取得する

GET https://api.line.me/v2/bot/group/{groupId}/members/ids
注意

この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。

LINE公式アカウントが参加しているグループトークのメンバーの、ユーザーIDを取得するAPIです。LINE公式アカウントを友だちとして追加していないユーザーや、LINE公式アカウントをブロックしているユーザーのユーザーIDも取得します。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

# クエリパラメータ

start

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

memberIds

Array of strings

グループトークのメンバーのユーザーIDのリスト。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみmemberIdsに含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
最大ユーザー数:100

next

String

含まれないことがあります

継続トークン。グループトークのメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIdsで取得しきれなかったユーザーIDがある場合にのみ返されます。

継続トークンの有効期間は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なグループIDを指定している。
  • startプロパティに無効な継続トークンを指定している。
403 このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。
404 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# グループトークのメンバーのプロフィール情報を取得する

GET https://api.line.me/v2/bot/group/{groupId}/member/{userId}

LINE公式アカウントが参加しているグループトークのメンバーのユーザーIDが既知である場合に、そのメンバーのプロフィール情報を取得するAPIです。

ヒント

LINE公式アカウントを友だちとして追加しているかどうかや、LINE公式アカウントをブロックしているかどうかに関わらず、そのグループトークに参加しているユーザーであればプロフィール情報を取得できます。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

displayName

String

表示名

userId

String

ユーザーID

pictureUrl

String

含まれないことがあります

プロフィール画像のURL。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なグループIDを指定している。
  • 無効なユーザーIDを指定している。
404 プロフィール情報を取得できませんでした。次のような理由が考えられます。
  • 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。
  • 存在しないユーザーやグループに参加していないユーザーが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# グループトークから退出する

POST https://api.line.me/v2/bot/group/{groupId}/leave

グループトークから退出するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なグループIDが指定されています。
404 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# 複数人トーク

LINE公式アカウントが参加している複数人トークの情報や、複数人トークのメンバーの情報を取得できます。


# 複数人トークに参加しているユーザーの人数を取得する

GET https://api.line.me/v2/bot/room/{roomId}/members/count

複数人トークに参加しているユーザーの人数を取得します。参加しているユーザーが、LINE公式アカウントを友だち追加していない場合や、LINE公式アカウントをブロックしている場合でも、人数に含まれます。

人数に、LINE公式アカウントは含まれません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# Path parameters

roomId

必須

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで確認できます。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

count

Number

複数人トークに参加しているユーザーの人数。人数に、LINE公式アカウントは含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なトークルームIDが指定されています。
404 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 複数人トークのメンバーのユーザーIDを取得する

GET https://api.line.me/v2/bot/room/{roomId}/members/ids
注意

この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。

LINE公式アカウントが参加している複数人トークのメンバーの、ユーザーIDを取得するAPIです。LINE公式アカウントを友だちとして追加していないユーザーや、LINE公式アカウントをブロックしているユーザーのユーザーIDも取得します。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

roomId

必須

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

# クエリパラメータ

start

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

memberIds

Array of strings

複数人トークのメンバーのユーザーIDのリスト。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみmemberIdsに含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
最大ユーザー数:100

next

String

含まれないことがあります

継続トークン。複数人トークのメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIdsで取得しきれなかったユーザーIDがある場合にのみ返されます。

継続トークンの有効期間は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なトークルームIDを指定している。
  • startプロパティに無効な継続トークンを指定している。
403 このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。
404 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 複数人トークのメンバーのプロフィールを取得する

GET https://api.line.me/v2/bot/room/{roomId}/member/{userId}

LINE公式アカウントが参加している複数人トークのメンバーのユーザーIDが既知である場合に、そのメンバーのプロフィール情報を取得するAPIです。

ヒント

LINE公式アカウントを友だちとして追加しているかどうかや、LINE公式アカウントをブロックしているかどうかに関わらず、その複数人トークに参加しているユーザーであればプロフィール情報を取得できます。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

roomId

必須

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

displayName

String

表示名

userId

String

ユーザーID

pictureUrl

String

含まれないことがあります

プロフィール画像のURL。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストに問題があります。次のような理由が考えられます。
  • 無効なトークルームIDを指定している。
  • 無効なユーザーIDを指定している。
404 プロフィール情報を取得できませんでした。次のような理由が考えられます。
  • 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されています。
  • 存在しないユーザーや複数人トークに参加していないユーザーが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# 複数人トークから退出する

POST https://api.line.me/v2/bot/room/{roomId}/leave

複数人トークから退出するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

roomId

必須

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

LINE公式アカウントが参加していない複数人トークを指定した場合も、ステータスコード200を返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なトークルームIDが指定されています。
404 存在しない複数人トークが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# リッチメニュー

LINE公式アカウントのトーク画面に表示される、カスタマイズ可能なメニューです。詳しくは、「リッチメニューを使う」を参照してください。


# リッチメニューを作成する

POST https://api.line.me/v2/bot/richmenu

リッチメニューを作成するAPIです。

リッチメニューを表示するには、リッチメニューの画像をアップロードし、さらにデフォルトのリッチメニューを設定するかリッチメニューをユーザーとリンクする必要があります。1つのLINE公式アカウントに対して、Messaging APIを使って最大で1000件のリッチメニューを作成できます。

リッチメニューを作成する前に

リッチメニューオブジェクトを検証するためのエンドポイントもあります。

リクエストの例

# レート制限

100リクエスト/時

LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

リッチメニューとして表示するリッチメニューオブジェクトを指定します。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

richMenuId

String

リッチメニューのID。リッチメニューの画像をアップロードする際に使用します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューを作成できませんでした。次のような理由が考えられます。
  • 無効なリッチメニューオブジェクトが指定されている。
  • 作成できるリッチメニューの上限(最大1000件)に達した。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューオブジェクトを検証する

POST https://api.line.me/v2/bot/richmenu/validate

リッチメニューオブジェクトを検証するAPIです。

リッチメニューオブジェクトが、リッチメニューの作成のリクエストボディとして有効かを検証できます。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

検証したいリッチメニューオブジェクトを指定します。

# レスポンス

リクエストボディがリッチメニューオブジェクトとして有効な場合、ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なリッチメニューオブジェクトが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューの画像をアップロードする

POST https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

画像をアップロードしてリッチメニューに設定するAPIです。

# リッチメニューの画像の要件

リッチメニューの画像は以下の要件を満たす必要があります。

  • 画像フォーマット:JPEGまたはPNG
  • 画像の幅サイズ:800ピクセル以上、2500ピクセル以下
  • 画像の高さサイズ:250ピクセル以上
  • 画像のアスペクト比(幅÷高さ):1.45以上
  • 最大ファイルサイズ:1MB
注意

リッチメニューに設定された画像を置き換えることはできません。リッチメニューの画像を更新するには、新しいリッチメニューオブジェクトを作成して、新しい画像をアップロードします。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

image/jpegまたはimage/png

# パスパラメータ

richMenuId

必須

画像を設定するリッチメニューのID

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューに画像を設定できませんでした。次のような理由が考えられます。
  • 画像が要件を満たしていない。
  • リッチメニューに既に画像が設定されている。
404 存在しないリッチメニューが指定されています。
415 Content-Typeにサポートされていないメディア形式が指定されています(image/jpegおよびimage/png以外)。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューの画像をダウンロードする

GET https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
他のエンドポイントとドメイン名が異なります

このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me)です。他のエンドポイントのドメイン名(api.line.me)とは異なるため、利用時は注意してください。

リッチメニューの画像をダウンロードするAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuId

必須

画像をダウンロードするリッチメニューのID

# レスポンス

ステータスコード200とリッチメニュー画像のバイナリデータを返します。リクエストの例に示すように、画像をダウンロードできます。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
404 画像をダウンロードできませんでした。次のような理由が考えられます。
  • 存在しないリッチメニューが指定されている。
  • リッチメニューに画像が設定されていない。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューの配列を取得する

GET https://api.line.me/v2/bot/richmenu/list

リッチメニューを作成する」で作成したすべてのリッチメニューのリッチメニューレスポンスオブジェクトを取得します。

注意

LINE Official Account Managerで作成したリッチメニューは取得できません。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。


# リッチメニューを取得する

GET https://api.line.me/v2/bot/richmenu/{richMenuId}

IDを指定してリッチメニューを取得するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuId

必須

リッチメニューのID

# レスポンス

ステータスコード200と、リッチメニューレスポンスオブジェクトを含むJSONレスポンスが返されます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューを削除する

DELETE https://api.line.me/v2/bot/richmenu/{richMenuId}

リッチメニューを削除します。

リッチメニュー数の上限について

Messaging APIで作成できるリッチメニューの数の上限は、LINE公式アカウントあたり1,000件です。この上限を超過した場合は、新しいリッチメニューを作成する前に既存のリッチメニューを削除する必要があります。

リクエストの例

# レート制限

100リクエスト/時

LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuId

必須

リッチメニューのID

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# デフォルトのリッチメニューを設定する

POST https://api.line.me/v2/bot/user/all/richmenu/{richMenuId}

デフォルトのリッチメニューを設定するAPIです。デフォルトのリッチメニューは、LINE公式アカウントとのトーク画面を開いたすべてのユーザーに表示されます。すでにデフォルトのリッチメニューが設定されていた場合は、新しく指定したリッチメニューに置き換えられます。

リッチメニューの表示優先順位は高い順に以下のとおりです。

  1. Messaging APIで設定するユーザー単位のリッチメニュー
  2. Messaging APIで設定するデフォルトのリッチメニュー
  3. LINE Official Account Managerで設定するデフォルトのリッチメニュー

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuId

必須

リッチメニューのID

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューに画像が設定されていません。
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# デフォルトのリッチメニューのIDを取得する

GET https://api.line.me/v2/bot/user/all/richmenu

Messaging APIで設定したデフォルトのリッチメニューのIDを取得するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

richMenuId

String

リッチメニューのID

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
403 LINE Official Account Managerなど、別のチャネルによってデフォルトのリッチメニューが設定されています。
404 デフォルトのリッチメニューが設定されていません。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# デフォルトのリッチメニューを解除する

DELETE https://api.line.me/v2/bot/user/all/richmenu

Messaging APIで設定したデフォルトのリッチメニューを解除するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

# ユーザー単位のリッチメニュー

ユーザーIDとリッチメニューのIDを指定することで、リッチメニューをユーザー単位で設定できます。詳しくは、『Messaging APIドキュメント』の「ユーザー単位のリッチメニューを使う」を参照してください。


POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId}

リッチメニューとユーザーをリンクするAPIです。複数のリッチメニューを1人のユーザーに同時にリンクすることはできません。ユーザーにすでにリッチメニューがリンクされていた場合は、新しく指定したリッチメニューに置き換えられます。

リッチメニューの表示優先順位は高い順に以下のとおりです。

  1. Messaging APIで設定するユーザー単位のリッチメニュー
  2. Messaging APIで設定するデフォルトのリッチメニュー
  3. LINE Official Account Managerで設定するデフォルトのリッチメニュー

リッチメニューは、LINE公式アカウントを友だち追加しているユーザーに対してリンクできます。

なお、以下のユーザーに対してリッチメニューをリンクしようとした場合、ステータスコード200が返されますが、実際にはリッチメニューはリンクされません。

  • LINEアカウントを削除したユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

リクエストの例

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

Authorization

必須

Bearer {channel access token}

richMenuId

必須

リッチメニューのID

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューをリンクできませんでした。次のような理由が考えられます。
  • 無効なユーザーIDが指定されている。
  • リッチメニューに画像が設定されていない。
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、リッチメニューはリンクされません。

エラーレスポンスの例


POST https://api.line.me/v2/bot/richmenu/bulk/link

リッチメニューと複数のユーザーをリンクします。

リッチメニューの表示優先順位は高い順に以下のとおりです。

  1. Messaging APIで設定するユーザー単位のリッチメニュー
  2. Messaging APIで設定するデフォルトのリッチメニュー
  3. LINE Official Accountで設定するデフォルトのリッチメニュー

リッチメニューと1人のユーザーをリンクする場合と異なり、このエンドポイントのリクエストはバックグラウンドで非同期に処理されます。通常、処理は数秒で完了します。

ステータスコード202が返されたとしても、リッチメニューがリンクされていない場合があります。リクエストの処理が成功したかどうかを検証するには、ユーザーのリッチメニューのIDを取得して、リッチメニューがユーザーにリンクされていることを確認します。

なお、エラーレスポンスが返された場合は、リッチメニューはどのユーザーにもリンクされません。

リッチメニューは、LINE公式アカウントを友だち追加しているユーザーに対してリンクできます。レスポンスでステータスコード202が返された場合、リクエストで指定したユーザーにはリッチメニューがリンクされます。

ステータスコード202が返されたとしても、以下のユーザーは対象のLINE公式アカウントと友だちではないため、処理の対象となりません。

  • LINEアカウントを削除したユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

リクエストの例

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

richMenuId

String

必須

リッチメニューのID

userIds

Array of strings

必須

ユーザーIDの配列。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500

ステータスコード202と空のJSONオブジェクトを返します。

レスポンスの例

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューをリンクできませんでした。次のような理由が考えられます。
  • 無効なユーザーIDが指定されている。
  • 無効なリッチメニューのIDが指定されている。
  • リッチメニューに画像が設定されていない。
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# ユーザーのリッチメニューのIDを取得する

GET https://api.line.me/v2/bot/user/{userId}/richmenu

ユーザーにリンクされたリッチメニューのIDを取得するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

# レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

richMenuId

String

リッチメニューのID

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。
404 リッチメニューのIDを取得できませんでした。次のような理由が考えられます。
  • ユーザーにリッチメニューがリンクされていない。
  • 存在しないユーザーが指定されている。
  • ユーザーが対象のLINE公式アカウントを友だち追加していない

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


DELETE https://api.line.me/v2/bot/user/{userId}/richmenu

指定したユーザーにリンクされたユーザー単位のリッチメニューを解除するAPIです。

リッチメニューのリンクの解除は、LINE公式アカウントを友だち追加しているユーザーに対して可能です。

なお、以下のユーザーに対してリッチメニューのリンクを解除しようとした場合、ステータスコード200が返されますが、実際にはリッチメニューのリンクは解除されません。

  • LINEアカウントを削除したユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

リクエストの例

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

Authorization

必須

Bearer {channel access token}

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


POST https://api.line.me/v2/bot/richmenu/bulk/unlink

複数のユーザーのリッチメニューのリンクを解除します。

リッチメニューと1人のユーザーのリンクを解除する場合と異なり、このエンドポイントのリクエストはバックグラウンドで非同期に処理されます。通常、処理は数秒で完了します。

ステータスコード202が返されたとしても、リッチメニューのリンクが解除されていない場合があります。リクエストの処理が成功したかどうかを検証するには、ユーザーのリッチメニューのIDを取得して、リンクを解除したはずのリッチメニューがユーザーにリンクされていないことを確認します。

なお、エラーレスポンスが返された場合は、どのユーザーのリッチメニューのリンクも解除されません。

リッチメニューのリンクの解除は、LINE公式アカウントを友だち追加しているユーザーに対して可能です。レスポンスでステータスコード202が返された場合、リクエストで指定したユーザーのリッチメニューのリンクが解除されます。

ステータスコード202が返されたとしても、以下のユーザーは対象のLINE公式アカウントと友だちではないため、処理の対象となりません。

  • LINEアカウントを削除したユーザー
  • LINE公式アカウントをブロックしているユーザー
  • LINE公式アカウントを友だち追加していないユーザー
  • 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー

リクエストの例

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

userIds

Array of strings

必須

ユーザーIDの配列。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500

ステータスコード202と空のJSONオブジェクトを返します。

レスポンスの例

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リンク済みのリッチメニューを一括で置き換え・解除する

POST https://api.line.me/v2/bot/richmenu/batch

リッチメニューとユーザーをリンクするエンドポイントなどを利用して、ユーザーにリンクしたリッチメニューを一括操作するエンドポイントです。このエンドポイントでは、以下のような操作が可能です。

  1. 特定のリッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューを別のリッチメニューに置き換える。
  2. 特定のリッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。
  3. リッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。

また、リクエストボディoperationsプロパティには、リッチメニューの一括操作を複数指定できます。リッチメニューの一括操作を複数指定した場合、それぞれの操作は独立に並行してユーザーごとに処理されます。指定した操作は互いに影響しません。

たとえば、operationsプロパティに以下の配列を指定した場合、リクエスト前にリッチメニューAをリンク済みのユーザーのリッチメニューはBに、リクエスト前にリッチメニューBをリンク済みのユーザーのリッチメニューはCに置き換わります。操作は互いに影響しないため、リクエスト前にリッチメニューAをリンク済みのユーザーのリッチメニューはCには置き換わりません。

[
  {
    "type": "link",
    "from": "{リッチメニューAのID}",
    "to": "{リッチメニューBのID}"
  },
  {
    "type": "link",
    "from": "{リッチメニューBのID}",
    "to": "{リッチメニューCのID}"
  }
]

リッチメニューの一括操作は、バックグラウンドで非同期に処理されます。処理の進行状況は、リッチメニューの一括操作の進行状況を取得するエンドポイントで確認できます。

# リトライ時に意図しない操作を避けるための方法

resumeRequestKeyプロパティを使用することで、安全にリトライすることができます。

以下のような場合に、resumeRequestKeyプロパティを使用せずにリトライをすると、意図しない内容でリッチメニューが置き換わってしまう可能性があります。

  • タイムアウトやLINEプラットフォームの内部サーバーのエラーなどにより、リクエストが受理されたかどうかがわからない場合
  • リッチメニューの一括操作の進行状況を取得した結果、レスポンスのphaseプロパティがfailedの場合

このような状況でも、初回のリクエストでresumeRequestKeyプロパティに任意のキーを指定していた場合、同じキーを指定して再度リクエストを送ることで、処理が完了していないユーザーに対してのみ再度処理が行われます。

resumeRequestKeyプロパティの有効期間は14日間(336時間)です。有効期限が切れた場合、新しいリクエストとして扱われます。

リッチメニューの置き換えと、リッチメニューのリンクを解除するリクエストの例

リンク済みのリッチメニューを、すべてのユーザーから解除するリクエストの例

# レート制限

3リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

事前にリクエストボディが有効かを検証できます

事前にリクエストボディが有効かを検証できる、リッチメニューの一括操作のリクエストを検証するエンドポイントもあります。

検証用のエンドポイントを使うことで、このエンドポイントのレート制限に適用されることなく、リクエストがエラーにならないことを事前に確認できます。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# リクエストボディ

リッチメニューの一括操作を指定します。
最大件数:1,000件

resumeRequestKey

String

任意

リトライ用のキー。[0-9a-zA-Z\-_]{1,100}の正規表現にマッチする文字列。

# リッチメニュー操作オブジェクト

リッチメニュー操作オブジェクトは、ユーザーにリンク済みのリッチメニューへの一括操作を表すオブジェクトです。

type

String

必須

ユーザーにリンク済みのリッチメニューへの操作内容。以下のいずれかの値を指定します。

  • linkfromプロパティで指定されたリッチメニューがリンク済みのすべてのユーザーを対象に、リッチメニューをtoプロパティで指定されたリッチメニューに置き換える。
  • unlinkfromプロパティで指定されたリッチメニューがリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。
  • unlinkAll:リッチメニューがリンクされている、すべてのユーザーとリッチメニューのリンクを解除する。

unlinkAllを指定した場合、unlinkAll以外のtypeoperationsプロパティに含めることはできません。

from

String

typeがlinkまたはunlinkの場合必須

リッチメニューのID。

置き換える前のリッチメニューのID、またはリンクを解除するリッチメニューのIDを指定します。

operationsプロパティに複数の操作を指定する際に、同じリッチメニューのIDを複数のfromプロパティに指定することはできません。

to

String

typeがlinkの場合必須

リッチメニューのID。

置き換え先のリッチメニューのIDを指定します。

# レスポンス

ステータスコード202と空のJSONオブジェクトを返します。

リッチメニューの一括操作は、バックグラウンドで非同期に処理されます。処理の進行状況は、リッチメニューの一括操作の進行状況を取得するエンドポイントで確認できます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューを操作できませんでした。次のような理由が考えられます。
  • 無効なリッチメニューのIDが指定されている。
  • 置き換え先のリッチメニューに画像が設定されていない。
  • operationsプロパティに1000件を超える操作が指定されている。
  • typeプロパティにunlinkAllと、それ以外の値が同時に指定されている。
  • 同じリッチメニューのIDが複数のfromプロパティに指定されている。
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーが返された場合、リッチメニューは操作されません。

エラーレスポンスの例


# リッチメニューの一括操作の進行状況を取得する

GET https://api.line.me/v2/bot/richmenu/progress/batch

リンク済みのリッチメニューを一括で置き換え・解除したときの進行状況を取得します。

進行状況を取得できる期間は、acceptedTimeプロパティの値(タイムスタンプ)から14日間(336時間)です。

リクエストの例

# レート制限

100リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# クエリパラメータ

requestId

必須

ユーザーにリンク済みのリッチメニューを一括で操作したときのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。

# レスポンス

HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。

phase

String

進行状況。以下のいずれかの値です。

  • ongoing:リッチメニューの一括操作が進行中です。
  • succeeded:リッチメニューの一括操作が完了しました。
  • failed:リッチメニューの一括操作に失敗しました。これは、1人以上のユーザーのリッチメニューを操作できなかったことを意味します。また、操作が正常に完了したユーザーも存在する可能性があります。

acceptedTime

String

リッチメニューの一括操作のリクエストを受け付けた時間をミリ秒で表します。

completedTime

String

含まれないことがあります

リッチメニューの一括操作が完了した時間をミリ秒で表します。phaseプロパティがsucceededまたはfailedの場合にのみ返されます。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なリクエストIDが指定されています。
404 進行状況を所得できませんでした。次のような理由が考えられます。
  • 存在しないリクエストIDが指定されている。
  • 進行状況を取得できる期間を超えている。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューの一括操作のリクエストを検証する

POST https://api.line.me/v2/bot/richmenu/validate/batch

リンク済みのリッチメニューを一括で置き換え・解除するエンドポイントのリクエストボディが有効かを検証します。

このエンドポイントを利用することで、リンク済みのリッチメニューを一括で置き換え・解除するときと同様に、以下のようなエラーを検出できます。

  • 指定したリッチメニューが存在しない場合
  • 指定したリッチメニューに画像が設定されていない場合
  • operationsプロパティに複数の操作を指定し、その内容が誤っている場合
    • operationsプロパティに1,000件を超える配列を指定している
    • typeプロパティにunlinkAllと、それ以外typeを同時に指定している
    • 同じリッチメニューのIDを複数のfromプロパティに指定している
  • resumeRequestKeyプロパティに指定した文字列が無効な場合

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# リクエストボディ

リッチメニューへの一括操作の内容を定義します。
最大件数:1,000件

resumeRequestKey

String

任意

リトライ用のキー。[0-9a-zA-Z\-_]{1,100}の正規表現にマッチする文字列。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リクエストボディの検証に失敗しました。次のような理由が考えられます。
  • 無効なリッチメニューのIDが指定されている。
  • 置き換え先のリッチメニューに画像が設定されていない。
  • operationsプロパティに1000件を超える操作が指定されている。
  • typeプロパティにunlinkAllと、それ以外の値が同時に指定されている。
  • 同じリッチメニューのIDが複数のfromプロパティに指定されている。
404 存在しないリッチメニューが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# リッチメニューエイリアス

リッチメニューエイリアスリッチメニュー切替アクションを使うことで、タブ切り替えが可能なリッチメニューをユーザーに提供できます。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。


# リッチメニューエイリアスを作成する

POST https://api.line.me/v2/bot/richmenu/alias

リッチメニューエイリアスを作成するAPIです。

リッチメニューエイリアスを作成するには、事前に以下の作業をしておく必要があります。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。

1つのLINE公式アカウントに対して、Messaging APIを使って最大で1000件のリッチメニューエイリアスを作成できます。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# リクエストボディ

richMenuAliasId

String

必須

リッチメニューエイリアスのID。チャネルごとに一意の、任意のIDを指定できます。

  • 最大文字数:32
  • 使用可能文字種:半角英数字(az09)、アンダースコア(_)、ハイフン(-

richMenuId

String

必須

リッチメニューエイリアスと紐づけるリッチメニューのID。

紐づけられるリッチメニューについて

リッチメニューエイリアスと紐づけられるのは、同じチャネルで作成されたリッチメニューのみです。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューエイリアスを作成できませんでした。次のような理由が考えられます。
  • 画像を設定していないリッチメニューや、存在しないリッチメニューが指定されている。
  • 無効なリッチメニューエイリアスIDが指定されている。
  • 無効なリッチメニューIDが指定されている。
  • リッチメニューエイリアスを作成できる上限に達している。
  • 既に存在するリッチメニューエイリアスと同じIDが指定されている。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューエイリアスを削除する

DELETE https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}

リッチメニューエイリアスを削除するAPIです。

リッチメニューエイリアス数の上限について

Messaging APIで作成できるリッチメニューエイリアスの数の上限は、LINE公式アカウントあたり1,000件です。この上限を超過した場合は、新しいリッチメニューエイリアスを作成する前に既存のリッチメニューエイリアスを削除する必要があります。

リクエストの例

# レート制限

100リクエスト/時

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuAliasId

必須

削除したいリッチメニューエイリアスのID。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なリッチメニューエイリアスIDが指定されています。
404 存在しないリッチメニューエイリアスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューエイリアスを更新する

POST https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}

リッチメニューエイリアスを更新するAPIです。既存のリッチメニューエイリアスを指定して、紐づくリッチメニューを変更できます。

更新が反映されるタイミングについて

リッチメニューエイリアスの更新は、キャッシュデータの影響により、直ちに反映されない可能性があります。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

Content-Type

必須

application/json

# パスパラメータ

richMenuAliasId

必須

更新したいリッチメニューエイリアスのID

# リクエストボディ

richMenuId

String

必須

リッチメニューエイリアスと紐づけるリッチメニューのID

紐づけられるリッチメニューについて

リッチメニューエイリアスと紐づけられるのは、同じチャネルで作成されたリッチメニューのみです。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 リッチメニューエイリアスを更新できませんでした。次のような理由が考えられます。
  • 画像を設定していないリッチメニューや、存在しないリッチメニューが指定されている。
  • 無効なリッチメニューエイリアスIDが指定されている。
  • 無効なリッチメニューIDが指定されている。
404 存在しないリッチメニューエイリアスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューエイリアスの情報を取得する

GET https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}

リッチメニューエイリアスのIDを指定して、リッチメニューエイリアスの情報を取得するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# パスパラメータ

richMenuAliasId

必須

情報を取得したいリッチメニューエイリアスのID。

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

richMenuAliasId

String

リッチメニューエイリアスのID。

richMenuId

String

リッチメニューエイリアスと紐づくリッチメニューのID。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なリッチメニューエイリアスIDが指定されています。
404 存在しないリッチメニューエイリアスが指定されています。

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例


# リッチメニューエイリアスの一覧を取得する

GET https://api.line.me/v2/bot/richmenu/alias/list

リッチメニューエイリアスの一覧を取得するAPIです。

リクエストの例

# レート制限

2,000リクエスト/秒

レート制限について詳しくは、「レート制限」を参照してください。

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

# レスポンス

ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

aliases[].richMenuAliasId

String

リッチメニューエイリアスのID。

aliases[].richMenuId

String

リッチメニューエイリアスと紐づくリッチメニューのID。

レスポンスの例

# エラーレスポンス

詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。

プロバイダー(企業や開発者)が提供するサービスのアカウントと、LINEユーザーのアカウントを連携できます。

エンドポイント一覧

POST https://api.line.me/v2/bot/user/{userId}/linkToken

アカウント連携で使用する連携トークンを発行するAPIです。

リクエストの例

Authorization

必須

Bearer {channel access token}

userId

必須

連携対象のLINEアカウントのユーザーID。アカウント連携イベントオブジェクトのsourceオブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

linkToken

String

連携トークン。連携トークンの有効期間は10分で、1回のみ使用できます。

注意

有効期間は予告なく変わる可能性があります。

レスポンスの例

# メッセージオブジェクト

送信するメッセージの内容を表すJSONオブジェクトです。


# メッセージ共通プロパティ

以下のプロパティはすべてのメッセージオブジェクトに指定できます。

# クイックリプライ

クイックリプライ機能で使用するプロパティです。詳しくは、「クイックリプライを使う」を参照してください。

quickReply

Object

任意

複数のメッセージオブジェクトを受信したユーザーには、最後のメッセージオブジェクトのquickReplyプロパティが表示されます。

# itemsオブジェクト

クイックリプライボタンのコンテナです。

items

Array of objects

必須

クイックリプライボタンオブジェクト
最大オブジェクト数:13

itemsオブジェクトの例

# クイックリプライボタンオブジェクト

ボタン形式で表示される、クイックリプライの選択肢です。

type

String

必須

action

imageUrl

String

任意

ボタンの先頭に表示するアイコンのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:PNG
アスペクト比:1:1(幅:高さ)
最大ファイルサイズ:1MB

画像サイズに制限はありません。
actionプロパティに指定するアクションがカメラアクションカメラロールアクション、または位置情報アクションで、imageUrlプロパティが未指定の場合、デフォルトのアイコンが表示されます。

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

action

Object

必須

クイックリプライボタンが設定されたメッセージを未対応のLINEで受信すると、メッセージ本体のみが表示されます。

# アイコンと表示名のカスタマイズ

LINE公式アカウントからメッセージを送る際に、メッセージオブジェクトに、sender.nameプロパティとsender.iconUrlプロパティを指定できます。

sender.name

String

任意

表示名。LINEなど弊社のサービスと誤認される可能性があるワードは使用できません。
最大文字数:20

sender.iconUrl

String

任意

メッセージ送信時にアイコンとして表示する画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:PNG
アスペクト比:1:1(幅:高さ)
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

アイコンと表示名をカスタマイズするテキストメッセージの例


# テキストメッセージ

文字数および絵文字の位置について

プロパティに指定するテキストの文字数、および絵文字の位置は、UTF-16でエンコーディングしたときの符号単位の数および位置です。たとえば、サロゲートペアを使用する文字や、UTF-16で表現できる絵文字など、文字によっては、1文字ではなく複数文字としてカウントする必要があります。

詳しくは、『Messaging APIドキュメント』の「テキストの文字数のカウント」を参照してください。

type

String

必須

text

text

String

必須

メッセージのテキスト。以下の絵文字を含めることができます。

  • LINE絵文字。$をプレースホルダとして使用します。使用するLINE絵文字のプロダクトID絵文字IDを、emojisプロパティに指定してください。詳しくは、「LINE絵文字」を参照してください。
  • Unicode絵文字。

最大文字数:5000

「LINE独自のUnicode絵文字」は2022年3月31日をもって廃止されました

「LINE独自のUnicode絵文字」の代わりにemojisプロパティを使った「LINE絵文字」を利用してください。

詳しくは、2022年4月1日のニュース、「2022年3月31日をもって、Messaging APIの「LINE独自のUnicode絵文字」を廃止しました」と「LINE絵文字」を参照してください。

emojis

LINE絵文字オブジェクトの配列

任意

1個以上のLINE絵文字
最大個数:20

emojis.index

Number

任意

テキストの先頭を0とした、textプロパティ内の$(LINE絵文字のプレースホルダ)の位置。詳しくは、「テキストメッセージの例」を参照してください。

注意

ここで指定した位置と、$の位置が一致しない場合は、400 Bad requestが返されます。

emojis.productId

String

任意

LINE絵文字の集合を示すプロダクトID。プロダクトIDについては、「LINE絵文字」を参照してください。

emojis.emojiId

String

任意

絵文字ID。Messaging APIで送信できるLINE絵文字の絵文字IDについては、「LINE絵文字」を参照してください。

quoteToken

String

任意

引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

テキストメッセージの例

LINE絵文字を含むテキストメッセージの例

過去のメッセージを引用したテキストメッセージの例


# テキストメッセージ(v2)

テキストメッセージ(v2)は、テキストメッセージと異なり、{}で囲まれた文字列をメンションや絵文字に置き換えることができます。

type

String

必須

textV2

text

String

必須

メッセージのテキスト。

{}で囲まれた文字列を、substitutionプロパティを用いてメンションや絵文字に置き換えることができます。{および}を文字列として使用する場合は、{{および}}でエスケープしてください。また、{}を使用する際は、以下のことに注意してください。

  • {}はペアで使用する必要があります。
  • {}で囲まれた文字列は、substitutionプロパティを用いて置換内容を指定する必要があります。

最大文字数:5000

substitution

Object

任意

textプロパティの{}で囲まれた部分の置換内容を指定するオブジェクト。

オブジェクトのキーに使用できる文字は、半角英数字(0-9a-zA-Z)とアンダースコア(_)です。また、キーの文字数は、最大で20文字です。

オブジェクトの値にはメンションオブジェクトまたは絵文字オブジェクトを指定できます。

オブジェクトの最大数:100

quoteToken

String

任意

引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

メンションと絵文字を指定したテキストメッセージ(v2)の例

# メンションオブジェクト

テキスト内で置き換えるメンションの内容を指定します。メンションオブジェクトを使用する際は、以下のことに注意してください。

  1. メンションオブジェクトは、応答メッセージまたはプッシュメッセージでのみ使用できます。
  2. メッセージの送信先は、グループトークまたは複数人トークである必要があります。
  3. メッセージを送信するLINE公式アカウントは、送信先であるグループトークまたは複数人トークのメンバーである必要があります。
  4. メンションされたすべてのユーザーは、そのメッセージの送信先であるグループトークまたは複数人トークのメンバーである必要があります。
  5. ひとつのメッセージで置換可能なメンションは20個までです。

なお、上記の2から4までの項目は、「応答メッセージのメッセージオブジェクトを検証する」または「プッシュメッセージのメッセージオブジェクトを検証する」エンドポイントでは検証できません。

type

String

必須

mention

mentionee

Object

必須

メンション先のオブジェクト。ユーザーオブジェクトまたは全体メンションオブジェクトを指定します。

# ユーザーオブジェクト

type

String

必須

user

userId

String

必須

メンションするユーザーのユーザーID。なお、LINEボットのユーザーIDは指定できません。

# 全体メンションオブジェクト

type

String

必須

all

# 絵文字オブジェクト

テキスト内で置き換える絵文字の内容を指定します。ひとつのメッセージで置換可能な絵文字は20個までです。

type

String

必須

emoji

productId

String

必須

LINE絵文字の集合を示すプロダクトID。プロダクトIDについて詳しくは、『Messaging APIドキュメント』の「LINE絵文字」を参照してください。

emojiId

String

必須

絵文字ID。Messaging APIで送信できるLINE絵文字の絵文字IDについて詳しくは、『Messaging APIドキュメント』の「LINE絵文字」を参照してください。


# スタンプメッセージ

type

String

必須

sticker

packageId

String

必須

スタンプセットのパッケージID。パッケージIDについては、スタンプを参照してください。

stickerId

String

必須

スタンプID。Messaging APIで送信できるスタンプのスタンプIDについては、スタンプを参照してください。

quoteToken

String

任意

引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。

スタンプメッセージの例

過去のメッセージを引用したスタンプメッセージの例


# 画像メッセージ

type

String

必須

image

originalContentUrl

String

必須

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:10MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

previewImageUrl

String

必須

プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

なお、ユーザー端末の状況によっては、プレビュー画像としてoriginalContentUrlプロパティの画像が使われる場合があります。

画像メッセージの例


# 動画メッセージ

動画が正しく再生できない

動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。

動画のアスペクト比
  • 一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。
  • originalContentUrlで指定する動画と、previewImageUrlで指定するプレビュー画像のアスペクト比は一致させてください。アスペクト比が異なると、動画の背面にプレビュー画像が表示されることがあります。

LINEのトークルームの動画メッセージ。アスペクト比16:9の映像の背面に、アスペクト比1:1のプレビュー映像が表示されています。

type

String

必須

video

originalContentUrl

String

必須

動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

previewImageUrl

String

必須

プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

trackingId

String

任意

動画視聴完了イベントが発生したときに、動画を識別するためのID。trackingIdを付与した動画メッセージを送信した場合に限り、ユーザーが動画の視聴を完了すると動画視聴完了イベントが発生します。

複数のメッセージで同じIDを使用することができます。

  • 最大文字数:100
  • 使用可能文字種:半角英数字(azAZ09)、記号(-.=,+*()%$&;:@{}!?<>[]
注意

trackingIdプロパティは、グループトークや複数人トーク宛てのメッセージでは使用できません。

動画メッセージの例


# 音声メッセージ

type

String

必須

audio

originalContentUrl

String

必須

音声ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
音声フォーマット:mp3またはm4a
最大ファイルサイズ:200MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

duration

Number

必須

音声ファイルの長さ(ミリ秒)

音声メッセージの例


# 位置情報メッセージ

type

String

必須

location

title

String

必須

タイトル
最大文字数:100

address

String

必須

住所
最大文字数:100

latitude

Decimal

必須

緯度

longitude

Decimal

必須

経度

位置情報メッセージの例


# イメージマップメッセージ

イメージマップメッセージは、複数のタップ領域を設定した画像を送信できるメッセージです。画像全体に1つのタップ領域を割り当てることも、画像を区切って複数のタップ領域を設定することもできます。

また、画像の上で動画を再生したり、動画再生後にリンク先を設定したラベルを表示したりできます。

動画が正しく再生できない

動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。

動画のアスペクト比

originalContentUrlで指定する動画と、previewImageUrlで指定するプレビュー画像のアスペクト比は一致させてください。アスペクト比が異なると、動画の背面にプレビュー画像が表示されることがあります。

LINEのトークルームの動画メッセージ。アスペクト比16:9の映像の背面に、アスペクト比1:1のプレビュー映像が表示されています。

type

String

必須

imagemap

baseUrl

String

必須

画像のベースURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
イメージマップメッセージで使える画像について詳しくは、「画像の設定方法」を参照してください。

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

altText

String

必須

代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリストで画像の代替として表示されます。
最大文字数:400

baseSize.width

Number

必須

基本画像の幅(px単位)。1040を指定します。

baseSize.height

Number

必須

基本画像の幅を1040pxとした場合の高さ

video.originalContentUrl

String

※1

動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

注意

一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。

video.previewImageUrl

String

※1

プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

video.area.x

Number

※1

イメージマップ領域の左端を基準とした動画領域の位置(横方向の相対位置)。0以上の値を設定してください。

video.area.y

Number

※1

イメージマップ領域の上端を基準とした動画領域の位置(縦方向の相対位置)。0以上の値を設定してください。

video.area.width

Number

※1

動画領域の幅

video.area.height

Number

※1

動画領域の高さ

video.externalLink.linkUri

String

※2

ウェブページのURL。動画再生後に表示されるラベルをタップしたときに呼び出されます。
最大文字数:1000
使用できるスキームは、httphttpsline、およびtelです。 LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

video.externalLink.label

String

※2

ラベル。動画の再生が終了した後に表示されます。
最大文字数:30

画像がタップされたときのアクション
最大件数:50

※1 イメージマップで動画を再生する場合は必須です。
※2 イメージマップで動画を再生し、動画再生後にラベルを表示する場合は必須です。

2つのタップ領域を持つイメージマップメッセージの例

# 画像の設定方法

イメージマップメッセージで使用する画像は、以下の要件を満たす必要があります。

  • 画像フォーマット: JPEGまたはPNG
  • 画像の幅:240px、300px、460px、700px、および1040px
  • 最大ファイルサイズ:10MB
透過PNGの使用について

イメージマップメッセージに、透過PNGを使用できます。

baseUrl/{image width}」というURL形式で、5つの異なるサイズの画像にアクセスできるようにしてください。LINEはユーザーのデバイスに応じて、適切な解像度の画像を取得します。

たとえば、画像のベースURLが「https://example.com/images/cats」だった場合、幅が700pxの画像のURLは「https://example.com/images/cats/700」になります。すべての画像のURLにアクセスして、画像が表示されることを確認してください。

画像の幅 URLの例
240px https://example.com/bot/images/rm001/240
300px https://example.com/bot/images/rm001/300
460px https://example.com/bot/images/rm001/460
700px https://example.com/bot/images/rm001/700
1040px https://example.com/bot/images/rm001/1040
注意

画像のURLには拡張子を含めないでください。「https://example.com/bot/images/rm001/700.png」のように、URLに拡張子が含まれている場合、イメージマップメッセージでは画像が表示されません。

# イメージマップアクションオブジェクト

イメージマップに設定するアクションとタップ領域を表すオブジェクトです。領域がタップされると、アクションのタイプごとにそれぞれ以下のアクションが実行されます。

  • uri:指定するURIにユーザーがリダイレクトされます。
  • message:指定するメッセージが送信されます。
  • clipboard:指定する文字列がユーザーの端末のクリップボードにコピーされます。
# イメージマップURIアクションオブジェクト

type

String

必須

uri

label

String

任意

アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100

linkUri

String

必須

ウェブページのURL
最大文字数:1000
使用できるスキームは、httphttpsline、およびtelです。 LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

タップ領域の定義

イメージマップURIアクションオブジェクトの例

# イメージマップメッセージアクションオブジェクト

type

String

必須

message

label

String

任意

アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100

text

String

必須

送信するメッセージ
最大文字数:400

タップ領域の定義

イメージマップメッセージアクションオブジェクトの例

# イメージマップクリップボードアクションオブジェクト

iOS版LINEまたはAndroid版LINEのバージョン14.0.0以降で動作します。

type

String

必須

clipboard

label

String

任意

アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100

clipboardText

String

必須

クリップボードにコピーされる文字列

  • 最大文字数:1000

タップ領域の定義

イメージマップクリップボードアクションオブジェクトの例

# イメージマップ領域オブジェクト

タップ領域のサイズを表すオブジェクトです。画像の左上が座標の原点です。baseSize.widthプロパティとbaseSize.heightプロパティに基づいて指定します。

x

Number

必須

領域の左端を基準としたタップ領域の位置(横方向の相対位置)。0以上の値を設定してください。

y

Number

必須

領域の上端を基準としたタップ領域の位置(縦方向の相対位置)。0以上の値を設定してください。

width

Number

必須

タップ領域の幅

height

Number

必須

タップ領域の高さ

イメージマップ領域オブジェクトの例


# テンプレートメッセージ

テンプレートメッセージは、あらかじめレイアウトが定義されたテンプレートをカスタマイズして構築するメッセージです。詳しくは、「テンプレートメッセージ」を参照してください。

以下のタイプのテンプレートを利用できます。

# テンプレートメッセージオブジェクトの共通プロパティ

以下のプロパティは、すべてのテンプレートメッセージオブジェクトで共通です。

type

String

必須

template

altText

String

必須

代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリスト、引用メッセージでテンプレートメッセージの代替として表示されます。
最大文字数:400

template

Object

必須

ボタン確認カルーセル、または画像カルーセルオブジェクト

# ボタンテンプレート

画像、タイトル、テキストに加えて、複数のアクションボタンが含まれたテンプレートです。

type

String

必須

buttons

thumbnailImageUrl

String

任意

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大横幅サイズ:1024px
最大ファイルサイズ:10MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

推奨ファイルサイズ

画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。

imageAspectRatio

String

任意

画像のアスペクト比。以下のいずれかの値を指定します。

  • rectangle:1.51:1
  • square:1:1

デフォルト値はrectangleです。

imageSize

String

任意

画像の表示形式。以下のいずれかの値を指定します。

  • cover:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。
  • contain:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。

デフォルト値はcoverです。

imageBackgroundColor

String

任意

画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF(白)です。

title

String

任意

タイトル
最大文字数:40

text

String

必須

メッセージテキスト
画像もタイトルも指定しない場合の最大文字数:160
画像またはタイトルを指定する場合の最大文字数:60

defaultAction

画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション

actions

タップされたときのアクション
最大件数:4

ボタンテンプレートメッセージの例

# 確認テンプレート

2つのアクションボタンを表示するテンプレートです。

type

String

必須

confirm

text

String

必須

メッセージのテキスト
最大文字数:240

actions

タップされたときのアクション
2つのボタンに1つずつアクションを設定します。

確認テンプレートメッセージの例

複数のカラムを表示するテンプレートです。カラムは横にスクロールして順番に表示できます。

type

String

必須

carousel

columns

カラムの配列
最大カラム数:10

imageAspectRatio

String

任意

画像のアスペクト比。以下のいずれかの値を指定します。

  • rectangle:1.51:1
  • square:1:1

すべてのカラムに適用されます。デフォルト値はrectangleです。

imageSize

String

任意

画像の表示形式。以下のいずれかの値を指定します。

  • cover:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。
  • contain:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。

すべてのカラムに適用されます。デフォルト値はcoverです。

カルーセルテンプレートメッセージの例

thumbnailImageUrl

String

任意

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
アスペクト比:1.51:1(幅:高さ)
最大横幅サイズ:1024px
最大ファイルサイズ:10MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

推奨ファイルサイズ

画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。

imageBackgroundColor

String

任意

画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF(白)です。

title

String

任意

タイトル
最大文字数:40

text

String

必須

メッセージテキスト
画像もタイトルも指定しない場合の最大文字数:120
画像またはタイトルを指定する場合の最大文字数:60

defaultAction

画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション

actions

タップされたときのアクション
最大件数:3

注意

各カラムのアクションの数は同じにします。画像またはタイトルの有無も、各カラムで統一してください。

複数の画像を表示するテンプレートです。画像は横にスクロールして順番に表示できます。

type

String

必須

image_carousel

columns

カラムの配列
最大カラム数:10

画像カルーセルテンプレートメッセージの例

imageUrl

String

必須

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
アスペクト比:1:1(幅:高さ)
最大横幅サイズ:1024px
最大ファイルサイズ:10MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

推奨ファイルサイズ

画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。

画像がタップされたときのアクション


# Flex Message

Flex Messageは、CSS Flexible Box(CSS Flexbox) (opens new window)の基礎知識を使って、レイアウトを自由にカスタマイズできるメッセージです。Flex Messageの概要については、『Messaging APIドキュメント』の「Flex Messageを送信する」を参照してください。

type

String

必須

flex

altText

String

必須

代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリスト、引用メッセージでFlex Messageの代替として表示されます。
最大文字数:400

contents

Object

必須

Flex Messageのコンテナ

Flex Messageの例

# 動作環境

Flex Messageは、すべてのバージョンのLINEでサポートされます。なお、以下の機能は、LINEの特定のバージョンのみサポートしています。

機能 iOS版LINE
Android版LINE
PC版LINE
(macOS版、Windows版)
11.22.0以上 7.7.0以上
13.6.0以上 7.17.0以上

※1 動画をサポートしていないLINEのバージョンにおいてもコンテンツを適切に表示するには、altContentプロパティを指定します。このプロパティで指定した画像が動画の代わりに表示されます。

※2 LINEのバージョンがdecahectoをサポートするバージョンに満たない場合、バブルのサイズはkiloとして表示されます。

# コンテナ

コンテナは、Flex Messageの最上位の構造です。以下のタイプのコンテナを利用できます。

コンテナのJSONデータのサンプルや用途については、『Messaging APIドキュメント』の「Flex Messageの要素」を参照してください。

# バブル

1つのメッセージバブルを構成するコンテナです。ヘッダー、ヒーロー、ボディ、およびフッターの4つのブロックを含めることができます。各ブロックの用途について詳しくは、『Messaging APIドキュメント』の「ブロック」を参照してください。

バブルを定義するJSONデータの最大サイズは、30KBです。

type

String

必須

bubble

size

String

任意

バブルの大きさ。nanomicrodecahectokilomegagigaのいずれかの値を指定できます。デフォルト値はmegaです。

decahectoを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:13.6.0以降
  • macOS版とWindows版のLINE:7.17.0以降

LINEのバージョンがdecahectoをサポートするバージョンに満たない場合、バブルのサイズはkiloとして表示されます。

direction

String

任意

テキストの書字方向と、水平ボックス内でコンポーネントを配置する向き。以下のいずれかの値を指定します。

  • ltr:テキストは左横書き、コンポーネントは左から右に配置
  • rtl:テキストは右横書き、コンポーネントは右から左に配置

デフォルト値はltrです。

header

Object

任意

ヘッダー。ボックスを指定します。

hero

Object

任意

ヒーロー。ボックス画像動画のいずれかを指定します。

body

Object

任意

ボディ。ボックスを指定します。

footer

Object

任意

フッター。ボックスを指定します。

styles

Object

任意

各ブロックのスタイル。バブルスタイルを指定します。

action

Object

任意

バブルがタップされたときのアクション。アクションオブジェクトを指定します。

バブルの例

# ブロックのスタイルを定義するオブジェクト

バブル内のブロックのスタイルは、以下の2つのオブジェクトを使って定義します。

バブルスタイルとブロックスタイルの例

# バブルスタイル

header

Object

任意

ヘッダーのスタイル。ブロックスタイルを指定します。

hero

Object

任意

ヒーローのスタイル。ブロックスタイルを指定します。

body

Object

任意

ボディのスタイル。ブロックスタイルを指定します。

footer

Object

任意

フッターのスタイル。ブロックスタイルを指定します。

# ブロックスタイル

backgroundColor

String

任意

ブロックの背景色。16進数カラーコードで設定します。

separator

Boolean

任意

ブロックの上にセパレータを配置する場合はtrueを指定します。デフォルト値はfalseです。

separatorColor

String

任意

セパレータの色。16進数カラーコードで設定します。

注意

先頭のブロックの上にはセパレータを配置できません。

カルーセルは、子要素として1つ以上のバブルを持つコンテナです。カルーセル内のバブルは、横にスクロールして閲覧できます。

カルーセルを定義するJSONデータの最大サイズは、50KBです。

type

String

必須

carousel

contents

Array of objects

必須

このカルーセル内のバブル。最大バブル数:12

バブルの幅

1つのカルーセルに、異なる幅(sizeプロパティ)のバブルを含めることはできません。バブルの幅は、カルーセルごとに揃えてください。

バブルの高さ

カルーセルの中で最大の高さのバブルと一致するように、各バブルのボディが伸長します。ただし、ボディがないバブルの大きさは変わりません。

カルーセルの例

# コンポーネント

コンポーネントは、ブロックを構成する要素です。以下のコンポーネントを利用できます。

各コンポーネントのJSONデータのサンプルや用途については、『Messaging APIドキュメント』の「Flex Messageの要素」と「Flex Messageのレイアウト」を参照してください。

# ボックス

ボックスは、水平または垂直のレイアウト方向を定義します。ボックスを含む、他のコンポーネントを含むことができます。

type

String

必須

box

layout

String

必須

このボックス内のコンポーネントを配置する向き。詳しくは、『Messaging APIドキュメント』の「ボックスコンポーネントの向き」を参照してください。

contents

Array of objects

必須

このボックス内のコンポーネント。以下のコンポーネントを指定できます。

なお、配列に指定した順に描画されます。空配列を指定することもできます。

backgroundColor

String

任意

ボックスの背景色。RGBカラーに加えて、アルファチャネル(透明度)も設定できます。16進数カラーコードで設定します。(例:#RRGGBBAA)デフォルト値は#00000000です。

borderColor

String

任意

ボックスの境界線の色。16進数カラーコードで設定します。

borderWidth

String

任意

ボックスの境界線の太さ。ピクセルまたはnonelightnormalmediumsemi-boldboldのいずれかの値を指定できます。noneでは、境界線は描画されず、それ以外は列挙した順に太くなります。

cornerRadius

String

任意

ボックスの境界線の角を丸くするときの半径。ピクセル、またはnonexssmmdlgxlxxlのいずれかの値を指定できます。noneでは、角は丸くならず、それ以外は列挙した順に半径が大きくなります。デフォルト値はnoneです。

width

String

任意

ボックスの幅。%(親要素の幅を基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの幅」を参照してください。

maxWidth

String

任意

ボックスの最大幅。%(親要素の幅を基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの最大幅」を参照してください。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:11.22.0以降
  • macOS版とWindows版のLINE:7.7.0以降

height

String

任意

ボックスの高さ。%(親要素の高さを基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの高さ」を参照してください。

maxHeight

String

任意

ボックスの最大高。%(親要素の高さを基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの最大高」を参照してください。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:11.22.0以降
  • macOS版とWindows版のLINE:7.7.0以降

flex

Number

任意

親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。

spacing

String

任意

このボックス内のコンポーネント間の最小スペース。デフォルト値はnoneです。詳しくは、『Messaging APIドキュメント』の「ボックスのspacingプロパティ」を参照してください。

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

paddingAll

String

任意

このボックスの境界線と、子要素の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。

paddingTop

String

任意

このボックスの上端の境界線と、子要素の上端の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。

paddingBottom

String

任意

このボックスの下端の境界線と、子要素の下端の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。

paddingStart

String

任意
  • バブルの書字方向がLTRの場合:このボックスの左端の境界線と、子要素の左端の間の余白
  • バブルの書字方向がRTLの場合:このボックスの右端の境界線と、子要素の右端の間の余白

詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。

paddingEnd

String

任意
  • バブルの書字方向がLTRの場合:このボックスの右端の境界線と、子要素の右端の間の余白
  • バブルの書字方向がRTLの場合:このボックスの左端の境界線と、子要素の左端の間の余白

詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。

position

String

任意

このボックスを配置する際の基準位置。以下のいずれかの値を指定します。

  • relative:直前のボックスを基準にします。
  • absolute:親要素の左上を基準にします。

デフォルト値はrelativeです。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetTop

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetBottom

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetStart

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetEnd

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

action

Object

任意

タップされたときのアクション。アクションオブジェクトを指定します。

justifyContent

String

任意

親要素の主軸に沿った子要素の配置。親要素が水平ボックスの場合、子要素のflexプロパティを0に指定したときのみ動作します。詳しくは、『Messaging APIドキュメント』の「余白を使った子コンポーネントの配置」を参照してください。

alignItems

String

任意

親要素の交差軸に沿った子要素の配置。詳しくは、『Messaging APIドキュメント』の「余白を使った子コンポーネントの配置」を参照してください。

background.type

String

任意

背景の種類。以下の値を指定します。

  • linearGradient:線形グラデーション。詳しくは、『Messaging APIドキュメント』の「線形グラデーション背景」を参照してください。

background.angle

String

任意

線形グラデーションの勾配の角度。0度以上、360度未満の範囲で、90deg(90度)や23.5deg(23.5度)のように整数または小数で角度を指定します。0degは下から上、45degは左下から右上、90degは左から右、180degは上から下のように数字が増えると時計回りで角度が変わります。詳しくは、『Messaging APIドキュメント』の「線形グラデーションの角度」を参照してください。

background.typelinearGradientの場合は必須です。

background.startColor

String

任意

グラデーションの開始点の色。#RRGGBBまたは#RRGGBBAAのような16進数カラーコードで設定します。

background.typelinearGradientの場合は必須です。

background.endColor

String

任意

グラデーションの終了点の色。#RRGGBBまたは#RRGGBBAAのような16進数カラーコードで設定します。

background.typelinearGradientの場合は必須です。

background.centerColor

String

任意

グラデーションの中間色。#RRGGBBまたは#RRGGBBAAのような16進数カラーコードで設定します。background.centerColorを指定すると3色のグラデーションになります。詳しくは、『Messaging APIドキュメント』の「グラデーションの中間色」を参照してください。

background.centerPosition

String

任意

中間色の位置。開始点の0%から、終了点の100%の範囲で整数または小数を指定します。デフォルト値は50%です。詳しくは、『Messaging APIドキュメント』の「グラデーションの中間色」を参照してください。

ボックスの例

# ボタン

ボタンを描画するコンポーネントです。ユーザーが、ボタンをタップしたときに実行される、アクションを指定できます。

type

String

必須

button

action

Object

必須

タップされたときのアクション。アクションオブジェクトを指定します。

flex

Number

任意

親要素内での、このコンポーネントの幅または高さの比率。水平ボックス内のコンポーネントでは、flexプロパティのデフォルト値は1です。垂直ボックス内のコンポーネントでは、flexプロパティのデフォルト値は0です。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

position

String

任意

offsetTopoffsetBottomoffsetStartoffsetEndの基準。以下のいずれかの値を指定します。

  • relative:直前のボックスを基準にします。
  • absolute:親要素の左上を基準にします。

デフォルト値はrelativeです。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetTop

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetBottom

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetStart

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetEnd

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

height

String

任意

ボタンの高さ。smまたはmdのいずれかの値を指定できます。デフォルト値はmdです。

style

String

任意

ボタンの表示形式。以下のいずれかの値を指定します。

  • primary:濃色のボタン向けのスタイル
  • secondary:淡色のボタン向けのスタイル
  • link:HTMLのリンクのスタイル。

デフォルト値はlinkです。

color

String

任意

styleプロパティがlinkの場合は文字の色。styleプロパティがprimaryまたはsecondaryの場合は背景色です。16進数カラーコードで設定します。

gravity

String

任意

垂直方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。

adjustMode

String

任意

テキストのフォントサイズを調整する方式。以下の値を指定します。

  • shrink-to-fit:コンポーネントの幅に合わせて自動縮小されます。このプロパティはベストエフォートで機能しますので、プラットフォームによって動作が異なる、あるいは動作しないことがあります。詳しくは、『Messaging APIドキュメント』の「フォントサイズの自動縮小」を参照してください。

scaling

Boolean

任意

trueを指定すると、LINEアプリのフォントサイズ設定に応じて、テキストのフォントサイズが自動的に拡大縮小されます。デフォルト値はfalseです。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:13.6.0以降
  • macOS版とWindows版のLINE:7.17.0以降

ボタンの例

# 画像

画像を描画するコンポーネントです。

type

String

必須

image

url

String

必須

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大画像サイズ:1024 x 1024ピクセル
最大ファイルサイズ:10MB(animatedプロパティがtrueの場合は300KB)

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

推奨ファイルサイズ

メッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。

flex

Number

任意

親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

position

String

任意

offsetTopoffsetBottomoffsetStartoffsetEndの基準。以下のいずれかの値を指定します。

  • relative:直前のボックスを基準にします。
  • absolute:親要素の左上を基準にします。

デフォルト値はrelativeです。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetTop

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetBottom

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetStart

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetEnd

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

align

String

任意

水平方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキストや画像を水平方向に整列させる」を参照してください。

gravity

String

任意

垂直方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。

size

String

任意

画像の幅の最大サイズ。デフォルト値はmdです。詳しくは、『Messaging APIドキュメント』の「画像のサイズ」を参照してください。

aspectRatio

String

任意

画像のアスペクト比。{幅}:{高さ}の形式で指定します。{幅}{高さ}は、それぞれ1~100000の値で入力します。ただし、{高さ}には{幅}の3倍を超える値は指定できません。デフォルト値は1:1です。

aspectMode

String

任意

画像のアスペクト比とaspectRatioプロパティで指定されるアスペクト比が一致しない場合の、画像の表示方式。詳しくは、「描画領域について」を参照してください。

backgroundColor

String

任意

画像の背景色。16進数カラーコードで設定します。

action

Object

任意

タップされたときのアクション。アクションオブジェクトを指定します。

animated

Boolean

任意

trueを指定すると画像(APNG)のアニメーションを再生します。メッセージ全体で10枚の画像までtrueを指定できます。上限を超えて指定した場合、メッセージは送信できません。デフォルト値はfalseです。データサイズが300KBを超える場合は再生されません。

アニメーション画像の作成方法

アニメーションの画像はAPNG作成ツールを使用して作成してください。APNGの作成方法は、アニメーションスタンプの作成方法を参考にしてください。詳しくは、LINE Creators Marketにあるアニメーションスタンプの制作ガイドライン (opens new window)を参照してください。

アニメーション画像が再生されないときは?

「画像は表示されるがアニメーションが再生されない」というときは、以下を確認してください。

  • animatedプロパティの値をtrueにしているか
  • 画像のデータサイズが300KB以下か

またメッセージを受信したLINEアプリの設定に起因して、アニメーションが再生されない場合もあります。併せて以下も確認してください。

  • LINEアプリの設定でGIF自動再生がオンになっているか

アニメーションはAPNGのacTLチャンクのnum_playsフィールドで指定した回数分、ループ再生されます。0を指定することで無限にループ再生も可能です。

画像の例

# 描画領域について

sizeプロパティで画像の最大の幅を指定し、aspectRatioプロパティで画像のアスペクト比(幅:高さの比率)を指定します。sizeプロパティとaspectRatioプロパティで決定される矩形の領域を、描画領域と呼びます。この描画領域に画像が表示されます。

  • flexプロパティによって算出されたコンポーネントの幅が、sizeプロパティで指定された画像の幅よりも小さい場合、描画領域の幅はコンポーネントの幅に縮小されます。
  • 画像のアスペクト比とaspectRatioプロパティで指定されるアスペクト比が一致しない場合、aspectModeプロパティに基づいて画像が表示されます。デフォルト値はfitです。
    • aspectModecoverの場合:描画領域全体に画像を表示します。描画領域に収まらない部分は切り詰められます。
    • aspectModefitの場合:描画領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に背景が表示されます。
# 動画

動画を描画するコンポーネントです。

動画を使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:11.22.0以降
  • macOS版とWindows版のLINE:7.7.0以降

LINEのバージョンが動画をサポートするバージョンに満たない場合、動画のaltContentプロパティに指定したコンポーネントが代替コンテンツとして表示されます。

動画が正しく再生できない

動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。

動画のアスペクト比

一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。

また、urlプロパティで指定する動画のアスペクト比と、以下の2つのアスペクト比は一致させてください。アスペクト比が異なると、予期せぬレイアウトになることがあります。

  • aspectRatioプロパティで指定するアスペクト比
  • previewUrlプロパティで指定するプレビュー画像のアスペクト比

LINEのトークルームの動画。アスペクト比16:9の映像の背面に、アスペクト比1:1のプレビュー映像が表示されています。

動画コンポーネントの使用条件

動画コンポーネントを使うには、以下の条件をすべて満たす必要があります。

  • 動画コンポーネントをヒーローのブロック直下に指定する。
  • バブルのsizeプロパティにkilo mega gigaのいずれかを指定する。
  • バブルがカルーセルの子要素ではない。

type

String

必須

video

url

String

必須

動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

previewUrl

String

必須

プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

altContent

component

必須

代替コンテンツ。動画コンポーネントをサポートするバージョン未満のLINEで表示されます。ボックスまたは画像を指定します。

aspectRatio

String

任意

動画のアスペクト比。{幅}:{高さ}の形式で指定します。{幅}{高さ}は、それぞれ1~100000の値で入力します。ただし、{高さ}には{幅}の3倍を超える値は指定できません。デフォルト値は1:1です。

action

Object

任意

URIアクション。詳しくは、『Messaging APIドキュメント』の「URIアクション」を参照してください。

動画の例

# アイコン

隣接するテキストを装飾するために、アイコンを描画するコンポーネントです。このコンポーネントは、ベースラインボックス内でのみ使用できます。

type

String

必須

icon

url

String

必須

画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大画像サイズ:1024 x 1024ピクセル
最大ファイルサイズ:1MB

URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

position

String

任意

offsetTopoffsetBottomoffsetStartoffsetEndの基準。以下のいずれかの値を指定します。

  • relative:直前のボックスを基準にします。
  • absolute:親要素の左上を基準にします。

デフォルト値はrelativeです。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetTop

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetBottom

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetStart

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetEnd

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

size

String

任意

アイコンの幅の最大サイズ。デフォルト値はmdです。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。

scaling

Boolean

任意

trueを指定すると、LINEアプリのフォントサイズ設定に応じて、アイコンが自動的に拡大縮小されます。デフォルト値はfalseです。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:13.6.0以降
  • macOS版とWindows版のLINE:7.17.0以降

aspectRatio

String

任意

アイコンのアスペクト比。{幅}:{高さ}の形式で指定します。{幅}{高さ}は、それぞれ1~100000の値で入力します。ただし、{高さ}には{幅}の3倍を超える値は指定できません。デフォルト値は1:1です。

アイコンのflexプロパティの値は、0に固定されます。

アイコンの例

# テキスト

文字列を描画するコンポーネントです。色、サイズ、および太さを指定できます。

type

String

必須

text

text

String

任意

テキスト。textプロパティまたはcontentsプロパティのいずれかを必ず設定してください。contentsプロパティを設定すると、textは無視されます。

contents

Array of objects

任意

スパンの配列。textプロパティまたはcontentsプロパティのいずれかを必ず設定してください。contentsプロパティを設定すると、textは無視されます。

adjustMode

String

任意

テキストのフォントサイズを調整する方式。以下の値を指定します。

  • shrink-to-fit:コンポーネントの幅に合わせて自動縮小されます。このプロパティはベストエフォートで機能しますので、プラットフォームによって動作が異なる、あるいは動作しないことがあります。詳しくは、『Messaging APIドキュメント』の「フォントサイズの自動縮小」を参照してください。

flex

Number

任意

親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

position

String

任意

offsetTopoffsetBottomoffsetStartoffsetEndの基準。以下のいずれかの値を指定します。

  • relative:直前のボックスを基準にします。
  • absolute:親要素の左上を基準にします。

デフォルト値はrelativeです。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetTop

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetBottom

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetStart

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

offsetEnd

String

任意

オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。

size

String

任意

フォントサイズ。デフォルト値はmdです。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。

scaling

Boolean

任意

trueを指定すると、LINEアプリのフォントサイズ設定に応じて、テキストのフォントサイズが自動的に拡大縮小されます。デフォルト値はfalseです。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。

このプロパティがtrueの場合、contentsプロパティで指定したスパンのテキストも、フォントサイズが自動的に拡大縮小されます。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:13.6.0以降
  • macOS版とWindows版のLINE:7.17.0以降

align

String

任意

水平方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキストや画像を水平方向に整列させる」を参照してください。

gravity

String

任意

垂直方向の位置合わせ方式。デフォルト値はtopです。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。

wrap

Boolean

任意

trueを指定するとテキストを折り返します。デフォルト値はfalseです。trueに設定した場合、改行文字(\n)を使って改行できます。詳しくは、『Messaging APIドキュメント』の「テキストを折り返す」を参照してください。

lineSpacing

String

任意

折り返したテキスト内の行間。0より大きい整数または小数をピクセルで指定します。開始行の上部と最終行の下部には適用されません。詳しくは、『Messaging APIドキュメント』の「テキスト内の行間を広げる」を参照してください。

このプロパティを使用できるLINEのバージョンは以下のとおりです。

  • iOS版とAndroid版のLINE:11.22.0以降
  • macOS版とWindows版のLINE:7.7.0以降

maxLines

Number

任意

最大行数。テキストがこの行数に収まらない場合は、最終行の末尾に省略記号(…)が表示されます。0ではすべてのテキストが表示されます。デフォルト値は0です。

weight

String

任意

フォントの太さ。regularboldのいずれかの値を指定できます。boldを指定すると太字になります。デフォルト値はregularです。

color

String

任意

フォントの色。16進数カラーコードで設定します。

action

Object

任意

タップされたときのアクション。アクションオブジェクトを指定します。

style

String

任意

テキストのスタイル。以下のいずれかの値を指定します。

  • normal:標準
  • italic:斜体デフォルト

値はnormalです。

decoration

String

任意

テキストの装飾。以下のいずれかの値を指定します。

  • none:装飾なし
  • underline:下線
  • line-through:取り消し線

デフォルト値はnoneです。

テキストの例

# スパン

スタイルが異なる複数の文字列を描画するコンポーネントです。色、サイズ、太さ、および装飾を指定できます。スパンは、テキストcontentsプロパティに設定します。

type

String

必須

span

text

String

任意

テキスト。親のテキストのwrapプロパティをtrueに設定した場合は、改行文字(\n)を使って改行できます。

color

String

任意

フォントの色。16進数カラーコードで設定します。

size

String

任意

フォントサイズ。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。

weight

String

任意

フォントの太さ。regularboldのいずれかの値を指定できます。boldを指定すると太字になります。デフォルト値はregularです。

style

String

任意

テキストのスタイル。以下のいずれかの値を指定します。

  • normal:標準
  • italic:斜体

デフォルト値はnormalです。

decoration

String

任意

テキストの装飾。以下のいずれかの値を指定します。

  • none:装飾なし
  • underline:下線
  • line-through:取り消し線

デフォルト値はnoneです。

注意

テキストdecorationプロパティで設定した装飾は、スパンのdecorationプロパティで上書きできません。

スパンの例

# セパレータ

ボックス内に分割線を描画するコンポーネントです。水平ボックスに含めた場合は垂直線、垂直ボックスに含めた場合は水平線が描画されます。

type

String

必須

separator

margin

String

任意

親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmarginプロパティ」を参照してください。

color

String

任意

セパレータの色。16進数カラーコードで設定します。

セパレータの例

# フィラー
フィラーは非推奨のコンポーネントです

スペースを作るには、フィラーの代わりに各コンポーネントのプロパティを使用してください。詳しくは、『Messaging APIドキュメント』の「コンポーネントの位置」を参照してください。

スペースを作るためのコンポーネントです。ボックス内のコンポーネントの間、前、または後にスペースを入れることができます。

type

String

必須

filler

flex

Number

任意

親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。

フィラーでは親要素のspacingプロパティが無視されます。

フィラーの例

# アクションオブジェクト

ユーザーがメッセージ内のボタンまたは画像をタップしたときに、ボットが実行できるアクションのタイプです。


# ポストバックアクション

このアクションが関連づけられたコントロールがタップされると、dataプロパティに指定された文字列を含むポストバックイベントが、Webhookを介して返されます。

type

String

必須

postback

label

String

説明を参照

アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。

data

String

必須

Webhookを介して、ポストバックイベントpostback.dataプロパティで返される文字列
最大文字数:300

displayText

String

任意

アクションの実行時に、ユーザーのメッセージとしてLINEのトーク画面に表示されるテキスト。
最大文字数:300
displayTextプロパティとtextプロパティは、同時に設定できません。

text

String

任意

【廃止予定】アクションの実行時に、ユーザーのメッセージとしてLINEのトーク画面に表示されるテキスト。Webhookを介してサーバーに返されます。クイックリプライボタンでは使用しないでください。
最大文字数:300
displayTextプロパティとtextプロパティは、同時に設定できません。

inputOption

String

任意

アクションに応じた、リッチメニューなどの表示方法。以下のいずれかの値を指定します。

  • closeRichMenu:リッチメニューを閉じる
  • openRichMenu:リッチメニューを開く
  • openKeyboard:キーボードを開く
  • openVoice:ボイスメッセージ入力モードを開く

iOS版LINEまたはAndroid版LINEのバージョン12.6.0以降で動作します。

fillInText

String

説明を参照

キーボードを開いたときに、入力欄にあらかじめ入力しておく文字列。inputOptionopenKeyboardの場合にのみ有効です。文字列は、改行文字(\n)により改行できます。
最大文字数:300

iOS版LINEまたはAndroid版LINEのバージョン12.6.0以降で動作します。

# ラベルの仕様

以下のアクションにおけるlabelプロパティは、アクションを設定するオブジェクトごとに、仕様が異なります。

上記のアクションにおけるラベルの仕様は次のとおりです。なお、上記以外のアクションにおけるラベルの仕様については、各アクションの仕様を参照してください。

オブジェクト 必須 最大文字数
テンプレートメッセージ 画像カルーセル 任意 12
画像カルーセル以外 必須 20
リッチメニュー *1 任意 20
クイックリプライボタン 必須 20
Flex Message ボタン 必須 40
ボタン以外 *2 任意 40

※1 ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。

※2 ラベルを指定しても表示されません。

ポストバックアクションオブジェクトの例


# メッセージアクション

このアクションが関連づけられたコントロールがタップされると、textプロパティの文字列がユーザーからのメッセージとして送信されます。

type

String

必須

message

label

String

説明を参照

アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。

text

String

必須

アクションの実行時に送信されるテキスト
最大文字数:300

メッセージアクションオブジェクトの例


# URIアクション

このアクションが関連づけられたコントロールがタップされると、LINE内ブラウザでuriプロパティのURIが開きます。

type

String

必須

uri

label

String

説明を参照

アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。

uri

String

必須

アクションの実行時に開かれるURI(最大文字数:1000)
使用できるスキームは、httphttpsline、およびtelです。LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。

URIはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

altUri.desktop

String

任意

macOS版とWindows版のLINEでアクションを実行したときに開かれるURI(最大文字数:1000)
altUri.desktopを指定した場合は、macOS版とWindows版のLINEではuriが無視されます。
使用できるスキームは、httphttpsline、およびtelです。LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。

URIはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。

注意

altUri.desktopは、Flex MessageにURIアクションを関連付けた場合にのみ有効です。クイックリプライでは動作しません。

URIアクションオブジェクトの例


# 日時選択アクション

このアクションが関連づけられたコントロールがタップされると、日時選択ダイアログでユーザーが選択した日時を含むポストバックイベントが、Webhookを介して返されます。日時選択アクションはタイムゾーンの違いに対応していません。

type

String

必須

datetimepicker

label

String

説明を参照

アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。

data

String

必須

Webhookを介して、ポストバックイベントpostback.dataプロパティで返される文字列
最大文字数:300

mode

String

必須

アクションモード
date:日付を選択します。
time:時刻を選択します。
datetime:日付と日時を選択します。

initial

String

任意

日付または時刻の初期値

max

String

任意

選択可能な日付または時刻の最大値。minの値より大きい必要があります。

min

String

任意

選択可能な日付または時刻の最小値。maxの値より小さい必要があります。

日時選択アクションオブジェクトの例

# 日付と日時の形式

initialmax、およびminの値の日付と日時の形式は以下のとおりです。full-datetime-hour、およびtime-minuteの形式は、RFC3339 (opens new window)プロトコルで定義されています。

モード 形式
date full-date
最大値:2100-12-31
最小値:1900-01-01
2017-06-18
time time-hour:time-minute
最大値:23:59
最小値:00:00
00:00
06:15
23:59
datetime full-dateTtime-hour:time-minuteまたはfull-datettime-hour:time-minute
最大値:2100-12-31T23:59
最小値:1900-01-01T00:00
2017-06-18T06:15
2017-06-18t06:15

# カメラアクション

クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINE内のカメラが起動します。

type

String

必須

camera

label

String

必須

アクションのラベル
最大文字数:20

カメラアクションオブジェクトの例


# カメラロールアクション

クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINEのカメラロール画面が開きます。

type

String

必須

cameraRoll

label

String

必須

アクションのラベル
最大文字数:20

カメラロールアクションオブジェクトの例


# 位置情報アクション

クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINEの位置情報画面が開きます。

type

String

必須

location

label

String

必須

アクションのラベル
最大文字数:20

位置情報アクションオブジェクトの例


# リッチメニュー切替アクション

リッチメニューにのみ設定できるアクションです。Flex Messageやクイックリプライでは利用できません。このアクションが関連づけられたリッチメニューがタップされると、リッチメニューの切替が行われ、ユーザーが選択したリッチメニューエイリアスIDを含むポストバックイベントが、Webhookを介して返されます。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。

type

String

必須

richmenuswitch

label

String

任意

アクションのラベル。リッチメニューでは省略可能です。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。

  • 最大文字数:20

richMenuAliasId

String

必須

切替先のリッチメニューエイリアスID。

data

String

必須

Webhookを介して、ポストバックイベントpostback.dataプロパティで返される文字列

  • 最大文字数:300

リッチメニュー切替アクションオブジェクトの例


# クリップボードアクション

ユーザーがこのアクションが関連づけられたコントロールをタップすると、clipboardTextプロパティに指定されたテキストが、端末のクリップボードにコピーされます。

iOS版LINEまたはAndroid版LINEのバージョン14.0.0以降で動作します。

type

String

必須

clipboard

label

String

説明を参照

アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。

clipboardText

String

必須

クリップボードにコピーされる文字列

  • 最大文字数:1000

クリップボードアクションオブジェクトの例

# リッチメニューの構造

リッチメニューは以下のどちらかのオブジェクトで表されます。

これらのオブジェクトは領域オブジェクトアクションオブジェクトから構成されます。


# リッチメニューオブジェクト

リッチメニューオブジェクトが有効か確認したい場合

リッチメニューオブジェクトが有効かを確認したい場合、リッチメニューオブジェクトを検証するエンドポイントで検証できます。

size

Object

必須

sizeオブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像の幅サイズは800px以上2500px以下で、高さサイズは250px以上です。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。

selected

Boolean

必須

デフォルトでリッチメニューを表示する場合はtrueです。それ以外はfalseです。

name

String

必須

リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。
最大文字数:300

chatBarText

String

必須

トークルームメニューに表示されるテキストです。
最大文字数:14

areas

Array

必須

タップ領域の座標とサイズを定義する、領域オブジェクトの配列。
最大領域オブジェクト数:20

リッチメニューオブジェクトの例


# リッチメニューレスポンスオブジェクト

richMenuId

String

リッチメニューのID

size

Object

sizeオブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像の幅サイズは800px以上2500px以下で、高さサイズは250px以上です。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。

selected

Boolean

デフォルトでリッチメニューを表示する場合はtrueです。それ以外はfalseです。

name

String

リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。
最大文字数:300

chatBarText

String

トークルームメニューに表示されるテキストです。
最大文字数:14

areas

Array

タップ領域の座標とサイズを定義する、領域オブジェクトの配列。
最大領域オブジェクト数:20

リッチメニューレスポンスオブジェクトの例

# sizeオブジェクト

width

Number

必須

リッチメニューの幅。800以上、2500以下の値を指定します。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。

height

Number

必須

リッチメニューの高さ。250以上の値を指定します。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。

sizeオブジェクトの例

# 領域オブジェクト

bounds

Object

必須

領域の境界をピクセルで表すオブジェクト。「boundsオブジェクト」を参照してください。

action

Object

必須

領域がタップされたときに実行されるアクション。「アクションオブジェクト」を参照してください。

領域オブジェクトの例

# boundsオブジェクト

x

Number

必須

画像の左端を基準としたタップ領域の位置(横方向の相対位置)。0以上の値を設定してください。

y

Number

必須

画像の上端を基準としたタップ領域の位置(縦方向の相対位置)。0以上の値を設定してください。

width

Number

必須

タップ領域の幅

height

Number

必須

タップ領域の高さ

boundsオブジェクトの例