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

# Modèles de contenu

> Générez des visuels prêts à publier (mèmes, cartes de citation, témoignages) à partir de modèles prédéfinis

Les modèles de contenu sont des visuels générés côté serveur — mèmes, cartes de citation, comparaisons avant/après, annonces, témoignages et images de réaction — que vous remplissez avec vos propres textes, couleurs et images. Les images générées arrivent automatiquement dans votre [médiathèque](/fr/cli/media.md), prêtes à être jointes à une publication.

## Catégories disponibles

| Slug de catégorie | Modèle |
| - | - |
| `meme` | Mème classique (texte du haut / texte du bas) |
| `quote_card` | Carte de citation à vos couleurs |
| `before_after` | Comparaison côte à côte |
| `reaction` | Image de réaction |
| `announcement` | Carte d'annonce de produit ou d'actualité |
| `testimonial` | Carte de témoignage client |

## templates:list

Parcourt les modèles disponibles, éventuellement filtrés par catégorie.

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

| Option | Description |
| - | - |
| `--category <name>` | Filtrer par catégorie (voir les slugs ci-dessus) |
| `--page <number>` | Numéro de page (par défaut : 1) |
| `--limit <number>` | Éléments par page (par défaut : 20) |

```bash Exemples theme={null}
# Every active template
so-me templates:list

# Only quote cards
so-me templates:list --category quote_card

# Compact table
so-me templates:list --table

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

## templates:get

Récupère un modèle par son ID, y compris son schéma `fields[]` — utilisez-le pour voir quelles entrées le modèle attend (libellés, types, `required`, `maxLength`, `defaultValue`, etc.) avant de le générer.

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

```bash Exemples theme={null}
# Full template definition
so-me templates:get 550e8400-e29b-41d4-a716-446655440000

# Just the field schema
so-me templates:get 550e8400-... | jq '.fields'

# Required fields only
so-me templates:get 550e8400-... | jq '.fields[] | select(.required) | .id'
```

## templates:render

Génère un modèle avec vos propres valeurs de champs. Le résultat est une image importée dans votre médiathèque ; la réponse contient l'`imageUrl` et le nouveau `fileId` que vous pouvez transmettre à [`posts:create`](/fr/cli/posts#postscreate).

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

| Option | Description |
| - | - |
| `-d, --data <json-string>` | Objet JSON en ligne associant les ID de champs à leurs valeurs |
| `-f, --file <path>` | Chemin d'un fichier JSON contenant les valeurs des champs |

Exactement une des options `--data` ou `--file` est requise. Si aucune n'est fournie, la commande se termine avec une erreur ; le JSON doit être un objet dont les clés sont les `id` des champs du modèle.

```bash Exemples theme={null}
# Inline values for a quote card
so-me templates:render 550e8400-... \
  --data '{"quote":"Ship early. Ship often.","author":"CLI test","bg":"#111","fg":"#fff"}'

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

# Render, then immediately schedule a post with the resulting image
RESULT=$(so-me templates:render 550e8400-... --data '{"quote":"..."}')
URL=$(echo "$RESULT" | jq -r '.imageUrl')
# Find the fileId that was added to your media library
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]
>
> La validation des champs obligatoires se fait côté serveur. Appelez d'abord `templates:get <id>` pour voir exactement quels champs sont requis et leurs contraintes `maxLength` — la génération renverra une erreur 400 si un champ obligatoire manque.

> [!WARNING]
>
> Les modèles de contenu sont différents des **réponses enregistrées de la boîte de réception** (courts extraits de texte pour répondre aux messages privés et commentaires). Pour celles-ci, utilisez [inbox:saved-replies](/fr/cli/inbox.md) / `inbox:create-reply`.
>
> Ils sont aussi différents des **modèles de message WhatsApp** (modèles sortants pré-approuvés exigés par Meta pour WhatsApp Business), documentés dans [Modèles WhatsApp](/fr/inbox/whatsapp-templates.md).


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