Social — entry 017 of 39
Line
LINE's developer platform covers OAuth 2.0-based LINE Login for social sign-in alongside the Messaging API, which uses per-channel access tokens (rather than user OAuth) to let official accounts send and receive text, stickers, images, and Flex Messages through api.line.me. The Messaging API is free to start, with paid plans unlocked once an account's monthly free message allowance is exceeded.
GreatAPIs Score
Auth quickstart
- Register an app / run the OAuth flow to obtain a bearer token.
- Send it as an Authorization header
Authorization: Bearer <token>
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
messaging-api68
POST/bot/pnp/push
| Name | In | Required | Type |
|---|---|---|---|
X-Line-Delivery-Tag | header | no | string |
application/json — PnpMessagesRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
422 | Unprocessable Entity | ErrorResponse |
GET/v2/bot/channel/webhook/endpoint
| Status | Description | Schema |
|---|---|---|
200 | OK | GetWebhookEndpointResponse |
PUT/v2/bot/channel/webhook/endpoint
application/json — SetWebhookEndpointRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/channel/webhook/test
application/json — TestWebhookEndpointRequest
| Status | Description | Schema |
|---|---|---|
200 | OK | TestWebhookEndpointResponse |
POST/v2/bot/chat/loading/start
application/json — ShowLoadingAnimationRequest (required)
| Status | Description | Schema |
|---|---|---|
202 | Accepted | ShowLoadingAnimationResponse |
400 | An invalid chat ID is specified, or the loadingSeconds value is invalid. | ErrorResponse |
POST/v2/bot/chat/markAsRead
application/json — MarkMessagesAsReadByTokenRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | An invalid markAsReadToken is specified. Tokens must be used by the bot that received them via Webhook. | ErrorResponse |
GET/v2/bot/coupon
| Name | In | Required | Type |
|---|---|---|---|
status | query | no | array |
start | query | no | string |
limit | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | OK | MessagingApiPagerCouponListResponse |
400 | Bad Request | ErrorResponse |
POST/v2/bot/coupon
application/json — CouponCreateRequest
| Status | Description | Schema |
|---|---|---|
200 | OK | CouponCreateResponse |
400 | Bad Request | ErrorResponse |
GET/v2/bot/coupon/{couponId}
| Name | In | Required | Type |
|---|---|---|---|
couponId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | CouponResponse |
400 | Bad Request | ErrorResponse |
404 | Not Found | ErrorResponse |
PUT/v2/bot/coupon/{couponId}/close
| Name | In | Required | Type |
|---|---|---|---|
couponId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | Bad Request | ErrorResponse |
404 | Not Found | ErrorResponse |
410 | Gone | ErrorResponse |
GET/v2/bot/followers/ids
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
limit | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | OK | GetFollowersResponse |
POST/v2/bot/group/{groupId}/leave
| Name | In | Required | Type |
|---|---|---|---|
groupId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | Bad Request | ErrorResponse |
404 | Not Found | ErrorResponse |
GET/v2/bot/group/{groupId}/member/{userId}
| Name | In | Required | Type |
|---|---|---|---|
groupId | path | yes | string |
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GroupUserProfileResponse |
GET/v2/bot/group/{groupId}/members/count
| Name | In | Required | Type |
|---|---|---|---|
groupId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GroupMemberCountResponse |
GET/v2/bot/group/{groupId}/members/ids
| Name | In | Required | Type |
|---|---|---|---|
groupId | path | yes | string |
start | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | MembersIdsResponse |
GET/v2/bot/group/{groupId}/summary
| Name | In | Required | Type |
|---|---|---|---|
groupId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GroupSummaryResponse |
GET/v2/bot/info
| Status | Description | Schema |
|---|---|---|
200 | OK | BotInfoResponse |
GET/v2/bot/membership/list
| Status | Description | Schema |
|---|---|---|
200 | OK | MembershipListResponse |
404 | Unable to get information about the memberships. | ErrorResponse |
GET/v2/bot/membership/subscription/{userId}
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GetMembershipSubscriptionResponse |
400 | An invalid user ID is specified. | ErrorResponse |
404 | Unable to get information about the membership to which the user subscribes. | ErrorResponse |
GET/v2/bot/membership/{membershipId}/users/ids
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
limit | query | no | integer |
membershipId | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | OK | GetJoinedMembershipUsersResponse |
400 | `start` is incorrect or expired, or `limit` is under 1 or over 1000. | ErrorResponse |
404 | Membership ID is not owned by the bot or does not exist. | ErrorResponse |
GET/v2/bot/message/aggregation/info
| Status | Description | Schema |
|---|---|---|
200 | OK | GetAggregationUnitUsageResponse |
GET/v2/bot/message/aggregation/list
| Name | In | Required | Type |
|---|---|---|---|
limit | query | no | string |
start | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GetAggregationUnitNameListResponse |
POST/v2/bot/message/broadcast
| Name | In | Required | Type |
|---|---|---|---|
X-Line-Retry-Key | header | no | string |
application/json — BroadcastRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | BroadcastResponse |
400 | Bad Request | ErrorResponse |
403 | Forbidden | ErrorResponse |
409 | Conflict | ErrorResponse |
429 | Too Many Requests | ErrorResponse |
GET/v2/bot/message/delivery/broadcast
| Name | In | Required | Type |
|---|---|---|---|
date | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NumberOfMessagesResponse |
GET/v2/bot/message/delivery/multicast
| Name | In | Required | Type |
|---|---|---|---|
date | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NumberOfMessagesResponse |
GET/v2/bot/message/delivery/pnp
| Name | In | Required | Type |
|---|---|---|---|
date | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NumberOfMessagesResponse |
GET/v2/bot/message/delivery/push
| Name | In | Required | Type |
|---|---|---|---|
date | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NumberOfMessagesResponse |
GET/v2/bot/message/delivery/reply
| Name | In | Required | Type |
|---|---|---|---|
date | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NumberOfMessagesResponse |
POST/v2/bot/message/markAsRead
application/json — MarkMessagesAsReadRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/message/multicast
| Name | In | Required | Type |
|---|---|---|---|
X-Line-Retry-Key | header | no | string |
application/json — MulticastRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | MulticastResponse |
400 | Bad Request | ErrorResponse |
403 | Forbidden | ErrorResponse |
409 | Conflict | ErrorResponse |
429 | Too Many Requests | ErrorResponse |
POST/v2/bot/message/narrowcast
| Name | In | Required | Type |
|---|---|---|---|
X-Line-Retry-Key | header | no | string |
application/json — NarrowcastRequest (required)
| Status | Description | Schema |
|---|---|---|
202 | Accepted | NarrowcastResponse |
400 | Bad Request | ErrorResponse |
403 | Forbidden | ErrorResponse |
409 | Conflict | ErrorResponse |
429 | Too Many Requests | ErrorResponse |
GET/v2/bot/message/progress/narrowcast
| Name | In | Required | Type |
|---|---|---|---|
requestId | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | NarrowcastProgressResponse |
POST/v2/bot/message/push
| Name | In | Required | Type |
|---|---|---|---|
X-Line-Retry-Key | header | no | string |
application/json — PushMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | PushMessageResponse |
400 | Bad Request | ErrorResponse |
403 | Forbidden | ErrorResponse |
409 | Conflict | ErrorResponse |
429 | Too Many Requests | ErrorResponse |
GET/v2/bot/message/quota
| Status | Description | Schema |
|---|---|---|
200 | OK | MessageQuotaResponse |
GET/v2/bot/message/quota/consumption
| Status | Description | Schema |
|---|---|---|
200 | OK | QuotaConsumptionResponse |
POST/v2/bot/message/reply
application/json — ReplyMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | ReplyMessageResponse |
400 | Bad request | ErrorResponse |
429 | Too Many Requests | ErrorResponse |
POST/v2/bot/message/validate/broadcast
application/json — ValidateMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/message/validate/multicast
application/json — ValidateMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/message/validate/narrowcast
application/json — ValidateMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/message/validate/push
application/json — ValidateMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/message/validate/reply
application/json — ValidateMessageRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/v2/bot/profile/{userId}
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | UserProfileResponse |
POST/v2/bot/richmenu
application/json — RichMenuRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuIdResponse |
POST/v2/bot/richmenu/alias
application/json — CreateRichMenuAliasRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | Bad Request | ErrorResponse |
GET/v2/bot/richmenu/alias/list
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuAliasListResponse |
GET/v2/bot/richmenu/alias/{richMenuAliasId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuAliasId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuAliasResponse |
POST/v2/bot/richmenu/alias/{richMenuAliasId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuAliasId | path | yes | string |
application/json — UpdateRichMenuAliasRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | Bad Request | ErrorResponse |
DELETE/v2/bot/richmenu/alias/{richMenuAliasId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuAliasId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
400 | Bad Request | ErrorResponse |
POST/v2/bot/richmenu/batch
application/json — RichMenuBatchRequest (required)
| Status | Description | Schema |
|---|---|---|
202 | Accepted | — |
POST/v2/bot/richmenu/bulk/link
application/json — RichMenuBulkLinkRequest (required)
| Status | Description | Schema |
|---|---|---|
202 | Accepted | — |
POST/v2/bot/richmenu/bulk/unlink
application/json — RichMenuBulkUnlinkRequest (required)
| Status | Description | Schema |
|---|---|---|
202 | Accepted | — |
GET/v2/bot/richmenu/list
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuListResponse |
GET/v2/bot/richmenu/progress/batch
| Name | In | Required | Type |
|---|---|---|---|
requestId | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuBatchProgressResponse |
POST/v2/bot/richmenu/validate
application/json — RichMenuRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/richmenu/validate/batch
application/json — RichMenuBatchRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/v2/bot/richmenu/{richMenuId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuResponse |
DELETE/v2/bot/richmenu/{richMenuId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/room/{roomId}/leave
| Name | In | Required | Type |
|---|---|---|---|
roomId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/v2/bot/room/{roomId}/member/{userId}
| Name | In | Required | Type |
|---|---|---|---|
roomId | path | yes | string |
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RoomUserProfileResponse |
GET/v2/bot/room/{roomId}/members/count
| Name | In | Required | Type |
|---|---|---|---|
roomId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RoomMemberCountResponse |
GET/v2/bot/room/{roomId}/members/ids
| Name | In | Required | Type |
|---|---|---|---|
roomId | path | yes | string |
start | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | MembersIdsResponse |
GET/v2/bot/user/all/richmenu
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuIdResponse |
DELETE/v2/bot/user/all/richmenu
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/user/all/richmenu/{richMenuId}
| Name | In | Required | Type |
|---|---|---|---|
richMenuId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/user/{userId}/linkToken
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | IssueLinkTokenResponse |
GET/v2/bot/user/{userId}/richmenu
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | RichMenuIdResponse |
DELETE/v2/bot/user/{userId}/richmenu
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/user/{userId}/richmenu/{richMenuId}
| Name | In | Required | Type |
|---|---|---|---|
userId | path | yes | string |
richMenuId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
messaging-api-blob5
GET/v2/bot/message/{messageId}/content
| Name | In | Required | Type |
|---|---|---|---|
messageId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/v2/bot/message/{messageId}/content/preview
| Name | In | Required | Type |
|---|---|---|---|
messageId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/v2/bot/message/{messageId}/content/transcoding
| Name | In | Required | Type |
|---|---|---|---|
messageId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | GetMessageContentTranscodingResponse |
GET/v2/bot/richmenu/{richMenuId}/content
| Name | In | Required | Type |
|---|---|---|---|
richMenuId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/v2/bot/richmenu/{richMenuId}/content
| Name | In | Required | Type |
|---|---|---|---|
richMenuId | path | yes | string |
*/* (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
Try it
Developer reference
https://api.line.meLINE tiers Messaging API limits per endpoint per channel (developers.line.biz/en/reference/messaging-api/#rate-limits): push, reply, and profile-lookup endpoints allow 2,000 requests/second, multicast messages are capped at 200 requests/second, and broadcast messages are limited to 60 requests/hour; exceeding a tier returns HTTP 429.
- POST/v2/bot/message/push
- POST/v2/bot/message/reply
- POST/v2/bot/message/broadcast
- POST/v2/bot/message/multicast
- GET/v2/bot/profile/{userId}