Skip to main content
POST
/
v1
/
businesses
/
{businessId}
/
get
/
templates
Get Templates
curl --request POST \
  --url https://api.example.com/v1/businesses/{businessId}/get/templates
import requests

url = "https://api.example.com/v1/businesses/{businessId}/get/templates"

response = requests.post(url)

print(response.text)
const options = {method: 'POST'};

fetch('https://api.example.com/v1/businesses/{businessId}/get/templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/businesses/{businessId}/get/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.example.com/v1/businesses/{businessId}/get/templates"

req, _ := http.NewRequest("POST", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.example.com/v1/businesses/{businessId}/get/templates")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v1/businesses/{businessId}/get/templates")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
Retrieve all WhatsApp templates associated with your business account. Templates with the same name but different language translations are grouped together as a template group. Use this endpoint to check approval status after submitting a new template.

Endpoint

POST https://api.connectly.ai/v1/businesses/{businessId}/get/templates
This endpoint uses POST with no request body.

Response

Returns a list of template groups under entity.templateGroups. Each group contains one or more language variants. Template status values:
StatusDescription
MESSAGE_TEMPLATE_STATUS_PENDINGSubmitted to Meta and awaiting review.
MESSAGE_TEMPLATE_STATUS_APPROVEDApproved by Meta โ€” ready to use.
MESSAGE_TEMPLATE_STATUS_REJECTEDRejected by Meta. Check rejectionReason for details.

Example

curl -X POST "https://api.connectly.ai/v1/businesses/{businessId}/get/templates" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "entity": {
    "templateGroups": [
      {
        "id": "order_confirmation",
        "name": "order_confirmation",
        "category": "ACCOUNT_UPDATE",
        "templates": [
          {
            "id": "651213231234567",
            "language": { "code": "en" },
            "status": "MESSAGE_TEMPLATE_STATUS_REJECTED",
            "createdAt": "2022-03-09T23:07:01Z",
            "updatedAt": "2022-03-09T23:07:01Z",
            "rejectionReason": "INVALID_FORMAT",
            "templateComponents": [
              {
                "header": {
                  "media": {
                    "type": "TYPE_IMAGE",
                    "example": ["https://example.com/header.png"]
                  }
                }
              },
              {
                "body": {
                  "text": {
                    "text": "Welcome to Connectly!",
                    "example": []
                  }
                }
              },
              {
                "footer": {
                  "text": { "text": "Connectly.ai", "example": [] }
                }
              },
              { "button": { "quickReply": { "text": "Continue" } } },
              { "button": { "quickReply": { "text": "Stop" } } }
            ],
            "externalTemplate": {
              "whatsapp": {
                "id": "651213231234567",
                "name": "order_confirmation",
                "language": "en",
                "status": "REJECTED",
                "rejectedReason": "INVALID_FORMAT",
                "qualityScore": { "score": "UNKNOWN" }
              }
            }
          }
        ]
      }
    ]
  }
}
The externalTemplate.whatsapp object contains the raw template data as returned directly by Meta, alongside Connectlyโ€™s own representation in templateComponents. Use templateComponents for the Connectly-native format.