SuperAPI AI Directory

line

Office & productivity

View repository

Updated 10-16 09:47

About this skill

Troubleshooting

If requests fail, run zero doctor check-connector --env-name LINE_TOKEN or zero doctor check-connector --url https://api.line.me/v2/bot/info --method GET

How to Use

All examples below assume you have LINE_TOKEN set. Authentication uses Bearer token in the Authorization header.

Base URL

  • https://api.line.me

1. Get Bot Info

Retrieve information about the bot associated with the channel access token.

curl -s "https://api.line.me/v2/bot/info" --header "Authorization: Bearer $LINE_TOKEN" | jq .

2. Get User Profile

Retrieve a user's display name, profile image, and status message. Replace USER_ID with the actual user ID.

curl -s "https://api.line.me/v2/bot/profile/USER_ID" --header "Authorization: Bearer $LINE_TOKEN" | jq .

3. Get Follower IDs

Retrieve a list of user IDs that have added the bot as a friend. Supports pagination with start parameter.

curl -s "https://api.line.me/v2/bot/followers/ids?limit=100" --header "Authorization: Bearer $LINE_TOKEN" | jq .

For pagination, use the next token from the response:

curl -s "https://api.line.me/v2/bot/followers/ids?limit=100&start=CONTINUATION_TOKEN" --header "Authorization: Bearer $LINE_TOKEN" | jq .

4. Send Push Message

Send a message to a specific user. Replace USER_ID with the target user ID.

Write to /tmp/line_request.json:

{
  "to": "USER_ID",
  "messages": [
    {
      "type": "text",
      "text": "Hello from the LINE bot!"
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/push" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

5. Send Reply Message

Reply to a user event using a reply token received from a webhook event. Reply tokens expire after a short time.

Write to /tmp/line_request.json:

{
  "replyToken": "REPLY_TOKEN",
  "messages": [
    {
      "type": "text",
      "text": "Thanks for your message!"
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/reply" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

6. Send Multicast Message

Send the same message to multiple users at once (up to 500 user IDs).

Write to /tmp/line_request.json:

{
  "to": ["USER_ID_1", "USER_ID_2", "USER_ID_3"],
  "messages": [
    {
      "type": "text",
      "text": "This is a multicast message!"
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/multicast" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

7. Send Broadcast Message

Send a message to all users who have added the bot as a friend.

Write to /tmp/line_request.json:

{
  "messages": [
    {
      "type": "text",
      "text": "This broadcast goes to all followers!"
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/broadcast" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

8. Check Message Quota

Get the monthly message quota for the LINE Official Account.

curl -s "https://api.line.me/v2/bot/message/quota" --header "Authorization: Bearer $LINE_TOKEN" | jq .

Check how many messages have been sent this month:

curl -s "https://api.line.me/v2/bot/message/quota/consumption" --header "Authorization: Bearer $LINE_TOKEN" | jq .

9. Send Image Message

Send an image to a user.

Write to /tmp/line_request.json:

{
  "to": "USER_ID",
  "messages": [
    {
      "type": "image",
      "originalContentUrl": "https://example.com/image.jpg",
      "previewImageUrl": "https://example.com/image_preview.jpg"
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/push" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

10. Send Template Message (Buttons)

Send a button template message with actions.

Write to /tmp/line_request.json:

{
  "to": "USER_ID",
  "messages": [
    {
      "type": "template",
      "altText": "Button template",
      "template": {
        "type": "buttons",
        "title": "Menu",
        "text": "Please select an option",
        "actions": [
          {
            "type": "message",
            "label": "Option 1",
            "text": "option1"
          },
          {
            "type": "uri",
            "label": "Visit Website",
            "uri": "https://example.com"
          }
        ]
      }
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/message/push" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

11. Get Webhook Endpoint

Retrieve the current webhook URL configuration.

curl -s "https://api.line.me/v2/bot/channel/webhook/endpoint" --header "Authorization: Bearer $LINE_TOKEN" | jq .

12. Set Webhook Endpoint

Configure the webhook URL where LINE sends events.

curl -s -X PUT "https://api.line.me/v2/bot/channel/webhook/endpoint" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d '{"endpoint":"https://example.com/webhook"}' | jq .

13. Test Webhook

Test the webhook endpoint connectivity.

curl -s -X POST "https://api.line.me/v2/bot/channel/webhook/test" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d '{"endpoint":"https://example.com/webhook"}' | jq .

14. List Rich Menus

Get all rich menus created for the bot.

curl -s "https://api.line.me/v2/bot/richmenu/list" --header "Authorization: Bearer $LINE_TOKEN" | jq '.richmenus[] | {richMenuId, name, size}'

15. Create Rich Menu

Create a new rich menu.

Write to /tmp/line_request.json:

{
  "size": {
    "width": 2500,
    "height": 1686
  },
  "selected": false,
  "name": "Main Menu",
  "chatBarText": "Menu",
  "areas": [
    {
      "bounds": {
        "x": 0,
        "y": 0,
        "width": 1250,
        "height": 1686
      },
      "action": {
        "type": "message",
        "text": "Left button tapped"
      }
    },
    {
      "bounds": {
        "x": 1250,
        "y": 0,
        "width": 1250,
        "height": 1686
      },
      "action": {
        "type": "message",
        "text": "Right button tapped"
      }
    }
  ]
}

Then run:

curl -s -X POST "https://api.line.me/v2/bot/richmenu" --header "Content-Type: application/json" --header "Authorization: Bearer $LINE_TOKEN" -d @/tmp/line_request.json | jq .

16. Delete Rich Menu

Delete a rich menu by ID.

curl -s -X DELETE "https://api.line.me/v2/bot/richmenu/RICH_MENU_ID" --header "Authorization: Bearer $LINE_TOKEN" | jq .

17. Get Message Delivery Statistics

Get the number of messages delivered on a specific date (format: yyyyMMdd).

curl -s "https://api.line.me/v2/bot/insight/message/delivery?date=20260301" --header "Authorization: Bearer $LINE_TOKEN" | jq .

18. Get Follower Demographics

Retrieve demographic data about followers (gender, age, area distribution).

curl -s "https://api.line.me/v2/bot/insight/demographic" --header "Authorization: Bearer $LINE_TOKEN" | jq .

19. Get Group Summary

Retrieve information about a group chat the bot is a member of.

curl -s "https://api.line.me/v2/bot/group/GROUP_ID/summary" --header "Authorization: Bearer $LINE_TOKEN" | jq .

20. Get Group Member Profile

Retrieve the profile of a specific member in a group chat.

curl -s "https://api.line.me/v2/bot/group/GROUP_ID/member/USER_ID" --header "Authorization: Bearer $LINE_TOKEN" | jq .

Message Types

LINE supports multiple message types in the messages array:

Type Description
text Plain text message
image Image with original and preview URLs
video Video with original and preview URLs
audio Audio file with duration
location Location with title, address, and coordinates
sticker LINE sticker with package and sticker IDs
template Interactive template (buttons, confirm, carousel)
flex Flexible layout message using Flex Message JSON

Guidelines

  1. Message limits: Push messages count toward your monthly quota. Free plans have limited push messages. Reply messages are free
  2. Reply tokens: Reply tokens from webhook events expire quickly. Process and reply promptly
  3. Multicast limit: Multicast supports up to 500 user IDs per request
  4. Rich menu images: After creating a rich menu, upload an image separately using the content upload endpoint
  5. User IDs: User IDs are channel-specific. The same user has different IDs across different channels
  6. Message objects: Each request can contain up to 5 message objects in the messages array
  7. HTTPS required: All image, video, and audio URLs must use HTTPS
  8. Webhook verification: LINE sends a signature in the x-line-signature header for webhook verification using HMAC-SHA256