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

# Get Templates

> Retrieve a list of message templates

## Get Templates

Retrieve a list of all message templates in your account.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://app.notify.ng/api/v2/Template?ApiKey=YOUR_API_KEY&ClientId=YOUR_CLIENT_ID" \
    -H "Content-Type: application/json"
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    ApiKey: 'YOUR_API_KEY',
    ClientId: 'YOUR_CLIENT_ID'
  });

  const response = await fetch(`https://app.notify.ng/api/v2/Template?${params}`, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json'
    }
  });

  const data = await response.json();
  console.log(data);
  ```

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

  url = "https://app.notify.ng/api/v2/Template"
  params = {
      "ApiKey": "YOUR_API_KEY",
      "ClientId": "YOUR_CLIENT_ID"
  }

  response = requests.get(url, params=params)
  data = response.json()
  print(data)
  ```
</CodeGroup>

## Parameters

<ParamField query="ApiKey" type="string" required>
  Your API key for authentication
</ParamField>

<ParamField query="ClientId" type="string" required>
  Your client identifier for authentication
</ParamField>

## Response

<ResponseField name="ErrorCode" type="number">
  Error code (0 for success)
</ResponseField>

<ResponseField name="ErrorDescription" type="string">
  Description of the result
</ResponseField>

<ResponseField name="Data" type="array">
  Array of template objects
</ResponseField>

<ResponseField name="Data[].TemplateId" type="number">
  Unique identifier for the template
</ResponseField>

<ResponseField name="Data[].CompanyId" type="number">
  Company identifier
</ResponseField>

<ResponseField name="Data[].TemplateName" type="string">
  Name of the template
</ResponseField>

<ResponseField name="Data[].MessageTemplate" type="string">
  Template content with placeholders
</ResponseField>

<ResponseField name="Data[].IsApproved" type="boolean">
  Whether the template is approved
</ResponseField>

<ResponseField name="Data[].IsActive" type="boolean">
  Whether the template is currently active
</ResponseField>

<ResponseField name="Data[].CreatededDate" type="string">
  Date when the template was created
</ResponseField>

<ResponseField name="Data[].ApprovedDate" type="string">
  Date when the template was approved
</ResponseField>

### Success Response

```json theme={null}
{
  "ErrorCode": 0,
  "ErrorDescription": "Success",
  "Data": [
    {
      "TemplateId": 138,
      "CompanyId": 121,
      "TemplateName": "test",
      "MessageTemplate": "test ##Field##",
      "IsApproved": false,
      "IsActive": true,
      "CreatededDate": "Mar 19, 2018",
      "ApprovedDate": "Mar 19, 2018"
    }
  ]
}
```

## Template Features

* **Placeholders**: Use `##Field##` for dynamic content
* **Approval**: Templates may require approval before use
* **Reusability**: Create templates for common message types
* **Consistency**: Ensure consistent messaging across campaigns

## Template Examples

### OTP Template

```
Your OTP is ##OTP##. Valid for 5 minutes. Do not share with anyone.
```

### Welcome Template

```
Welcome to ##CompanyName##! Your account has been created successfully. Account ID: ##AccountId##
```

### Reminder Template

```
Reminder: Your appointment with ##DoctorName## is scheduled for ##Date## at ##Time##.
```

## Use Cases

* **Consistency**: Maintain consistent messaging across all communications
* **Efficiency**: Save time by reusing approved templates
* **Compliance**: Use pre-approved templates for regulated content
* **Personalization**: Combine templates with dynamic data for personalized messages
