# JSON API for LINE

You can make many kinds of HTTP requests for your bot to analyze your backend and send responses.

To be specific, you can run:

1. Create dynamic messages
2. Execute “postbacks”
3. Obtain and set up user arguments (coming soon)
4. Redirecting to other messages (coming soon)

### **Response reference**

We will parse the JSON response and send a message to the customer based on the response. For more information, please visit <https://developers.line.biz/en/reference/messaging-api/>

### Sending Text&#x20;

The response below will send text to a customer.

```
{
  "messages": [
    {
      "type": "text",
      "text": "Welcome to the smartest bot building tool ever —— YOCTOL.AI"
    },
    {
      "type": "text",
      "text": "what kind of bot do you want  to build?"
    }
  ]
}
```

### Sending Image

Image formats of JPG are supported as messages from JSON requests.

```
{
  "messages": [
    {
      "type": "image",
      "originalContentUrl": "https://example.com/original.jpg",
      "previewImageUrl": "https://example.com/preview.jpg"
    }
  ]
}
```

### Sending Video&#x20;

The following response is an example of using a video as message. Currently, LINE only supports MP4 files with size less than 10MB and time less than 1 minute.

```
{
  "messages": [
    {
      "type": "video",
      "originalContentUrl": "https://example.com/original.mp4",
      "previewImageUrl": "https://example.com/preview.jpg"
    }
  ]
}
```

### Sending Voice Messages

The following response will send a voice message file. Currently, LINE only supports memo files with size less than 10MB, less than 1 minute and extensions of M4A.

```
{
  "messages": [
    {
      "attachment": {
        "type": "audio",
        "payload": {
          "url": "https://ccrma.stanford.edu/~jos/mp3/bachfugue.mp3"
        }
      }
    }
  ]

```

### Sending Sticker

The following response will send a sticker.

```
{
  "messages": [
    {
      "type": "sticker",
      "packageId": "1",
      "stickerId": "1"
    }
  ]
}
```

### Sending Buttons

The following response will send a button template. You can manually set up the actions for each button, for example prompting to another website. For more usages of buttons, visit <https://developers.line.biz/en/reference/messaging-api/#buttons>

```
{
  "messages": [
    {
      "type": "template",
      "altText": "This is a buttons template",
      "template": {
        "type": "buttons",
        "thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
        "imageAspectRatio": "rectangle",
        "imageSize": "cover",
        "imageBackgroundColor": "#FFFFFF",
        "title": "Menu",
        "text": "Please select",
        "defaultAction": {
          "type": "uri",
          "label": "View detail",
          "uri": "http://example.com/page/123"
        },
        "actions": [
          {
            "type": "postback",
            "label": "Buy",
            "data": "action=buy&itemid=123"
          },
          {
            "type": "postback",
            "label": "Add to cart",
            "data": "action=add&itemid=123"
          },
          {
            "type": "uri",
            "label": "View detail",
            "uri": "http://example.com/page/123"
          }
        ]
      }
    }
  ]
}
```

You can also send special buttons for actions, such as open camera.

```
{
  "messages": [
    {
      "type": "template",
      "altText": "This is a buttons template",
      "template": {
        "type": "buttons",
        "text": "Please select",
        "actions": [
          {
            "type": "camera",
            "label": "Camera"
          },
          {
            "type": "cameraRoll",
            "label": "Camera roll"
          }
        ]
      }
    }
  ]
}
```

### Sending Quick Reply

The following response provides text with quick reply buttons.

```
{
  "messages": [
    {
      "type": "text",
      "text": "Did you enjoy the last game of the CF Rockets?",
      "quickReply": {
        "items": [
          {
            "type": "action",
            "action": {
              "type": "cameraRoll",
              "label": "Send photo"
            }
          },
          {
            "type": "action",
            "action": {
              "type": "camera",
              "label": "Open camera"
            }
          }
        ]
      }
    }
  ]
}
```

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-en.yoctol.ai/advanced-settings/json-api-for-line.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
