string
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates?status=all" \
-H "Authorization: Bearer YOUR_API_KEY"
const senderId = 12;
const response = await fetch(
`https://app.famulor.de/api/user/whatsapp/senders/${senderId}/templates`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
console.log(data.data); // Array of templates
import requests
sender_id = 12
response = requests.get(
f'https://app.famulor.de/api/user/whatsapp/senders/{sender_id}/templates',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
templates = response.json()['data']
for template in templates:
print(f"{template['name']} ({template['language']}): {template['body_text']}")
{
"data": [
{
"id": 45,
"name": "appointment_reminder",
"language": "en",
"category": "utility",
"status": "approved",
"body_text": "Hi {{1}}, this is a reminder for your appointment on {{2}} at {{3}}. Reply YES to confirm or NO to reschedule.",
"variables": ["customer_name", "date", "time"],
"has_variables": true
},
{
"id": 46,
"name": "welcome_message",
"language": "en",
"category": "marketing",
"status": "approved",
"body_text": "Welcome to Acme Corp! We're excited to have you. How can we help you today?",
"variables": [],
"has_variables": false
}
]
}
{
"success": false,
"error": "Sender not found",
"error_code": "SENDER_NOT_FOUND"
}
Get WhatsApp Templates
List WhatsApp message templates for a specific Famulor sender
GET
/
user
/
whatsapp
/
senders
/
{senderId}
/
templates
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates?status=all" \
-H "Authorization: Bearer YOUR_API_KEY"
const senderId = 12;
const response = await fetch(
`https://app.famulor.de/api/user/whatsapp/senders/${senderId}/templates`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
console.log(data.data); // Array of templates
import requests
sender_id = 12
response = requests.get(
f'https://app.famulor.de/api/user/whatsapp/senders/{sender_id}/templates',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
templates = response.json()['data']
for template in templates:
print(f"{template['name']} ({template['language']}): {template['body_text']}")
{
"data": [
{
"id": 45,
"name": "appointment_reminder",
"language": "en",
"category": "utility",
"status": "approved",
"body_text": "Hi {{1}}, this is a reminder for your appointment on {{2}} at {{3}}. Reply YES to confirm or NO to reschedule.",
"variables": ["customer_name", "date", "time"],
"has_variables": true
},
{
"id": 46,
"name": "welcome_message",
"language": "en",
"category": "marketing",
"status": "approved",
"body_text": "Welcome to Acme Corp! We're excited to have you. How can we help you today?",
"variables": [],
"has_variables": false
}
]
}
{
"success": false,
"error": "Sender not found",
"error_code": "SENDER_NOT_FOUND"
}
Retrieve all WhatsApp Business message templates associated with a specific Famulor WhatsApp sender. Templates are required for initiating conversations or messaging users outside the 24-hour messaging window.
Path Parameters
integer
required
The ID of the WhatsApp sender (obtained from the Get Senders endpoint)
Query Parameters
string
Filter templates by approval status. Default:
approved. Use all to return all templates regardless of status.Response Fields
array
Show Template object properties
Show Template object properties
integer
The unique identifier of the template. Use this when sending template messages.
string
The template name as registered with Meta (e.g.,
order_confirmation, appointment_reminder)string
The template language code (e.g.,
en, es, pt_BR)string
The template category:
marketing, utility, or authenticationstring
The approval status:
approved, pending, or rejectedThe template body text, with variable placeholders shown as
{{1}}, {{2}}, etc.array
List of variable names defined for the template. Empty array if the template has no variables.
boolean
Whether this template requires variables to be provided when sending
Error Responses
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://app.famulor.de/api/user/whatsapp/senders/12/templates?status=all" \
-H "Authorization: Bearer YOUR_API_KEY"
const senderId = 12;
const response = await fetch(
`https://app.famulor.de/api/user/whatsapp/senders/${senderId}/templates`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
console.log(data.data); // Array of templates
import requests
sender_id = 12
response = requests.get(
f'https://app.famulor.de/api/user/whatsapp/senders/{sender_id}/templates',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
templates = response.json()['data']
for template in templates:
print(f"{template['name']} ({template['language']}): {template['body_text']}")
{
"data": [
{
"id": 45,
"name": "appointment_reminder",
"language": "en",
"category": "utility",
"status": "approved",
"body_text": "Hi {{1}}, this is a reminder for your appointment on {{2}} at {{3}}. Reply YES to confirm or NO to reschedule.",
"variables": ["customer_name", "date", "time"],
"has_variables": true
},
{
"id": 46,
"name": "welcome_message",
"language": "en",
"category": "marketing",
"status": "approved",
"body_text": "Welcome to Acme Corp! We're excited to have you. How can we help you today?",
"variables": [],
"has_variables": false
}
]
}
{
"success": false,
"error": "Sender not found",
"error_code": "SENDER_NOT_FOUND"
}
Notes
- Only
approvedtemplates are returned by default. Templates withpendingorrejectedstatus cannot be used to send messages. - Template approval status is synced with Meta every 4 hours automatically.
- Variables in
body_textare shown as{{1}},{{2}}, etc. Thevariablesarray provides human-readable names for each placeholder. - Templates are required when messaging a user for the first time or outside the 24-hour messaging window.
⌘I