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

# Template gallery

> GET /v1/templates/gallery — a curated set of responsive, inbox-safe starter templates you can clone into your project.

A curated, read-only set of responsive transactional templates — table-based layout, inline CSS, bulletproof CTA buttons — that render cleanly in Gmail, Outlook, and mobile. Clone one into your project as a starting point.

**`GET /v1/templates/gallery`**

This is a static, account-independent list — the same starters for everyone. The gallery is not paginated; the full set is returned in one call. To use a starter, copy its fields into a [create](/api-reference/templates/create) call (see the Node example).

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.drin.run/v1/templates/gallery \
    -H "Authorization: Bearer $DRIN_API_KEY"
  ```

  ```typescript Node.js theme={null}
  import { DrinClient } from "@drin00/sdk";

  const drin = new DrinClient({ apiKey: process.env.DRIN_API_KEY });

  const starters = await drin.templates.gallery();

  // Clone one into your project:
  const welcome = starters.find((t) => t.id === "welcome");
  if (welcome) {
    await drin.templates.create({
      name: welcome.name,
      subject: welcome.subject,
      html: welcome.html,
      text: welcome.text,
    });
  }
  ```
</CodeGroup>

## Response

A `data` array of gallery items. Each item carries an `id`, `name`, `category` (`Onboarding`, `Authentication`, `Billing`, or `Notifications`), `description`, the `subject` / `html` / `text` bodies with merge variables, and a `sampleData` object that fills every referenced field.

```json 200 OK theme={null}
{
  "data": [
    {
      "id": "welcome",
      "name": "Welcome",
      "category": "Onboarding",
      "description": "Warm first-touch email for a new signup, with a primary CTA.",
      "subject": "Welcome to {{productName}}, {{firstName}}",
      "html": "<!doctype html> … table-based, inline-CSS markup …",
      "text": "Welcome to {{productName}}, {{firstName}} …",
      "sampleData": {
        "firstName": "Sam",
        "productName": "Acme",
        "ctaUrl": "https://acme.com/start"
      }
    }
  ]
}
```

<Tip>
  **Preview before you clone.** Pass a starter's `html` and its `sampleData` to [POST /v1/templates/preview](/api-reference/templates/preview) to see exactly how it renders before saving it.
</Tip>
