> ## Documentation Index
> Fetch the complete documentation index at: https://yardim.whattalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Şablonları Getir

> Belirli bir gönderen için WhatsApp mesaj şablonlarını listeleyin

Bu endpoint, belirli bir WhatsApp gönderenine ait tüm mesaj şablonlarını döndürür. Şablonlar, konuşmaları başlatmak veya 24 saatlik mesajlaşma penceresi dışında kullanıcılara mesaj göndermek için gereklidir.

### Yol Parametreleri

<ParamField path="senderId" type="integer" required>
  WhatsApp göndereninin kimliği ([Gönderenleri Getir](/api-reference/whatsapp/get-senders) endpoint'inden elde edilir)
</ParamField>

### Sorgu Parametreleri

<ParamField query="status" type="string" optional>
  Şablonları onay durumuna göre filtreleyin. Varsayılan: `approved`. Durumdan bağımsız olarak tüm şablonları döndürmek için `all` kullanın.
</ParamField>

### Yanıt Alanları

<ResponseField name="data" type="array">
  <Expandable title="Şablon nesnesi özellikleri">
    <ResponseField name="id" type="integer">
      Şablonun benzersiz tanımlayıcısı. Şablon mesajları gönderirken bunu kullanın.
    </ResponseField>

    <ResponseField name="name" type="string">
      Meta'ya kayıtlı şablon adı (ör. `order_confirmation`, `appointment_reminder`)
    </ResponseField>

    <ResponseField name="language" type="string">
      Şablon dil kodu (ör. `en`, `es`, `pt_BR`)
    </ResponseField>

    <ResponseField name="category" type="string">
      Şablon kategorisi: `marketing`, `utility` veya `authentication`
    </ResponseField>

    <ResponseField name="status" type="string">
      Onay durumu: `approved`, `pending` veya `rejected`
    </ResponseField>

    <ResponseField name="body_text" type="string">
      Şablon gövde metni, değişken yer tutucuları `{{1}}`, `{{2}}` vb. olarak gösterilir.
    </ResponseField>

    <ResponseField name="variables" type="array">
      Şablon için tanımlanan değişken adları listesi. Şablonda değişken yoksa boş dizi.
    </ResponseField>

    <ResponseField name="has_variables" type="boolean">
      Bu şablonun gönderirken değişken sağlanmasını gerektirip gerektirmediği
    </ResponseField>
  </Expandable>
</ResponseField>

### Hata Yanıtları

<ResponseField name="404 Not Found">
  <Expandable title="Hata Yanıtı">
    <ResponseField name="success" type="boolean">
      `false`
    </ResponseField>

    <ResponseField name="error" type="string">
      `Sender not found`
    </ResponseField>

    <ResponseField name="error_code" type="string">
      `SENDER_NOT_FOUND`
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://app.whattalk.ai/api/user/whatsapp/senders/12/templates" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```bash Tüm şablonlar (bekleyen/reddedilen dahil) theme={null}
  curl -X GET "https://app.whattalk.ai/api/user/whatsapp/senders/12/templates?status=all" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const senderId = 12;

  const response = await fetch(
    `https://app.whattalk.ai/api/user/whatsapp/senders/${senderId}/templates`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY'
      }
    }
  );

  const data = await response.json();
  console.log(data.data); // Array of templates
  ```

  ```python Python theme={null}
  import requests

  sender_id = 12

  response = requests.get(
      f'https://app.whattalk.ai/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']}")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Yanıt theme={null}
  {
    "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
      }
    ]
  }
  ```

  ```json 404 Gönderen Bulunamadı theme={null}
  {
    "success": false,
    "error": "Sender not found",
    "error_code": "SENDER_NOT_FOUND"
  }
  ```
</ResponseExample>

### Notlar

* Varsayılan olarak yalnızca `approved` şablonlar döndürülür. `pending` veya `rejected` durumundaki şablonlar mesaj göndermek için kullanılamaz.
* Şablon onay durumu her 4 saatte bir Meta ile otomatik olarak senkronize edilir.
* `body_text` içindeki değişkenler `{{1}}`, `{{2}}` vb. olarak gösterilir. `variables` dizisi her yer tutucu için okunabilir adlar sağlar.
* Bir kullanıcıya ilk kez mesaj gönderirken veya 24 saatlik mesajlaşma penceresi dışında şablonlar gereklidir.
