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

# Modelos de conteúdo

> Gere gráficos prontos para postar (memes, cards de citação, depoimentos) a partir de modelos predefinidos

Os modelos de conteúdo são gráficos renderizados no servidor (memes, cards de citação, comparações antes/depois, anúncios, depoimentos e imagens de reação) que você preenche com seus próprios textos, cores e imagens. As imagens renderizadas vão automaticamente para a sua [biblioteca de mídia](/pt-BR/cli/media.md), prontas para serem anexadas a um post.

## Categorias disponíveis

| Slug da categoria | Modelo |
| - | - |
| `meme` | Meme clássico (texto superior / texto inferior) |
| `quote_card` | Card de citação com a sua marca |
| `before_after` | Comparação lado a lado |
| `reaction` | Imagem de reação |
| `announcement` | Card de anúncio de produto ou novidade |
| `testimonial` | Card de depoimento de cliente |

## templates:list

Navegue pelos modelos disponíveis, com filtro opcional por categoria.

```bash theme={null}
so-me templates:list [options]
```

| Opção | Descrição |
| - | - |
| `--category <name>` | Filtra por categoria (veja os slugs acima) |
| `--page <number>` | Número da página (padrão: 1) |
| `--limit <number>` | Itens por página (padrão: 20) |

```bash Exemplos theme={null}
# Todos os modelos ativos
so-me templates:list

# Somente cards de citação
so-me templates:list --category quote_card

# Tabela compacta
so-me templates:list --table

# Somente os IDs
so-me templates:list | jq -r '.data[].id'
```

## templates:get

Busca um modelo pelo ID, incluindo o esquema de `fields[]`. Use-o para ver quais entradas o modelo espera (rótulos, tipos, `required`, `maxLength`, `defaultValue` etc.) antes de renderizar.

```bash theme={null}
so-me templates:get <template-id>
```

```bash Exemplos theme={null}
# Definição completa do modelo
so-me templates:get 550e8400-e29b-41d4-a716-446655440000

# Somente o esquema dos campos
so-me templates:get 550e8400-... | jq '.fields'

# Somente os campos obrigatórios
so-me templates:get 550e8400-... | jq '.fields[] | select(.required) | .id'
```

## templates:render

Renderiza um modelo com os valores dos seus campos. A saída é uma imagem enviada para a sua biblioteca de mídia; a resposta contém a `imageUrl` e o novo `fileId`, que você pode passar para [`posts:create`](/pt-BR/cli/posts#postscreate).

```bash theme={null}
so-me templates:render <template-id> [--data <json> | --file <path>]
```

| Opção | Descrição |
| - | - |
| `-d, --data <json-string>` | Objeto JSON inline que mapeia IDs de campos para valores |
| `-f, --file <path>` | Caminho de um arquivo JSON com os valores dos campos |

É obrigatório informar exatamente um entre `--data` e `--file`. Se nenhum for informado, o comando termina com erro; o JSON deve ser interpretado como um objeto cujas chaves são os `id`s dos campos do modelo.

```bash Exemplos theme={null}
# Valores inline para um card de citação
so-me templates:render 550e8400-... \
  --data '{"quote":"Ship early. Ship often.","author":"CLI test","bg":"#111","fg":"#fff"}'

# Valores vindos de um arquivo
cat > values.json <<'EOF'
{
  "headline": "Now launching",
  "subheadline": "v2.0 in closed beta",
  "bg": "#5417d7"
}
EOF
so-me templates:render 550e8400-... --file values.json

# Renderizar e, em seguida, agendar um post com a imagem resultante
RESULT=$(so-me templates:render 550e8400-... --data '{"quote":"..."}')
URL=$(echo "$RESULT" | jq -r '.imageUrl')
# Encontre o fileId que foi adicionado à sua biblioteca de mídia
FILE_ID=$(so-me media:search "$(basename $URL)" | jq -r '.data[0].id')
so-me posts:create -c "Quote of the day" --post-type IMAGE -m $FILE_ID --platform TWITTER
```

> [!TIP]
>
> A validação dos campos obrigatórios acontece no servidor. Chame `templates:get <id>` antes para ver exatamente quais campos são obrigatórios e suas restrições de `maxLength`; a renderização retorna 400 se algum campo obrigatório estiver ausente.

> [!WARNING]
>
> Os modelos de conteúdo são diferentes das **respostas salvas da caixa de entrada** (trechos curtos de texto para responder a DMs/comentários). Para essas, use [inbox:saved-replies](/pt-BR/cli/inbox.md) / `inbox:create-reply`.
>
> Eles também são diferentes dos **modelos de mensagem do WhatsApp** (modelos de envio pré-aprovados exigidos pela Meta para o WhatsApp Business), documentados em [Modelos do WhatsApp](/pt-BR/inbox/whatsapp-templates.md).


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