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

# Preview a Template Share Link

> Shows what a template share link gives before anyone uses it: services, memory, plan, questions and permissions, with the unverified notice.

This call returns what a share link would create, so a person can decide before using it. It works without authentication; when you are authenticated, the answer also carries an `account` object that says whether the template fits your account. It is limited per IP (20 requests per minute).

The preview never shows ids, e-mails, the manifest or the source. `verified` is always `false`: Vertra Cloud does not review private templates, and the dashboard shows "Not verified by Vertra" next to every one. Check the author and what the template does before you use it. For a closed template (`code_view` is `false`), you cannot see the code, and the values you fill in go to code you cannot read. If something looks wrong, [report the template](https://docs.vertracloud.app/api-reference/endpoint/templates/share-links/report.md).

An API key needs the `templates:read` scope when it is sent.

**token** `string` *required*

The token of the link, starting with `vtpl_`.

```bash cURL theme={null}
curl https://api.vertracloud.app/v1/share/templates/vtpl_EXAMPLE_TOKEN
```

### Response

**response** `object`

The preview.

**Toggle object**

**mode** `string`

`use` (you create your own applications from it) or `full_copy` (you get a private template of your own).

**name** `object`

The template name by language (`pt-br`, `en`, `es`).

**description** `object`

The description by language.

**category** `string`

The category.

**icon\_url** `string | null`

URL of the icon, or `null`.

**author\_display** `string | null`

The name the author chose to show.

**version** `string`

The version the link gives.

**services** `object[]`

What would be created. Each service has `id`, `kind` (`app`, `database` or `blob`), `source_type`, `database`, `blob_visibility`, `ram` (`min`, `recommended`, optional `max`, in MB), `web` and `conditional`.

**creates\_stack** `boolean`

`true` when it creates a stack.

**ram\_min\_total** `integer`

The sum of the minimum memory of the services, in MB.

**required\_plan** `string`

The lowest plan that can use it.

**image\_slots\_needed** `integer`

The custom image slots you would use: one per distinct image of the template, so it can be more than 1. A template with only code uses none.

**verified** `boolean`

Always `false`.

**code\_view** `boolean`

`false` for a [closed template](https://docs.vertracloud.app/templates/use/closed-templates.md).

**byok** `boolean`

`true` when you bring your own key for an AI model.

**inputs** `object[]`

The questions you answer when using it.

**permissions** `object`

What you may do with the apps created from it: `code_view`, `code_edit`, `ram_change`, `ram_below_min`, `ram_above_max`, `env_add`, `commands_edit`, `terminal`, `save_as_template` and `detach`.

**account** `object`

Only when authenticated: `fits`, `reasons`, `required_ram`, `free_ram`, `needs_image_slot`, `image_slots_free`, `in_use` and `in_use_count`.

```json Response theme={null}
{
  "response": {
    "mode": "use",
    "name": { "pt-br": "Bot de suporte", "en": "Support bot" },
    "description": { "pt-br": "Bot que responde o suporte." },
    "category": "bots",
    "icon_url": null,
    "author_display": "Ana",
    "version": "1.0.0",
    "services": [
      { "id": "bot", "kind": "app", "source_type": "code", "database": null, "blob_visibility": null, "ram": { "min": 256, "recommended": 512 }, "web": "none", "conditional": false }
    ],
    "creates_stack": false,
    "ram_min_total": 256,
    "required_plan": "economy",
    "image_slots_needed": 0,
    "verified": false,
    "code_view": true,
    "byok": false,
    "inputs": [],
    "permissions": {
      "code_view": true,
      "code_edit": true,
      "ram_change": true,
      "ram_below_min": false,
      "ram_above_max": true,
      "env_add": true,
      "commands_edit": true,
      "terminal": false,
      "save_as_template": false,
      "detach": true
    }
  }
}
```

### Error Responses

**code** `string`

The error code indicating the reason for the failure. Possible values:

* `SHARE_LINK_NOT_FOUND`: The token has the wrong form, does not exist, or its template was deleted (`404`).
* `SHARE_LINK_REVOKED`: The author revoked the link (`410`).
* `SHARE_LINK_EXPIRED`: The link passed its `expires_at` (`410`).
* `SHARE_LINK_EXHAUSTED`: The link reached its `max_uses` (`410`).
* `API_KEY_SCOPE_DENIED`: An API key was sent without the `templates:read` scope (`403`).

```json Error Response theme={null}
{
  "code": "SHARE_LINK_EXPIRED"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.