POST /v1/actions/get-template

Récupère le corps, l'en-tête, le pied de page, les boutons d'un template et les placeholders qu'il attend.

Renvoie un template avec son corps complet, son en-tête/pied de page optionnels, ses boutons, et la liste des placeholders extraits du corps. Utilisez-le pour découvrir quelles variables un template attend avant d'appeler send-template-message.

POST /api/v1/actions/get-template

Corps de la requête

Champ Type Requis
template_id UUID oui
curl -X POST https://www.qyvo.io/api/v1/actions/get-template \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{"template_id": "01J0AB..."}'
const template = await fetch('https://www.qyvo.io/api/v1/actions/get-template', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.QYVO_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ template_id: '01J0AB...' }),
}).then((r) => r.json());
$template = Http::withToken(env('QYVO_TOKEN'))
    ->post('https://www.qyvo.io/api/v1/actions/get-template', [
        'template_id' => '01J0AB...',
    ])
    ->json();
import os, httpx
template = httpx.post(
    'https://www.qyvo.io/api/v1/actions/get-template',
    headers={'Authorization': f"Bearer {os.environ['QYVO_TOKEN']}"},
    json={'template_id': '01J0AB...'},
).json()

Réponse — 200 OK

{
  "id": "01J0AB...",
  "name": "order_confirmation",
  "category": "UTILITY",
  "status": "APPROVED",
  "languages": ["en", "fr", "es"],
  "body": "Hi {{1}}, your order {{2}} ships tomorrow. Track it: {{3}}",
  "header_type": "TEXT",
  "header_content": "Order update",
  "footer": "Reply STOP to unsubscribe.",
  "buttons": [
    { "type": "URL", "text": "Track order", "url": "https://acme.com/track/{{1}}" }
  ],
  "placeholders": ["1", "2", "3"],
  "created_at": "2026-04-15T10:32:00+00:00"
}
Champ Notes
header_type TEXT, IMAGE, VIDEO, DOCUMENT, ou null
header_content Le texte de l'en-tête (pour TEXT) ou l'URL média (pour les en-têtes média)
footer Chaîne de pied de page optionnelle, max 60 caractères
buttons Tableau de {type, text, url?, phone_number?} — types : URL, PHONE_NUMBER, QUICK_REPLY
placeholders Variables que le corps attend, dans l'ordre

La réponse reflète toujours la première traduction approuvée trouvée, en se rabattant sur n'importe quelle traduction si aucune n'est encore approuvée. Pour inspecter une traduction spécifique, utilisez le tableau de bord.