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

# Detalhe do template

> Consulte um template por nome e idioma e obtenha os parâmetros que precisa preencher ao enviá-lo.

<Info>
  **Endpoint** · `GET /templates/{name}/{language}`
</Info>

<Note>
  Endpoint de **somente consulta**: retorna informação e não modifica nada. Não é enviado dentro do array `actions` — você o chama diretamente.
</Note>

Retorna o detalhe de um template aprovado, identificado pela sua chave natural `(name, language)` — a mesma que a Meta usa e a que você vê no dashboard. Além do status e da categoria, a resposta traz o bloco `parameters` **já calculado**: quais variáveis o corpo leva, se o cabeçalho espera um parâmetro e quais botões URL aceitam um valor dinâmico.

É esse o valor da consulta: a Meta serializa os marcadores (`{{1}}`, `{{2}}`, ...) dentro da estrutura `components` do template, e aqui eles chegam já interpretados. Não é preciso fazer o parse do formato da Meta para saber o que preencher.

O fluxo típico é ler primeiro e agir depois: você consulta o que o template espera e então envia a ação com os valores no lugar.

<Tip>
  Os templates são criados e aprovados no dashboard, e é lá que aparecem o nome e o idioma de cada um. Esta referência não publica a lista completa de templates do negócio, portanto o nome você tira do dashboard.
</Tip>

**Parâmetros**

Os três vão na rota. Não há parâmetros de query.

* `slug` — identificador do negócio na URL (**obrigatório**). Deve coincidir com o negócio do token.
* `name` — nome do template exatamente como aparece no dashboard (**obrigatório**). Alfanumérico e underscore. Qualquer combinação de maiúsculas e minúsculas é aceita: o servidor normaliza para minúsculas.
* `language` — código de idioma da Meta (**obrigatório**): `es`, `es_MX`, `en_US`, `pt_BR`. O servidor normaliza para o formato `lower_UPPER`.

### Resposta

```json theme={null}
{
  "data": {
    "name": "confirmacao_consulta",
    "language": "pt_BR",
    "status": "APPROVED",
    "category": "UTILITY",
    "body_text": "Olá {{1}}, sua consulta foi confirmada para as {{2}}.",
    "parameters": {
      "body_variables": [
        { "index": 1, "example": "Ana" },
        { "index": 2, "example": "10:00" }
      ],
      "header_parameter": { "type": "image", "example": "4::aW1hZ2U=" },
      "button_parameters": [
        { "index": 0, "sub_type": "url", "example": "consulta-12345" }
      ]
    }
  }
}
```

* `status` — status na Meta. A API pública expõe somente templates `APPROVED`.
* `category` — categoria da Meta: `MARKETING`, `UTILITY` ou `AUTHENTICATION`.
* `body_text` — o corpo aprovado, com seus marcadores. Pode ser `null`.
* `parameters.body_variables` — uma entrada por marcador do corpo, com o `index` (posição a partir de 1) e o `example` carregado na Meta ao aprovar o template (`null` se não houver). Array vazio quando o corpo não leva variáveis.
* `parameters.header_parameter` — `type` (`text`, `image`, `video` ou `document`) e `example`. É `null` quando o cabeçalho não espera nenhum parâmetro.
* `parameters.button_parameters` — somente os botões URL com marcador: o `index` do botão, o `sub_type` (`url`) e o `example`. Os botões de resposta rápida não aparecem aqui.

### Exemplo

Uma leitura única, sem efeitos: o `GET` não envia nada nem toca a conversa, apenas retorna o que o template espera.

```bash theme={null}
curl -X GET "https://app.1to1.ai/api/v1/public/{slug}/templates/confirmacao_consulta/pt_BR" \
  -H "Authorization: Bearer sk_1to1_sua_api_key"
```

Com essa resposta você já sabe que o corpo leva duas variáveis, então a ação de envio fica assim:

```jsonc theme={null}
{
  "type": "send_message",
  "template": {
    "name": "confirmacao_consulta",
    "language": "pt_BR",
    "body_variables": [
      { "index": 1, "value": "Ana" },
      { "index": 2, "value": "10:00" }
    ]
  }
}
```

### Erros

| Código                  | HTTP | Quando                                                                                                        |
| ----------------------- | ---- | ------------------------------------------------------------------------------------------------------------- |
| `INVALID_REQUEST`       | 400  | O `name` ou o `language` não cumprem o formato esperado.                                                      |
| `TEMPLATE_NOT_FOUND`    | 404  | Não existe um template com esse nome e idioma no negócio.                                                     |
| `TEMPLATE_AMBIGUOUS`    | 409  | O mesmo `(name, language)` existe em 2 ou mais canais de WhatsApp conectados. Entre em contato com o suporte. |
| `TEMPLATE_NOT_APPROVED` | 422  | O template existe, mas seu status na Meta é `PENDING` ou `REJECTED`.                                          |

Os códigos comuns de autenticação, permissões e limite de taxa estão em [Erros](/pt/errors).

Os dados que esta consulta retorna alimentam o campo `template` das ações de envio: [Enviar mensagem](/pt/action-groups/send-message) e [Enviar resposta rápida ou template](/pt/action-groups/send-quick-reply-or-template). O conceito de template e a janela de 24 horas estão em [Templates](/pt/templates).
