> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://commify.ferndocs.com/api-reference/templates/get-template-v-3/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://commify.ferndocs.com/_mcp/server. # Get template (v3) GET http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/{templateId} Reference: https://commify.ferndocs.com/api-reference/templates/get-template-v-3 ## Authentication - `X-API-Key` header (required) — Your Commify API key. ## Request ### Path parameters - `templateId` (string, required) ### Headers - `AccountReference` (string, required) — Mandatory AccountReference header ## Response ### 200 OK - `data` (GetTemplateV3Response, optional, nullable) - `errors` (list of ErrorDto, optional, nullable) ## Errors ### 400 Bad Request Error Bad Request - `errors` (list of ErrorDto, optional, nullable) ### 404 Not Found Error Not Found - `errors` (list of ErrorDto, optional, nullable) ## Types ### GetTemplateV3Response - `id` (string, optional) - `createTimestamp` (datetime, optional) - `lastUpdateTimestamp` (datetime, optional) - `name` (string, optional, nullable) - `content` (GetTemplateV3ResponseContent, optional) - `accountReference` (string, optional, nullable) - `createdBy` (string, optional) - `lastUpdatedBy` (string, optional) - `type` (enum, optional) - Allowed values: `None`, `Text`, `RichCard`, `Media` - `messageType` (enum, optional) - Allowed values: `None`, `MarketingAndResearch`, `NotificationsAndReminders`, `AuthenticationAndSecurity`, `PaymentsAndCollections`, `InternalOperations`, `CustomerSupport`, `Unknown` - `channelSettings` (list of GetTemplateV3ResponseChannelSettingsItems, optional, nullable) - `variables` (list of GetTemplateV3ResponseVariablesItems, optional) - `isLocked` (boolean, optional) - `tags` (list of GetTemplateV3ResponseTagsItems, optional) ### ErrorDto - `errorCode` (string, required) - `errorMessage` (string, required) - `metadata` (map from string to string, optional, nullable) ### GetTemplateV3ResponseContent - `text` (GetTemplateV3ResponseContentText, optional) - `richCard` (GetTemplateV3ResponseContentRichCard, optional) - `file` (GetTemplateV3ResponseContentFile, optional) - `conversationButtons` (list of GetTemplateV3ResponseContentConversationButtonsItems, optional) ### GetTemplateV3ResponseChannelSettingsItems - `channel` (enum, optional) - Allowed values: `None`, `Sms`, `Rcs`, `Whatsapp` - `settings` (string, optional, nullable) ### GetTemplateV3ResponseVariablesItems - `key` (string, optional, nullable) ### GetTemplateV3ResponseTagsItems - `id` (string, optional) - `text` (string, optional, nullable) ### GetTemplateV3ResponseContentText - `value` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCard - `config` (any, optional) - `cards` (list of GetTemplateV3ResponseContentRichCardCardsItems, optional) - `preferredStyling` (map from string to string, optional, nullable) ### GetTemplateV3ResponseContentFile - `fileUrl` (string, optional, nullable) - `fileName` (string, optional, nullable) - `text` (string, optional, nullable) - `sizeBytes` (GetTemplateV3ResponseContentFileSizeBytes, optional) - `contentType` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItems - `id` (string, optional, nullable) - `web` (GetTemplateV3ResponseContentConversationButtonsItemsWeb, optional) - `phone` (GetTemplateV3ResponseContentConversationButtonsItemsPhone, optional) - `location` (GetTemplateV3ResponseContentConversationButtonsItemsLocation, optional) - `calendar` (GetTemplateV3ResponseContentConversationButtonsItemsCalendar, optional) - `text` (string, optional, nullable) - `payment` (GetTemplateV3ResponseContentConversationButtonsItemsPayment, optional) - `reply` (GetTemplateV3ResponseContentConversationButtonsItemsReply, optional) - `reportTag` (string, optional, nullable) - `preferredStyling` (map from string to string, optional, nullable) - `order` (GetTemplateV3ResponseContentConversationButtonsItemsOrder, optional) - `metadata` (GetTemplateV3ResponseContentConversationButtonsItemsMetadata, optional) ### GetTemplateV3ResponseContentRichCardCardsItems - `header` (GetTemplateV3ResponseContentRichCardCardsItemsHeader, optional) - `title` (string, optional, nullable) - `description` (string, optional, nullable) - `buttons` (list of GetTemplateV3ResponseContentRichCardCardsItemsButtonsItems, optional) ### GetTemplateV3ResponseContentFileSizeBytes ### GetTemplateV3ResponseContentConversationButtonsItemsWeb - `url` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItemsPhone - `msisdn` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItemsLocation - `label` (string, optional, nullable) - `lat` (string, optional, nullable) - `lng` (string, optional, nullable) - `variableName` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItemsCalendar - `title` (string, optional, nullable) - `description` (string, optional, nullable) - `startAtUtc` (string, optional, nullable) - `endAtUtc` (string, optional, nullable) - `variableName` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItemsPayment - `requestId` (string, optional, nullable) - `lineItems` (list of GetTemplateV3ResponseContentConversationButtonsItemsPaymentLineItemsItems, optional) - `currency` (string, optional, nullable) - `paymentMethod` (GetTemplateV3ResponseContentConversationButtonsItemsPaymentPaymentMethod, optional) ### GetTemplateV3ResponseContentConversationButtonsItemsReply - `text` (string, optional, nullable) ### GetTemplateV3ResponseContentConversationButtonsItemsOrder ### GetTemplateV3ResponseContentConversationButtonsItemsMetadata - `public` (map from string to string, optional, nullable) - `private` (any, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsHeader - `adaptiveCard` (any, optional) - `file` (GetTemplateV3ResponseContentRichCardCardsItemsHeaderFile, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItems - `id` (string, optional, nullable) - `web` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsWeb, optional) - `phone` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPhone, optional) - `location` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsLocation, optional) - `calendar` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsCalendar, optional) - `text` (string, optional, nullable) - `payment` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPayment, optional) - `reply` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsReply, optional) - `reportTag` (string, optional, nullable) - `preferredStyling` (map from string to string, optional, nullable) - `order` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsOrder, optional) - `metadata` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsMetadata, optional) ### GetTemplateV3ResponseContentConversationButtonsItemsPaymentLineItemsItems - `type` (string, optional, nullable) - `text` (string, optional, nullable) - `subText` (string, optional, nullable) - `amount` (GetTemplateV3ResponseContentConversationButtonsItemsPaymentLineItemsItemsAmount, optional) ### GetTemplateV3ResponseContentConversationButtonsItemsPaymentPaymentMethod - `merchantId` (string, optional, nullable) - `merchantName` (string, optional, nullable) - `acceptedCards` (list of string, optional) - `countryCodes` (list of string, optional) - `billingAddressRequired` (boolean, optional) - `tokenisationData` (GetTemplateV3ResponseContentConversationButtonsItemsPaymentPaymentMethodTokenisationData, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsHeaderFile - `fileUrl` (string, optional, nullable) - `fileName` (string, optional, nullable) - `text` (string, optional, nullable) - `sizeBytes` (GetTemplateV3ResponseContentRichCardCardsItemsHeaderFileSizeBytes, optional) - `contentType` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsWeb - `url` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPhone - `msisdn` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsLocation - `label` (string, optional, nullable) - `lat` (string, optional, nullable) - `lng` (string, optional, nullable) - `variableName` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsCalendar - `title` (string, optional, nullable) - `description` (string, optional, nullable) - `startAtUtc` (string, optional, nullable) - `endAtUtc` (string, optional, nullable) - `variableName` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPayment - `requestId` (string, optional, nullable) - `lineItems` (list of GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentLineItemsItems, optional) - `currency` (string, optional, nullable) - `paymentMethod` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentPaymentMethod, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsReply - `text` (string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsOrder ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsMetadata - `public` (map from string to string, optional, nullable) - `private` (any, optional) ### GetTemplateV3ResponseContentConversationButtonsItemsPaymentLineItemsItemsAmount ### GetTemplateV3ResponseContentConversationButtonsItemsPaymentPaymentMethodTokenisationData - `type` (string, optional, nullable) - `tokenisationParameters` (map from string to string, optional, nullable) ### GetTemplateV3ResponseContentRichCardCardsItemsHeaderFileSizeBytes ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentLineItemsItems - `type` (string, optional, nullable) - `text` (string, optional, nullable) - `subText` (string, optional, nullable) - `amount` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentLineItemsItemsAmount, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentPaymentMethod - `merchantId` (string, optional, nullable) - `merchantName` (string, optional, nullable) - `acceptedCards` (list of string, optional) - `countryCodes` (list of string, optional) - `billingAddressRequired` (boolean, optional) - `tokenisationData` (GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentPaymentMethodTokenisationData, optional) ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentLineItemsItemsAmount ### GetTemplateV3ResponseContentRichCardCardsItemsButtonsItemsPaymentPaymentMethodTokenisationData - `type` (string, optional, nullable) - `tokenisationParameters` (map from string to string, optional, nullable) ## Examples **Response** ```json { "data": null, "errors": null } ``` **SDK Code** ```python import requests url = "http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId" headers = { "AccountReference": "AccountReference", "X-API-Key": "" } response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId'; const options = { method: 'GET', headers: {AccountReference: 'AccountReference', 'X-API-Key': ''} }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("AccountReference", "AccountReference") req.Header.Add("X-API-Key", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) request["AccountReference"] = 'AccountReference' request["X-API-Key"] = '' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId") .header("AccountReference", "AccountReference") .header("X-API-Key", "") .asString(); ``` ```php request('GET', 'http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId', [ 'headers' => [ 'AccountReference' => 'AccountReference', 'X-API-Key' => '', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId"); var request = new RestRequest(Method.GET); request.AddHeader("AccountReference", "AccountReference"); request.AddHeader("X-API-Key", ""); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "AccountReference": "AccountReference", "X-API-Key": "" ] let request = NSMutableURLRequest(url: NSURL(string: "http://gateway-api.e97e9e55a5d242f9a139.uksouth.aksapp.io/v3/templates/templateId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```