> For the complete documentation index, see [llms.txt](https://tailieu.smax.bot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tailieu.smax.bot/api/json-api.md).

# JSON API

## JSON API

See [**here**](https://tailieu.smax.bot/2.-gioi-thieu-cac-element-card/_2.10-jsonapi)

The JSON API plugin enables you to integrate your backend into your chat bots on **Smax bot**.

It allows you to

* Generate dynamic content
* Get and set user attributes
* Redirect users to another block in the bot
* Create postbacks

You can use GET and POST requests - the max. timeout is always 10 seconds. There are four options to enter data that will be sent with your request:

1\. URL — This field supports user attributes, they will be URL-encoded with your request

![](/files/-LybcA_aLWSf_TSHmZhl)

2\. Full JSON profile (POST requests only) — This will send all the user attributes of the user to your backend

![](/files/-LybcihRKTg3Zbd1RWp0)

3\. JSON Body (POST requests only) — This is a customizable field and will be validated as JSON.[![](https://chatfuel.intercom-attachments-7.com/i/o/134722067/2a574e7d0099d8b664f4e3fe/PM19ZEIe1JcF2EvLRloHceSsUx_jD0GB9HUtA5RnxhfbHP0mCF8_Lv8VeE7sh9aQ63T9ZNFlzXPWL5UrjFwxI1YhT4jh1KQkhO_Nc3qV5FGlDXRYX5OaiRo9dm9mWHhPuJN7QwMh)](https://chatfuel.intercom-attachments-7.com/i/o/134722067/2a574e7d0099d8b664f4e3fe/PM19ZEIe1JcF2EvLRloHceSsUx_jD0GB9HUtA5RnxhfbHP0mCF8_Lv8VeE7sh9aQ63T9ZNFlzXPWL5UrjFwxI1YhT4jh1KQkhO_Nc3qV5FGlDXRYX5OaiRo9dm9mWHhPuJN7QwMh)

4\. URL Encoded (POST requests only) — The data will be encoded before sending your request.[![](https://chatfuel.intercom-attachments-7.com/i/o/134722070/2c67adf598e36f85233037a3/rx7L76uuB3w20AdmaOcM8I_5v36VEGaCpAGdlqsN8vPdhvZxq7IPY70AlxJAvv8xeE6XVH0Ny-_-bedeHZTsDzTASj6TiHH_s15MUt60SHMXOH_9fG2f-hw8OsxiOCLwzQALqHgC)](https://chatfuel.intercom-attachments-7.com/i/o/134722070/2c67adf598e36f85233037a3/rx7L76uuB3w20AdmaOcM8I_5v36VEGaCpAGdlqsN8vPdhvZxq7IPY70AlxJAvv8xeE6XVH0Ny-_-bedeHZTsDzTASj6TiHH_s15MUt60SHMXOH_9fG2f-hw8OsxiOCLwzQALqHgC)

In your responses, you can

* combine several messages in one answer by sending several dictionaries in the messages array.&#x20;
* use any content type header.
* send an empty response to not show the user any dynamic content.

### Response Reference <a href="#response-reference" id="response-reference"></a>

**Sending text**

Use this response to send text messages.

```
{
 "messages": [
   {"text": "Welcome to the Smax Rockets!"},
   {"text": "What are you up to?"}
 ]
}
```

**Sending images**

Use this response to send image files. Messenger supports JPG, PNG and GIF images. If you are having issues with GIF rendering, please try to reduce the file size.

```
{
  "messages": [
    {
      "attachment": {
        "type": "image",
        "payload": {
          "url": "https://rockets.chatfuel.com/assets/welcome.png"
        }
      }
    }
  ]
}
```

You can also directly use Facebook Posts with media instead of uploading it manually:

```
{
  "messages": [
    {
      "attachment": {
        "type": "template",
        "payload": {
          "template_type": "media",
          "elements": [
            {
              "media_type": "image",
              "url": "https://www.facebook.com/chatfuelrockets/photos/1087668107975064",
              "buttons": [
                {
                  "title": "Go to Chatfuel!",
                  "type": "web_url",
                  "url": "https://chatfuel.com/"
                }
              ]
            }
          ]
        }
      },
      "quick_replies": [
        {
          "title": "That's cool!",
          "payload": "string"
        }
      ]
    }
  ]
}
```

**Sending video**

Use this response to send video files. Messenger supports MP4 videos, which are up to 25MB in size.&#x20;

```
{
  "messages": [
    {
      "attachment": {
        "type": "video",
        "payload": {
          "url": "https://rockets.chatfuel.com/assets/video.mp4"
        }
      }
    }
  ]
}
```

You can also directly use Facebook Posts with media instead of uploading it manually:

```
{
  "messages": [
    {
      "attachment": {
        "type": "template",
        "payload": {
          "template_type": "media",
          "elements": [
            {
              "media_type": "video",
              "url": "https://www.facebook.com/chatfuelrockets/videos/252894858962779/",
              "buttons": [
                {
                  "title": "Go to Chatfuel!",
                  "type": "web_url",
                  "url": "https://chatfuel.com/"
                }
              ]
            }
          ]
        }
      },
      "quick_replies": [
        {
          "title": "That's cool!",
          "payload": "string"
        }
      ]
    }
  ]
}
```

**Sending audio**

Use this response to send audio files. Messenger supports MP3, OGG, WAV audios, which are up to 25MB in size.

```
{
  "messages": [
    {
      "attachment": {
        "type": "audio",
        "payload": {
          "url": "https://rockets.chatfuel.com/assets/hello.mp3"
        }
      }
    }
  ]
}
```

**Sending files**

Use this response to send any other files, which are no larger than 25 MB.

```
{
  "messages": [
    {
      "attachment": {
        "type": "file",
        "payload": {
          "url": "https://rockets.chatfuel.com/assets/ticket.pdf"
        }
      }
    }
  ]
}
```

**Sending galleries**

Use this response to send a horizontal scrollable gallery. Each item is composed of an image attachment, short description and buttons to request input from the user.\
Note: messenger\_extensions should only be added if you are using [Messenger Extensions](https://docs.chatfuel.com/configure/chat-extensions).

```
{
 "messages": [
    {
      "attachment":{
        "type":"template",
        "payload":{
          "template_type":"generic",
          "image_aspect_ratio": "square",
          "elements":[
            {
              "title":"Chatfuel Rockets Jersey",
              "image_url":"https://rockets.chatfuel.com/assets/shirt.jpg",
              "subtitle":"Size: M",
              "buttons":[
                {
                  "type":"web_url",
                  "url":"https://rockets.chatfuel.com/store",
                  "title":"View Item"
                }
              ]
            },
            {
              "title":"Chatfuel Rockets Jersey",
              "image_url":"https://rockets.chatfuel.com/assets/shirt.jpg",
              "subtitle":"Size: L",
              "default_action": {
                "type": "web_url",
                "url": "https://rockets.chatfuel.com/store",
                "messenger_extensions": true
              },
              "buttons":[
                {
                  "type":"web_url",
                  "url":"https://rockets.chatfuel.com/store",
                  "title":"View Item"
                }
              ]
            }
          ]
        }
      }
    }
  ]
}
```

**Sending receipts**

Use this response to send an order confirmation. It may include an order summary, payment details, and shipping information.

```
{
  "messages": [
    {
      "attachment": {
        "type": "template",
        "payload": { 
          "template_type": "receipt",
          "recipient_name": "Mark Zuckerberg",
          "order_number": "12345678901",
          "currency": "USD",
          "payment_method": "Visa 2345",
          "order_url": "https://rockets.chatfuel.com/store?order_id=12345678901",
          "timestamp": "1428444666",
          "address": {
            "street_1": "1 Hacker Way",
            "street_2": "",
            "city": "Menlo Park",
            "postal_code": "94025",
            "state": "CA",
            "country": "US"
          },
          "summary": {
            "subtotal": 105,
            "shipping_cost": 4.95,
            "total_tax": 9,
            "total_cost": 118.95
          },
          "adjustments": [
            {
              "name": "CF Rockets Superstar",
              "amount": -25
            }
          ],
          "elements": [
            {
              "title": "Chatfuel Rockets Jersey",
              "subtitle": "Size: M",
              "quantity": 1,
              "price": 65,
              "currency": "USD",
              "image_url":   "http://rockets.chatfuel.com/assets/shirt.jpg"
            },
            {
              "title": "Chatfuel Rockets Jersey",
              "subtitle": "Size: L",
              "quantity": 1,
              "price": 65,
              "currency": "USD",
              "image_url":   "http://rockets.chatfuel.com/assets/shirt.jpg"
            }
          ]
        }
      }
    }
  ]
}
```

**Buttons**

Use this JSON to add buttons to your responses. You can set buttons to link to a block in the dashboard, open a website, or send another request to your backend. Buttons are limited to 3 items per message.

```
{
  "messages": [
    {
      "attachment": {
        "type": "template",
        "payload": {
          "template_type": "button",
          "text": "Hello!",
          "buttons": [
            {
              "type": "show_block",
              "block_names": ["name of block"],
              "title": "Show Block"
            },
            {
              "type": "web_url",
              "url": "https://rockets.chatfuel.com",
              "title": "Visit Website"
            },
            {
              "url": "https://rockets.chatfuel.com/api/welcome",
              "type":"json_url",
              "title":"Postback"
            }
          ]
        }
      }
    }
  ]
}
```

You can also use the Call button, this button dials a phone number when tapped.

```
{
  "messages":[
    {
      "attachment":{
        "type":"template",
        "payload":{
          "template_type":"generic",
          "elements":[
            {
              "title":"Get in touch",
              "image_url":"https://rockets.chatfuel.com/assets/contact.jpg",
              "subtitle":"Feel free to hit us up!",
              "buttons":[
                {
                  "type":"phone_number",
                  "phone_number":"+19268881413",
                  "title":"Call"
                }
              ]
            }
          ]
        }
      }
    }
  ]
}
```

**Quick replies**

Use this JSON to add quick replies to your responses. Quick replies are limited to 11 items per message.

```
{
  "messages": [
    {
      "text":  "Did you enjoy the last game of the CF Rockets?",
      "quick_replies": [
        {
          "title":"Loved it!",
          "block_names": ["Block 1", "Block 2"]
        },
        {
          "title":"Not really...",
          "url": "https://rockets.chatfuel.com/api/sad-match",
          "type":"json_url"
        },
        {
          "title": "More...",
          "payload": "string"
        }
      ]
    }
  ]
}
```

**Setting user attributes**

You can set user attributes by having the field set\_attributes as bellow&#x20;

```
{
  "set_attributes":
    {
      "some attribute": "some value",
      "another attribute": "another value"
    },
  "messages":[
    . . .
  ]
}
```

**Redirect to blocks**

You can redirect a user to a block or to a sequence of blocks — no user action is needed.

```
{
  "redirect_to_blocks": ["Welcome Message", "Default Answer"]
}
```

\
Do keep in mind that for other functionalities or compiling functions to work altogether is out of Chatfuel's scope of support and we suggest to get help from an expert.
