Skip to content

Templates API

WhatsApp Business API requires pre-approved templates for business-initiated conversations. Jina Connect manages the full template lifecycle across BSPs.

MethodEndpointDescription
GET/wa/v2/templates/List all templates
POST/wa/v2/templates/Create a new template
GET/wa/v2/templates/{id}/Get template details
PUT/wa/v2/templates/{id}/Update template
DELETE/wa/v2/templates/{id}/Delete template
Terminal window
curl -X POST http://localhost:8000/wa/v2/templates/ \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "order_shipped",
"category": "UTILITY",
"template_type": "TEXT",
"language": "en",
"body": "Hi {{1}}, your order {{2}} has been shipped! Track at {{3}}",
"header": "Order Update",
"footer": "Reply STOP to unsubscribe"
}'
FieldTypeDescription
namestringTemplate name (lowercase, underscores)
categoryenumAUTHENTICATION, MARKETING, UTILITY
template_typeenumTEXT, IMAGE, VIDEO, DOCUMENT, CAROUSEL, CATALOG, PRODUCT
languagestringLanguage code (e.g., en, hi, es)
bodystringTemplate body with {{n}} placeholders
headerstringOptional header text
footerstringOptional footer text
buttonsarrayInteractive buttons (Quick Reply, CTA)
statusenumRead-only. Lifecycle status
StatusDescription
DRAFTCreated locally, not submitted
PENDINGSubmitted to BSP for review
APPROVEDApproved and ready to use
REJECTEDRejected by BSP
PAUSEDTemporarily paused by BSP
DISABLEDPermanently disabled
FAILEDSubmission failed
TypeDescription
QUICK_REPLYPre-defined reply buttons (max 3)
PHONE_NUMBERClick-to-call button
URLClick-to-open URL
ParameterDescription
statusFilter by status: APPROVED, PENDING, etc.
categoryFilter by category
searchSearch by template name
orderingSort by field (e.g., -created_at)

Templates are automatically synced with your BSP every 2 minutes via a Celery cron job. Status changes on the BSP side (approval, rejection, pausing) are reflected automatically.