> ## 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 — List Templates

> GET /project/{project_id}/wa_template — Retrieve a paginated list of WhatsApp Message Templates in your project, with optional cursor-based pagination.

Retrieve all WhatsApp Message Templates in your project. Results are returned in reverse-chronological order (most recently created first) and support cursor-based pagination for iterating through large collections.

## Endpoint

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

## 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>

## Query Parameters

<ParamField query="limit" type="number">
  The maximum number of templates to return per page. Must be between `1` and `100`. Defaults to `10`.
</ParamField>

<ParamField query="before" type="string">
  A pagination cursor. When provided, returns the page of results immediately before this cursor. Use the `paging.cursors.before` value from a previous response.
</ParamField>

<ParamField query="after" type="string">
  A pagination cursor. When provided, returns the page of results immediately after this cursor. Use the `paging.cursors.after` value from a previous response to fetch the next page.
</ParamField>

## Request Example

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

To fetch the next page using a cursor:

```bash theme={null}
curl "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/wa_template/?limit=20&after=CURSOR_VALUE" \
  -H "X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD"
```

## Response

A successful request returns `200 OK` with a `data` array of template objects and a `paging` object for cursor navigation.

```json theme={null}
{
  "data": [
    {
      "_id": "64a1f3bc9e4a2b001c3d7f12",
      "name": "shipping_update_v1",
      "label": "Shipping Update",
      "status": "APPROVED",
      "category": "TRANSACTIONAL",
      "type": "TEXT",
      "language": "English",
      "text": "Hi {{1}}, your order {{2}} has been shipped and will arrive by {{3}}.",
      "sample_text": "Hi Priya, your order #ORD-4521 has been shipped and will arrive by Dec 10.",
      "total_parameters": 3,
      "footer_text": "Reply STOP to unsubscribe",
      "message_action_type": "CTA",
      "call_to_action": [
        {
          "type": "URL",
          "button_title": "Track Order",
          "button_value": "https://example.com/track/{{1}}"
        }
      ],
      "quick_replies": [],
      "isClickTrackingEnabled": true,
      "project_id": "YOUR_PROJECT_ID",
      "created_at": "2024-07-02T10:45:00.000Z",
      "updated_at": "2024-07-02T11:02:00.000Z"
    },
    {
      "_id": "64a1e92a7c3f1a000b9c5e88",
      "name": "promo_flash_sale",
      "label": "Flash Sale Promo",
      "status": "REJECTED",
      "rejected_reason": "The template content appears to be promotional but is categorized as TRANSACTIONAL. Please resubmit under the MARKETING category.",
      "category": "TRANSACTIONAL",
      "type": "IMAGE",
      "language": "English",
      "text": "🔥 Flash Sale! Get {{1}}% off on all orders today only. Use code {{2}} at checkout.",
      "sample_text": "🔥 Flash Sale! Get 30% off on all orders today only. Use code FLASH30 at checkout.",
      "total_parameters": 2,
      "footer_text": "",
      "message_action_type": "CTA",
      "call_to_action": [
        {
          "type": "URL",
          "button_title": "Shop Now",
          "button_value": "https://example.com/sale"
        }
      ],
      "quick_replies": [],
      "isClickTrackingEnabled": false,
      "project_id": "YOUR_PROJECT_ID",
      "created_at": "2024-07-01T08:20:00.000Z",
      "updated_at": "2024-07-01T09:15:00.000Z"
    }
  ],
  "paging": {
    "cursors": {
      "before": "eyJpZCI6IjY0YTFmM2JjOWU0YTJiMDAxYzNkN2YxMiJ9",
      "after": "eyJpZCI6IjY0YTFlOTJhN2MzZjFhMDAwYjljNWU4OCJ9"
    },
    "next": "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/wa_template/?limit=20&after=eyJpZCI6IjY0YTFlOTJhN2MzZjFhMDAwYjljNWU4OCJ9"
  }
}
```

<Note>
  Templates with `status: "REJECTED"` include a `rejected_reason` field explaining why WhatsApp declined the template. Address the stated issues before resubmitting.
</Note>

### Template Status Values

| Status     | Description                                                                                  |
| ---------- | -------------------------------------------------------------------------------------------- |
| `PENDING`  | Submitted to WhatsApp and awaiting review.                                                   |
| `APPROVED` | Approved by WhatsApp and ready to use in campaigns.                                          |
| `REJECTED` | Rejected by WhatsApp. See `rejected_reason` for details.                                     |
| `DISABLED` | Previously approved but disabled by WhatsApp due to poor user feedback or policy violations. |

## Error Responses

| Status                      | Description                                                                      |
| --------------------------- | -------------------------------------------------------------------------------- |
| `400 Bad Request`           | An invalid query parameter was provided (e.g., `limit` outside the 1–100 range). |
| `500 Internal Server Error` | An unexpected server-side error occurred.                                        |

```json theme={null}
{
  "error": "Bad Request",
  "message": "limit must be between 1 and 100."
}
```
