GIF

Creates a new GIF template for WhatsApp Business API messaging

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Rate Limit:

10 requests per minute

Important Notes:

The template will be created with status "PENDING" and requires approval- elementName must be unique for the WABA's namespace-

Media size constraints:

Videos must be under 3.5 MB to be accepted.

Rendering behaviour:

Depending on platform rollout and client support, the same media asset may be rendered as a GIF, static image, or video for end users. This behaviour is controlled by Meta and may vary over time.

API Request

curl --request POST \
  --url https://qa-partner-api.smsgupshup.dev/partner/app/bf9ee64c-3d4d-4ac4-8668-732e577007c4/templates \
  --header 'Authorization: sk_852356fadaab4eefb679845237c85213' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data elementName=avida_gif_template \
  --data languageCode=en \
  --data 'content=This is my first GIF template' \
  --data 'footer=Hello GIF' \
  --data category=MARKETING \
  --data templateType=GIF \
  --data vertical=update_shop \
  --data 'example=This is my first GIF template' \
  --data mediaId=8fa96b2c-744e-4acf-bc98-9d4cd66bdd34 \
  --data 'mediaUrl="https://d2kq6t3nveviav.cloudfront.net/0/public/0/0/gupshup/918097424541/8fa96b2c-744e-4acf-bc98-9d4cd66bdd34/1767777627749_sample01.mp4"' \
  --data enableSample=true

API Response

{
  "status": "success",
  "templates": [
    {
      "appId": "bf9ee64c-3d4d-4ac4-8668-732e577007c4",
      "category": "MARKETING",
      "containerMeta": "{\"appId\":\"bf9ee64c-3d4d-4ac4-8668-732e577007c4\",\"data\":\"This is my first GIF template\",\"footer\":\"Hello GIF\",\"sampleText\":\"This is my first GIF template\",\"enableSample\":true,\"mediaId\":\"8fa96b2c-744e-4acf-bc98-9d4cd66bdd34\",\"mediaUrl\":\"https://d2kq6t3nveviav.cloudfront.net/0/public/0/0/gupshup/918097424541/8fa96b2c-744e-4acf-bc98-9d4cd66bdd34/1767777627749_sample01.mp4\",\"editTemplate\":false,\"allowTemplateCategoryChange\":false,\"addSecurityRecommendation\":false,\"isCPR\":false,\"cpr\":false}",
      "createdOn": 1769600654568,
      "data": "This is my first GIF template\nHello GIF",
      "elementName": "avida_gif_template",
      "externalId": "869249462577731",
      "id": "2ae16d34-f644-4c14-9396-568b89450ff2",
      "internalCategory": 0,
      "internalType": 0,
      "languageCode": "en",
      "languagePolicy": "deterministic",
      "meta": "{\"example\":\"This is my first GIF template\",\"mediaId\":\"8fa96b2c-744e-4acf-bc98-9d4cd66bdd34\",\"mediaUrl\":\"https://d2kq6t3nveviav.cloudfront.net/0/public/0/0/gupshup/918097424541/8fa96b2c-744e-4acf-bc98-9d4cd66bdd34/1767777627749_sample01.mp4\"}",
      "modifiedOn": 1769600757736,
      "namespace": "18cfa544_9c62_4dcd_b8f3_b3785d8c917c",
      "parameterFormat": "POSITIONAL",
      "priority": 1,
      "quality": "UNKNOWN",
      "retry": 0,
      "stage": "NONE",
      "state": "ACTIVE",
      "status": "APPROVED",
      "templateType": "GIF",
      "vertical": "update_shop",
      "wabaId": "216141188246170"
    }
}

Response


Status codeResponseComments
200
{
  "status": "success",
  "templates": [
    {
      "appId": "bf9ee64c-3d4d-4ac4-8668-732e577007c4",
      "category": "MARKETING",
      "containerMeta": "{\"appId\":\"bf9ee64c-3d4d-4ac4-8668-732e577007c4\",\"data\":\"This is my first GIF template\",\"footer\":\"Hello GIF\",\"sampleText\":\"This is my first GIF template\",\"enableSample\":true,\"mediaId\":\"8fa96b2c-744e-4acf-bc98-9d4cd66bdd34\",\"mediaUrl\":\"https://d2kq6t3nveviav.cloudfront.net/0/public/0/0/gupshup/918097424541/8fa96b2c-744e-4acf-bc98-9d4cd66bdd34/1767777627749_sample01.mp4\",\"editTemplate\":false,\"allowTemplateCategoryChange\":false,\"addSecurityRecommendation\":false,\"isCPR\":false,\"cpr\":false}",
      "createdOn": 1769600654568,
      "data": "This is my first GIF template\nHello GIF",
      "elementName": "avida_gif_template",
      "externalId": "869249462577731",
      "id": "2ae16d34-f644-4c14-9396-568b89450ff2",
      "internalCategory": 0,
      "internalType": 0,
      "languageCode": "en",
      "languagePolicy": "deterministic",
      "meta": "{\"example\":\"This is my first GIF template\",\"mediaId\":\"8fa96b2c-744e-4acf-bc98-9d4cd66bdd34\",\"mediaUrl\":\"https://d2kq6t3nveviav.cloudfront.net/0/public/0/0/gupshup/918097424541/8fa96b2c-744e-4acf-bc98-9d4cd66bdd34/1767777627749_sample01.mp4\"}",
      "modifiedOn": 1769600757736,
      "namespace": "18cfa544_9c62_4dcd_b8f3_b3785d8c917c",
      "parameterFormat": "POSITIONAL",
      "priority": 1,
      "quality": "UNKNOWN",
      "retry": 0,
      "stage": "NONE",
      "state": "ACTIVE",
      "status": "APPROVED",
      "templateType": "GIF",
      "vertical": "update_shop",
      "wabaId": "216141188246170"
    }
}
429
{"status": "error", "message": "Too Many Requests"} 
10 Requests per Minute
500
{"status": "error", "message": "Internal server error. Please try again later and If Issue still persist than contact Gupshup Dev Support"} 
For any Internal Error

Request Parameters

Headers

KeyDescriptionValueData TypeRequired/ OptionalConstraints
AuthorizationAccess Token for the application{{PARTNER_APP_TOKEN}}StringRequiredShould be a valid Partner App Access Token

Path Parameters

KeyDescriptionValueData TypeRequired/ OptionalConstraints
APP_IDApp ID to fetch the access token{{APP_ID}}StringRequiredThe Id should be a valid app Id of Gupshup. The App must be associated with the account that owns the PARTNER_APP_TOKEN being used

Form Parameters

KeyDescriptionValueData TypeRequired/ OptionalConstraints
elementNameThe name of a template. Element name is unique for a WABAs namespace.{{ELEMENT_NAME}}StringRequiredelementName (not more than 180 char.) Mandatory fields
languageCodeLanguage code for the template. Refer to all the language codes here.{{LANGUAGE_CODE}}StringOptionallanguageCode default value: en_US
contentThe body of the template. Character limit: 1028. For the "Authentication" category, the first line should be: {{1}} is your verification code.{{CONTENT}}StringRequiredcontent (not more than 1024 char.)
categoryThe category of your template.{{CATEGORY}}StringRequiredValid values: MARKETING, UTILITY, AUTHENTICATION
verticalIndustry vertical or use case for the template{{VERTICAL}}StringRequiredvertical (not more than 180 char.)
footerFooter of the template.{{FOOTER}}StringOptional
templateTypeType of templateGIFStringRequiredMust be set to "GIF" for GIF templates
exampleTemplate Example with placeholder values filled{{EXAMPLE}}StringRequired
mediaIdHandle Id required to generate media templates{{MEDIA_ID}}StringRequiredThis is handleId. Generate handleId here
mediaUrlmedia URL{{MEDIA_URL}}StringRequired
enableSampleRequired for creating all types of templates{{ENABLE_SAMPLE}}BooleanOptionalif enableSample is true then exampleMedia is required
Path Params
uuid
required

App ID to fetch the access token.
The Id should be a valid app Id of Gupshup. The App must be associated with the account that owns the PARTNER_APP_TOKEN being used.

Form Data
string
required
length ≤ 180

The name of a template. Element name is unique for a WABA's namespace.

string
Defaults to en_US

Language code for the template. Refer to all the language codes in the documentation.

string
required
length ≤ 1024

The body of the template. Character limit: 1028.
For "Authentication" category the first line should be: {{1}} is your verification code.

string
string
enum
required

The category of your template.

Allowed:
string
enum
required

Type of template. Must be set to "GIF" for GIF templates.

Allowed:
string
required
length ≤ 180

Industry vertical or use case for the template.

string
required

Template Example with placeholder values filled.

string
required

Handle Id required to generate media templates.
This is handleId. Generate handleId separately before using this API.

boolean

Required for creating all types of templates.
If enableSample is true then exampleMedia is required.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json