# Content Types Overview

## Content template support on API vs. Console

All content template types appear in the Content Templates list. If a content template type is supported only in the API, the Console displays the following pop-up when opened in the console.

| Content type            | Console | API |
| ----------------------- | ------- | --- |
| twilio/text             | Yes     | Yes |
| twilio/media            | Yes     | Yes |
| twilio/location         | No      | Yes |
| twilio/list-picker      | Yes     | Yes |
| twilio/call-to-action   | Yes     | Yes |
| twilio/quick-reply      | Yes     | Yes |
| twilio/card             | Yes     | Yes |
| twilio/carousel         | Yes     | Yes |
| twilio/catalog          | Yes     | Yes |
| twilio/pay              | No      | Yes |
| twilio/flows            | No      | Yes |
| whatsapp/authentication | Yes     | Yes |
| whatsapp/card           | Yes     | Yes |

## Channel support and priority order

Twilio supports the content types shown in the following table. This table lists the content types in order of content complexity, ranging from the least complex content (`twilio/text`) to the most content (`whatsapp/authentication`). When a message handles multiple content types, Twilio sends the most complex translation that the chosen channel supports.

| Content type            | SMS | MMS | RCS | [WhatsApp](https://developers.facebook.com/docs/whatsapp) | [Messenger](https://developers.facebook.com/docs/messenger-platform/send-messages) |
| ----------------------- | --- | --- | --- | --------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| twilio/text             | Yes |     | Yes | Yes                                                       | Yes                                                                                |
| twilio/media            |     | Yes | Yes | Yes                                                       | Yes                                                                                |
| twilio/location         |     |     |     | Yes                                                       |                                                                                    |
| twilio/quick-replies    |     |     |     | Yes                                                       | Yes                                                                                |
| twilio/call-to-action   |     |     |     | Yes                                                       | Yes                                                                                |
| twilio/list-picker      |     |     |     | Yes                                                       |                                                                                    |
| twilio/card             |     |     | Yes | Yes                                                       | Yes                                                                                |
| twilio/carousel         |     |     | Yes | Yes                                                       | No                                                                                 |
| twilio/catalog          |     |     |     | Yes                                                       | No                                                                                 |
| twilio/pay              |     |     |     | Yes                                                       |                                                                                    |
| twilio/flows            |     |     |     | Yes                                                       |                                                                                    |
| whatsapp/card           |     |     |     | Yes                                                       |                                                                                    |
| whatsapp/authentication |     |     |     | Yes                                                       |                                                                                    |

## Channel media type support

Twilio supports the following [media types](/docs/messaging/guides/accepted-mime-types).

| Content type | SMS | MMS | RCS | [WhatsApp](https://developers.facebook.com/docs/whatsapp) | [Messenger](https://developers.facebook.com/docs/messenger-platform/send-messages) |
| ------------ | --- | --- | --- | --------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Images       |     | Yes | Yes | Yes                                                       | Yes                                                                                |
| Video        |     | Yes | Yes | Yes                                                       | Yes                                                                                |
| Document     |     | Yes | Yes | Yes                                                       | Yes                                                                                |
| Audio        |     | Yes | Yes | In session only                                           | Yes                                                                                |

## WhatsApp approval requirements

To send messages to WhatApp users, WhatsApp must approve your content template. Another API request handles this approval. WhatsApp allows replies to inbound messages without a content template for some content types.

| Twilio content type     | User initiated: 24 hour session (initiated by inbound message)                            | Business initiated: out of session (initiated by a business - no inbound message) |
| ----------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| twilio/text             | ✅ Can reply to inbound messages                                                           | ⚠️ Approval required for outbound messages                                        |
| twilio/media            | ✅ Can reply to inbound messages                                                           | ⚠️ Approval required for outbound messages                                        |
| twilio/location         | ✅ Can reply to inbound messages                                                           | ❌ Not supported                                                                   |
| twilio/call-to-action   | ⚠️ Approval might be required to reply to inbound messages based on buttons types present | ⚠️ Approval required for outbound messages                                        |
| twilio/quick-reply      | ✅ Can reply to inbound messages                                                           | ⚠️ Approval required for outbound messages                                        |
| twilio/list-picker      | ✅ Can reply to inbound messages                                                           | ❌ Not supported                                                                   |
| twilio/card             | ⚠️ Approval might be required to reply to inbound messages based on buttons types present | ⚠️ Approval required for outbound messages                                        |
| twilio/carousel         | ⚠️ Approval required to reply to inbound messages                                         | ⚠️ Approval required for outbound messages                                        |
| twilio/catalog          | ✅ Can reply to inbound messages                                                           | ⚠️ Approval required for outbound messages                                        |
| twilio/pay              | ✅ Can reply to inbound messages                                                           | ❌ Not supported                                                                   |
| twilio/flows            | ⚠️ Approval required to reply to inbound messages                                         | ⚠️ Approval required for outbound messages                                        |
| whatsapp/card           | ⚠️ Approval might be required to reply to inbound messages based on buttons types present | ⚠️ Approval required for outbound messages                                        |
| whatsapp/authentication | ⚠️ Approval required to reply to inbound messages                                         | ⚠️ Approval required for outbound messages                                        |

## WhatsApp approval statuses

Whatsapp content templates can have the following statuses:

| Status        | Description                                                                                                                                                                                                                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Unsubmitted` | The content template hasn't been submitted to Twilio or WhatsApp for any sort of approval. These templates might still be used in session for some channels and in some WhatsApp sessions, subject to the WhatsApp approval requirements listed in the [WhatsApp approval requirements table](#whatsapp-approval-requirements). |
| `Received`    | The content template approval request has been received by Twilio. It's not yet in review by WhatsApp.                                                                                                                                                                                                                          |
| `Pending`     | The content template is under review by WhatsApp. Review can take up to 24 hours.                                                                                                                                                                                                                                               |
| `Approved`    | The content template has been approved by WhatsApp and can be used to notify customers.                                                                                                                                                                                                                                         |
| `Rejected`    | The content template has been rejected by WhatsApp during the review process.                                                                                                                                                                                                                                                   |
| `Paused`      | The content template has been paused by WhatsApp due to recurring negative feedback from end users, typically resulting from "block" and "report spam" actions associated with the content template. Message templates with this status can't be sent to end users.                                                             |
| `Disabled`    | The content template has been disabled by WhatsApp due to recurring negative feedback from end users or for violating one or more of WhatsApp's policies. Message templates with this status can't be sent to end users.                                                                                                        |

## Common components

The following parameters are used as an array in the `actions` parameter of `twilio/quick-reply`, `twilio/call-to-action`, and `twilio/card` content types:

| Parameter        | Type          | Required                                  | [Variable support](/docs/content/using-variables-with-content-api)                                   | Description                                                                                                                                                                                                                                             |
| ---------------- | ------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`           | string (enum) | Yes                                       | No                                                                                                   | The type of action:<br /><ul><li>Call to Action Values: `URL`, `PHONE_NUMBER`</li><li>Quick Reply Value: `QUICK_REPLY`</li><li>Card Values: `URL`, `PHONE_NUMBER`, `QUICK_REPLY`</li><li>whatsapp/authentication: `COPY_CODE`</li></ul>                 |
| `title`          | string        | Yes, except for `whatsapp/authentication` | Yes, except for `QUICK_REPLY` buttons on content templates for WhatsApp business initiated messages. | Display value for the action. For type `QUICK_REPLY`, this is the message that will be sent back when the user taps on the button.<br /><ul><li>Maximum length for WhatsApp: 25 characters</li><li>Maximum length for Facebook: 20 characters</li></ul> |
| `url`            | string        | No, except for `URL`                      | Yes                                                                                                  | URL to direct to when the recipient taps the button.                                                                                                                                                                                                    |
| `phone`          | string (enum) | No, except for `PHONE_NUMBER`             | No                                                                                                   | [E.164](/docs/glossary/what-e164) formatted phone number to call when the recipient taps the button.                                                                                                                                                    |
| `id`             | string (enum) | No                                        | Yes                                                                                                  | Postback payload. This field isn't visible to the end user.<br /><ul><li>Maximum length for WhatsApp: 128 characters</li><li>Maximum length for unapproved WhatsApp templates in session: 256 characters</li></ul>                                      |
| `copy_code_text` | string        | No, except for `whatsapp/authentication`  | No                                                                                                   | Display value for the Copy Code button.                                                                                                                                                                                                                 |
