LINE Messaging API

The core LINE bot API — 73 operations for replying, pushing, multicasting, broadcasting and narrowcasting messages to LINE users, plus rich menus, Flex messages, group and room membership, profiles, followers, message quota, delivery statistics, coupons, memberships and webhook endpoint configuration. Supports idempotent retries via the X-Line-Retry-Key header on the four metered send operations. Binary content (message media, rich menu images) is served from api-data.line.me rather than api.line.me.

OpenAPI Specification

line-messaging-api-openapi.yml Raw ↑
---
openapi: 3.0.0
info:
  title: LINE Messaging API
  version: "0.0.1"
  description:
    This document describes LINE Messaging API.

servers:
  - url: "https://api.line.me"

security:
  - Bearer: []

tags:
  - name: messaging-api
  - name: messaging-api-blob

paths:
  # Webhook
  "/v2/bot/channel/webhook/endpoint":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-webhook-endpoint-information
      tags:
        - messaging-api
      operationId: getWebhookEndpoint
      description: "Get webhook endpoint information"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GetWebhookEndpointResponse"
              examples:
                ACTIVE:
                  summary: "If the webhook URL was set and the webhook usage is enabled"
                  value:
                    endpoint: https://example.com/test
                    active: true
                INACTIVE:
                  summary: "If the webhook URL was set and the webhook usage is disabled"
                  value:
                    endpoint: https://example.com/test
                    active: false

    put:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#set-webhook-endpoint-url
      tags:
        - messaging-api
      operationId: setWebhookEndpoint
      description: "Set webhook endpoint URL"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SetWebhookEndpointRequest"
        required: true
      responses:
        "200":
          description: "OK"

  "/v2/bot/channel/webhook/test":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#test-webhook-endpoint
      tags:
        - messaging-api
      operationId: testWebhookEndpoint
      description: "Test webhook endpoint"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/TestWebhookEndpointRequest"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/TestWebhookEndpointResponse"
              example:
                success: true
                timestamp: "2020-09-30T05:38:20.031Z"
                statusCode: 200
                reason: OK
                detail: "200"

  # Webhook content
  "/v2/bot/message/{messageId}/content":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-content
      servers:
        - url: "https://api-data.line.me"
      tags:
        - messaging-api-blob
      operationId: getMessageContent
      description: "Download image, video, and audio data sent from users."
      parameters:
        - name: messageId
          in: path
          required: true
          description: "Message ID of video or audio"
          schema:
            type: string
      responses:
        "200":
          description: "OK"
          content:
            "*/*":
              schema:
                description: "blob response"
                type: string
                format: binary

  "/v2/bot/message/{messageId}/content/preview":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-image-or-video-preview
      servers:
        - url: "https://api-data.line.me"
      tags:
        - messaging-api-blob
      operationId: getMessageContentPreview
      description: "Get a preview image of the image or video"
      parameters:
        - name: messageId
          in: path
          required: true
          description: "Message ID of image or video"
          schema:
            type: string
      responses:
        "200":
          description: "OK"
          content:
            "*/*":
              schema:
                type: string
                format: binary
                description: "blob response"

  "/v2/bot/message/{messageId}/content/transcoding":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#verify-video-or-audio-preparation-status
      servers:
        - url: "https://api-data.line.me"
      tags:
        - messaging-api-blob
      operationId: getMessageContentTranscodingByMessageId
      description: "Verify the preparation status of a video or audio for getting"
      parameters:
        - name: messageId
          in: path
          required: true
          description: "Message ID of video or audio"
          schema:
            type: string
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GetMessageContentTranscodingResponse"
              example:
                status: processing

  # Messaging
  "/v2/bot/message/reply":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#send-reply-message
      tags:
        - messaging-api
      operationId: replyMessage
      description: "Send reply message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ReplyMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ReplyMessageResponse"
        "400":
          description: "Bad request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "429":
          description: "Too Many Requests"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  "/v2/bot/message/push":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#send-push-message
      tags:
        - messaging-api
      operationId: pushMessage
      description: "Sends a message to a user, group chat, or multi-person chat at any time."
      parameters:
        - name: X-Line-Retry-Key
          in: header
          required: false
          schema:
            type: string
            format: uuid
          description: |+
            Retry key.
            Specifies the UUID in hexadecimal format (e.g., `123e4567-e89b-12d3-a456-426614174000`) generated by any method.
            The retry key isn't generated by LINE. Each developer must generate their own retry key.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PushMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/PushMessageResponse"
        "400":
          description: "Bad Request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "403":
          description: "Forbidden"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "409":
          description: "Conflict"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "429":
          description: "Too Many Requests"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  "/v2/bot/message/multicast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#send-multicast-message
      tags:
        - messaging-api
      operationId: multicast
      description: "An API that efficiently sends the same message to multiple user IDs. You can't send messages to group chats or multi-person chats."
      parameters:
        - name: X-Line-Retry-Key
          in: header
          required: false
          schema:
            type: string
            format: uuid
          description: |+
            Retry key.
            Specifies the UUID in hexadecimal format (e.g., `123e4567-e89b-12d3-a456-426614174000`) generated by any method.
            The retry key isn't generated by LINE. Each developer must generate their own retry key.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MulticastRequest"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/MulticastResponse"
        "400":
          description: "Bad Request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "403":
          description: "Forbidden"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "409":
          description: "Conflict"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "429":
          description: "Too Many Requests"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  "/v2/bot/message/narrowcast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#send-narrowcast-message
      tags:
        - messaging-api
      operationId: narrowcast
      description: "Send narrowcast message"
      parameters:
        - name: X-Line-Retry-Key
          in: header
          required: false
          schema:
            type: string
            format: uuid
          description: |+
            Retry key.
            Specifies the UUID in hexadecimal format (e.g., `123e4567-e89b-12d3-a456-426614174000`) generated by any method.
            The retry key isn't generated by LINE. Each developer must generate their own retry key.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/NarrowcastRequest"
        required: true
      responses:
        "202":
          description: "Accepted"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NarrowcastResponse"
        "400":
          description: "Bad Request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "403":
          description: "Forbidden"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "409":
          description: "Conflict"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "429":
          description: "Too Many Requests"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  "/v2/bot/message/progress/narrowcast":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-narrowcast-progress-status
      tags:
        - messaging-api
      operationId: getNarrowcastProgress
      description: "Gets the status of a narrowcast message."
      parameters:
        - name: requestId
          in: query
          required: true
          schema:
            type: string
          description: "The narrowcast message's request ID. Each Messaging API request has a request ID."
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NarrowcastProgressResponse"
              example:
                phase: waiting
                acceptedTime: 2020-12-03T10:15:30.121Z

  "/v2/bot/message/broadcast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#send-broadcast-message
      tags:
        - messaging-api
      operationId: broadcast
      description: "Sends a message to multiple users at any time."
      parameters:
        - name: X-Line-Retry-Key
          in: header
          required: false
          schema:
            type: string
            format: uuid
          description: |+
            Retry key.
            Specifies the UUID in hexadecimal format (e.g., `123e4567-e89b-12d3-a456-426614174000`) generated by any method.
            The retry key isn't generated by LINE. Each developer must generate their own retry key.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/BroadcastRequest"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/BroadcastResponse"
        "400":
          description: "Bad Request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "403":
          description: "Forbidden"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "409":
          description: "Conflict"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "429":
          description: "Too Many Requests"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  # Quota
  "/v2/bot/message/quota":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-quota
      tags:
        - messaging-api
      operationId: getMessageQuota
      description: "Gets the target limit for sending messages in the current month. The total number of the free messages and the additional messages is returned."
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/MessageQuotaResponse"
              example:
                "type": "limited"
                "value": 1000

  "/v2/bot/message/quota/consumption":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-consumption
      tags:
        - messaging-api
      operationId: getMessageQuotaConsumption
      description: "Gets the number of messages sent in the current month."
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/QuotaConsumptionResponse"
              example:
                "totalUsage": 500

  # Delivery
  "/v2/bot/message/delivery/reply":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-number-of-reply-messages
      tags:
        - messaging-api
      operationId: getNumberOfSentReplyMessages
      description: "Get number of sent reply messages"
      parameters:
        - name: date
          in: query
          required: true
          schema:
            type: string
          description: |+
            Date the messages were sent

            Format: `yyyyMMdd` (e.g. `20191231`)
            Timezone: UTC+9
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NumberOfMessagesResponse"
              example:
                "status": "ready"
                "success": 10000

  "/v2/bot/message/delivery/push":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-number-of-push-messages
      tags:
        - messaging-api
      operationId: getNumberOfSentPushMessages
      description: "Get number of sent push messages"
      parameters:
        - name: date
          in: query
          required: true
          schema:
            type: string
          description: |+
            Date the messages were sent

            Format: `yyyyMMdd` (e.g. `20191231`)
            Timezone: UTC+9
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NumberOfMessagesResponse"
              example:
                "status": "ready"
                "success": 10000

  "/v2/bot/message/delivery/multicast":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-number-of-multicast-messages
      tags:
        - messaging-api
      operationId: getNumberOfSentMulticastMessages
      description: "Get number of sent multicast messages"
      parameters:
        - name: date
          in: query
          required: true
          schema:
            type: string
          description: |+
            Date the messages were sent

            Format: `yyyyMMdd` (e.g. `20191231`)
            Timezone: UTC+9
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NumberOfMessagesResponse"
              example:
                status: ready
                success: 10000

  "/v2/bot/message/delivery/broadcast":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-number-of-broadcast-messages
      tags:
        - messaging-api
      operationId: getNumberOfSentBroadcastMessages
      description: "Get number of sent broadcast messages"
      parameters:
        - name: date
          in: query
          required: true
          schema:
            type: string
            format: "^[0-9]{8}$"
          description: |+
            Date the messages were sent

            Format: yyyyMMdd (e.g. 20191231)
            Timezone: UTC+9
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/NumberOfMessagesResponse"
              example:
                status: ready
                success: 10000

  # Message validation
  "/v2/bot/message/validate/reply":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-reply-message
      tags:
        - messaging-api
      operationId: validateReply
      description: "Validate message objects of a reply message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ValidateMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"

  "/v2/bot/message/validate/push":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-push-message
      tags:
        - messaging-api
      operationId: validatePush
      description: "Validate message objects of a push message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ValidateMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"

  "/v2/bot/message/validate/multicast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-multicast-message
      tags:
        - messaging-api
      operationId: validateMulticast
      description: "Validate message objects of a multicast message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ValidateMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"

  "/v2/bot/message/validate/narrowcast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-narrowcast-message
      tags:
        - messaging-api
      operationId: validateNarrowcast
      description: "Validate message objects of a narrowcast message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ValidateMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"

  "/v2/bot/message/validate/broadcast":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-broadcast-message
      tags:
        - messaging-api
      operationId: validateBroadcast
      description: "Validate message objects of a broadcast message"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ValidateMessageRequest"
        required: true
      responses:
        "200":
          description: "OK"

  # Aggregation Unit
  "/v2/bot/message/aggregation/info":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-number-of-units-used-this-month
      tags:
        - messaging-api
      operationId: getAggregationUnitUsage
      description: "Get number of units used this month"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GetAggregationUnitUsageResponse"
              example:
                numOfCustomAggregationUnits: 22

  "/v2/bot/message/aggregation/list":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-name-list-of-units-used-this-month
      tags:
        - messaging-api
      operationId: getAggregationUnitNameList
      description: "Get name list of units used this month"
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: string
          description: |+
            The maximum number of aggregation units you can get per request.
        - name: start
          in: query
          required: false
          schema:
            type: string
          description: |+
            Value of the continuation token found in the next property of the JSON object returned in the response.
            If you can't get all the aggregation units in one request, include this parameter to get the remaining array.
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GetAggregationUnitNameListResponse"
              example:
                customAggregationUnits:
                  - promotion_a
                  - promotion_b
                next: jxEWCEEP...

  # Users
  "/v2/bot/profile/{userId}":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-profile
      tags:
        - messaging-api
      operationId: getProfile
      description: "Get profile"
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
          description: "User ID"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/UserProfileResponse"
              example:
                displayName: LINE taro
                userId: U4af4980629...
                language: en
                pictureUrl: https://obs.line-apps.com/...
                statusMessage: Hello, LINE!

  "/v2/bot/followers/ids":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-follower-ids
      tags:
        - messaging-api
      operationId: getFollowers
      description: "Get a list of users who added your LINE Official Account as a friend"
      parameters:
        - name: start
          in: query
          required: false
          description: |+
            Value of the continuation token found in the next property of the JSON object returned in the response.
            Include this parameter to get the next array of user IDs.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: "The maximum number of user IDs to retrieve in a single request."
          schema:
            type: integer
            format: int32
            default: 300
            maximum: 1000
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GetFollowersResponse"
              example:
                userIds:
                  - U4af4980629...
                  - U0c229f96c4...
                  - U95afb1d4df...
                next: yANU9IA...

  # Bot
  "/v2/bot/info":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-bot-info
      tags:
        - messaging-api
      operationId: getBotInfo
      description: "Get bot info"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/BotInfoResponse"
              example:
                userId: Ub9952f8...
                basicId: "@216ru..."
                displayName: Example name
                pictureUrl: https://obs.line-apps.com/...
                chatMode: chat
                markAsReadMode: manual

  # Group
  "/v2/bot/group/{groupId}/member/{userId}":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-group-member-profile
      tags:
        - messaging-api
      operationId: getGroupMemberProfile
      description: "Get group chat member profile"
      parameters:
        - name: groupId
          in: path
          required: true
          schema:
            type: string
          description: "Group ID"
        - name: userId
          in: path
          required: true
          schema:
            type: string
          description: "User ID"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/GroupUserProfileResponse"
              example:
                "displayName": "LINE taro"
                "userId": "U4af4980629..."
                "pictureUrl": "https://obs.line-apps.com/..."

  "/v2/bot/room/{roomId}/member/{userId}":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-room-member-profile
      tags:
        - messaging-api
      operationId: getRoomMemberProfile
      description: "Get multi-person chat member profile"
      parameters:
        - name: roomId
          in: path
          required: true
          schema:
            type: string
          description: "Room ID"
        - name: userId
          in: path
          required: true
          schema:
            type: string
          description: "User ID"
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/RoomUserProfileResponse"
              example:
                displayName: LINE taro
                userId: U4af4980629...
                pictureUrl: https://obs.line-apps.com/...

  "/v2/bot/group/{groupId}/members/ids":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-group-member-user-ids
      tags:
        - messaging-api
      operationId: getGroupMembersIds
      description: "Get group chat member user IDs"
      parameters:
        - name: groupId
          in: path
          required: true
          schema:
            type: string
          description: "Group ID"
        - name: start
          in: query
          required: false
          schema:
            type: string
          description: |+
            Value of the continuation token found in the `next` property of the JSON object returned in the response.
            Include this parameter to get the next array of user IDs for the members of the group.
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/MembersIdsResponse"
              example:
                memberIds:
                  - U4af4980629...
                  - U0c229f96c4...
                  - U95afb1d4df...
                next: jxEWCEEP...

  "/v2/bot/room/{roomId}/members/ids":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-room-member-user-ids
      tags:
        - messaging-api
      operationId: getRoomMembersIds
      description: "Get multi-person chat member user IDs"
      parameters:
        - name: roomId
          in: path
          required: true
          schema:
            type: string
          description: "Room ID"
        - name: start
          in: query
          required: false
          schema:
            type: string
          description: |+
            Value of the continuation token found in the `next` property of the JSON object returned in the response.
            Include this parameter to get the next array of user IDs for the members of the group.
      responses:
        "200":
          description: "OK"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/MembersIdsResponse"
              example:
                memberIds:
                  - U4af4980629...
                  - U0c229f96c4...
                  - U95afb1d4df...
                next: jxEWCEEP...

  "/v2/bot/group/{groupId}/leave":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#leave-group
      tags:
        - messaging-api
      operationId: leaveGroup
      description: "Leave group chat"
      parameters:
        - name: groupId
          in: path
          required: true
          schema:
            type: string
          description: "Group ID"
      responses:
        "200":
          description: "OK"
        "400":
          description: "Bad Request"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"
        "404":
          description: "Not Found"
          content:
            "application/json":
              schema:
                "$ref": "#/components/schemas/ErrorResponse"

  "/v2/bot/room/{roomId}/leave":
    post:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#leave-room
      tags:
        - messaging-api
      operationId: leaveRoom
      description: "Leave multi-person chat"
      parameters:
        - name: roomId
          in: path
          required: true
          schema:
            type: string
          description: "Room ID"
      responses:
        "200":
          description: "OK"

  "/v2/bot/group/{groupId}/summary":
    get:
      externalDocs:
        url: https://developers.line.biz/en/reference/messaging-api/#get-group-summary
      tags:
        - messaging-api
      operationId: getGroupSummary
      description: "Get group chat summary"
      parameters:
        - name: groupId
          in: path
          required: true

# --- truncated at 32 KB (179 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/line/refs/heads/main/openapi/line-messaging-api-openapi.yml