> ## Documentation Index
> Fetch the complete documentation index at: https://doc.convo.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /project/{project_id}/wa_template/{id} — Get Template

> GET /project/{project_id}/wa_template/{id} — Retrieve a single WhatsApp Message Template by its ID, including approval status and rejection reason.

Retrieve the full details of a single WhatsApp Message Template by its ID. Use this endpoint to check a template's approval status, inspect its content, or retrieve rejection reasons after submission.

## Endpoint

```text theme={null}
GET https://connect.api-wa.co/project-apis/v1/project/{project_id}/wa_template/{wa_template_id}
```

## Authentication

```text theme={null}
X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD
```

## Path Parameters

<ParamField path="project_id" type="string" required>
  Your Convo project ID.
</ParamField>

<ParamField path="wa_template_id" type="string" required>
  The unique ID of the WhatsApp Message Template. This is the `_id` field returned when you [submit a template](/api-reference/templates/submit-template) or [list templates](/api-reference/templates/list-templates).
</ParamField>

## Request Example

```bash theme={null}
curl "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/wa_template/64a1f3bc9e4a2b001c3d7f12" \
  -H "X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD"
```

## Response

A successful request returns `200 OK` with the full template object.

<ResponseField name="_id" type="string">
  The unique identifier of this template.
</ResponseField>

<ResponseField name="name" type="string">
  The template's unique machine-readable name (lowercase, underscores).
</ResponseField>

<ResponseField name="label" type="string">
  The human-readable display label for this template.
</ResponseField>

<ResponseField name="status" type="string">
  Current approval status from WhatsApp. One of:

  * `PENDING` — Awaiting WhatsApp review.
  * `APPROVED` — Approved and ready to use in campaigns.
  * `REJECTED` — Rejected by WhatsApp. See `rejected_reason`.
  * `DISABLED` — Disabled by WhatsApp due to policy or feedback issues.
</ResponseField>

<ResponseField name="category" type="string">
  The template category: `TRANSACTIONAL`, `MARKETING`, or `OTP`.
</ResponseField>

<ResponseField name="type" type="string">
  The template media type: `TEXT`, `IMAGE`, `VIDEO`, `FILE`, `LOCATION`, `CAROUSEL`, or `ORDER_DETAILS`.
</ResponseField>

<ResponseField name="language" type="string">
  The full language name for this template (e.g., `"English"`, `"Hindi"`).
</ResponseField>

<ResponseField name="text" type="string">
  The message body text with `{{1}}`, `{{2}}`, etc. placeholders.
</ResponseField>

<ResponseField name="sample_text" type="string">
  The message body text with placeholders filled in with sample values, as submitted to WhatsApp for review.
</ResponseField>

<ResponseField name="total_parameters" type="integer">
  The total number of dynamic placeholders (`{{n}}`) in the template body.
</ResponseField>

<ResponseField name="header_text" type="string">
  The optional text header, if one was provided at submission.
</ResponseField>

<ResponseField name="footer_text" type="string">
  The optional footer text shown below the message body.
</ResponseField>

<ResponseField name="message_action_type" type="string">
  The button type attached to this template: `CTA`, `QuickReplies`, `All`, or `null` if no buttons.
</ResponseField>

<ResponseField name="call_to_action" type="array">
  An array of CTA button objects. Each object contains `type`, `button_title`, and `button_value`. Empty array if no CTA buttons.
</ResponseField>

<ResponseField name="quick_replies" type="array">
  An array of quick reply label strings. Empty array if no quick replies.
</ResponseField>

<ResponseField name="rejected_reason" type="string">
  Present only when `status` is `REJECTED`. Contains WhatsApp's explanation for why the template was not approved.
</ResponseField>

<ResponseField name="isClickTrackingEnabled" type="boolean">
  Whether URL click tracking is enabled for this template.
</ResponseField>

<ResponseField name="project_id" type="string">
  The Convo project this template belongs to.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp of when the template was created.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 timestamp of the most recent update (e.g., when the status changed from `PENDING` to `APPROVED`).
</ResponseField>

### Response Example

```json theme={null}
{
  "_id": "64a1f3bc9e4a2b001c3d7f12",
  "name": "qwerty1",
  "label": "Order Confirmation",
  "status": "APPROVED",
  "category": "TRANSACTIONAL",
  "type": "TEXT",
  "language": "English",
  "text": "Hi {{1}}, thank you for your order {{2}}! Your total is ₹{{3}}. We will notify you once it ships.",
  "sample_text": "Hi Priya, thank you for your order #ORD-4521! Your total is ₹1,299. We will notify you once it ships.",
  "total_parameters": 3,
  "header_text": "Order Confirmed ✅",
  "footer_text": "Convo Store | Reply STOP to unsubscribe",
  "message_action_type": "CTA",
  "call_to_action": [
    {
      "type": "URL",
      "button_title": "View Order",
      "button_value": "https://example.com/orders/{{1}}"
    },
    {
      "type": "Phone Number",
      "button_title": "Call Us",
      "button_value": "+919876543210"
    }
  ],
  "quick_replies": [],
  "rejected_reason": null,
  "isClickTrackingEnabled": true,
  "project_id": "YOUR_PROJECT_ID",
  "created_at": "2024-07-02T10:45:00.000Z",
  "updated_at": "2024-07-02T11:02:00.000Z"
}
```

## Error Responses

| Status                      | Description                                                         |
| --------------------------- | ------------------------------------------------------------------- |
| `404 Not Found`             | No template with the given `wa_template_id` exists in your project. |
| `500 Internal Server Error` | An unexpected server-side error occurred.                           |

```json theme={null}
{
  "error": "Not Found",
  "message": "Template with id '64a1f3bc9e4a2b001c3d7f12' not found."
}
```
