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

# Publications

> Créez, programmez et gérez des publications de réseaux sociaux depuis la CLI

Le groupe de commandes `posts` vous permet de lister, créer, modifier, programmer, relancer et supprimer des publications
sur n'importe quelle plateforme connectée. Toutes les commandes acceptent les options globales (`--json` par défaut,
`--table`, `--verbose`, `--api-key`, `--api-url`) et lisent les identifiants dans `SOME_API_KEY`
/ `SOME_API_URL` lorsque ces options sont omises.

## posts:list

Liste les publications de votre espace de travail avec un filtrage facultatif. Utilisez [`posts:calendar`](#postscalendar)
pour filtrer par plage de dates.

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

| Option | Description | Par défaut |
| - | - | - |
| `--status <status>` | Filtrer par statut : `SCHEDULED`, `POSTED`, `FAILED`, `PENDING`, `PENDING_APPROVAL`, `REJECTED`, `DRAFT` | – |
| `--platform <platform>` | Filtrer par plateforme (par ex. `TWITTER`, `LINKEDIN`) | – |
| `--page <number>` | Numéro de page | `1` |
| `--limit <number>` | Éléments par page (max. `100`) | `20` |

```bash Exemple theme={null}
so-me posts:list --status SCHEDULED --platform TWITTER --table
```

## posts:get

Récupère une publication par son ID avec tous ses détails.

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

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:get 550e8400-e29b-41d4-a716-446655440000
```

## posts:calendar

Récupère les publications programmées dans une plage de dates précise. Utile pour les vues de type calendrier.

```bash theme={null}
so-me posts:calendar --start <iso-date> --end <iso-date>
```

| Option | Description |
| - | - |
| `--start <date>` | Date de début (ISO 8601) **(obligatoire)** |
| `--end <date>` | Date de fin (ISO 8601) **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:calendar --start 2026-04-01T00:00:00Z --end 2026-04-30T23:59:59Z
```

## posts:create

Crée une nouvelle publication ciblant n'importe quelle plateforme connectée. Omettez `--date` pour publier immédiatement, ou
fournissez un horodatage ISO 8601 pour programmer la publication plus tard.

```bash theme={null}
so-me posts:create -c <text> [options]
```

| Option | Description | Par défaut |
| - | - | - |
| `-c, --content <text>` | Contenu de la publication **(obligatoire)** | – |
| `-s, --date <date>` | Date de programmation (ISO 8601). Omettez-la pour publier immédiatement | – |
| `-t, --type <type>` | Type de publication : `schedule` ou `draft` | `schedule` |
| `-m, --media <items>` | Chemins de fichiers locaux et/ou ID de fichiers médias, séparés par des virgules | – |
| `-a, --accounts <ids>` | ID du compte depuis lequel publier | – |
| `--post-type <type>` | Type de contenu : `TEXT`, `IMAGE`, `VIDEO`, `CAROUSEL`, `REEL`, `STORY` | `TEXT` |
| `--platform <platform>` | Plateforme sociale : `TWITTER`, `LINKEDIN`, etc. | `TWITTER` |
| `--metadata <json>` | Métadonnées propres à la plateforme, au format JSON | – |
| `-j, --json-file <path>` | Chemin d'un fichier JSON décrivant une publication complexe | – |

```bash Exemples theme={null}
# Simple text post (publishes immediately)
so-me posts:create -c "Hello world!" --platform TWITTER

# Scheduled LinkedIn post
so-me posts:create -c "Scheduled post" -s 2026-04-10T14:00:00Z --platform LINKEDIN

# Post with a local image file
so-me posts:create -c "With media" -m ./photo.jpg --post-type IMAGE

# Post referencing existing media library file IDs
so-me posts:create -c "By file id" -m file-id-1,file-id-2 --post-type IMAGE

# Save as a draft instead of scheduling
so-me posts:create -c "Work in progress" -t draft --platform TWITTER

# Complex post from a JSON file
so-me posts:create -j ./campaign.json
```

> [!NOTE]
>
> L'option `-m, --media` accepte un mélange, séparé par des virgules, de **chemins de fichiers locaux** et
> d'**UUID de fichiers médias existants**. Les fichiers locaux sont pré-signés et importés automatiquement ; les UUID
> sont récupérés depuis votre médiathèque. Chaque élément doit être un chemin de fichier lisible ou un
> UUID de fichier valide — tout le reste est rejeté. Les types de fichiers pris en charge incluent PNG, JPG, JPEG,
> GIF, WebP, SVG, MP4, MOV, AVI, WebM, MP3, WAV et PDF.

> [!TIP]
>
> Si vous ne passez pas `--accounts` et que vous avez plusieurs comptes pour la plateforme choisie, la CLI
> vous demande d'en sélectionner un de façon interactive. Lors de la création d'un brouillon (`-t draft`), le compte est
> facultatif — la publication est soumise sans compte si aucun n'est fourni ou résolu.

> [!WARNING]
>
> Lorsque `-j, --json-file` est fourni, le contenu du fichier est utilisé tel quel comme corps de la requête
> et les autres options (`-c`, `--platform`, `--media`, etc.) sont ignorées.

## posts:update

Met à jour le texte, la date de programmation ou les métadonnées propres à la plateforme d'une publication existante.

```bash theme={null}
so-me posts:update <id> [options]
```

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

| Option | Description |
| - | - |
| `-c, --content <text>` | Contenu mis à jour |
| `-s, --date <date>` | Date de programmation mise à jour (ISO 8601) |
| `--metadata <json>` | Métadonnées mises à jour propres à la plateforme, au format JSON |

```bash Exemple theme={null}
so-me posts:update 550e8400-e29b-41d4-a716-446655440000 -c "Updated content" -s 2026-04-16T10:00:00Z
```

## posts:delete

Supprime une ou plusieurs publications. La suppression d'un seul ID utilise l'endpoint de suppression unitaire ; en passant
plusieurs ID, la suppression groupée est utilisée. Une confirmation est demandée, sauf si `-y` est défini.

```bash theme={null}
so-me posts:delete <ids...> [options]
```

| Argument | Description |
| - | - |
| `<ids...>` | Un ou plusieurs ID de publications **(obligatoire)** |

| Option | Description |
| - | - |
| `-y, --yes` | Ignore la demande de confirmation |

```bash Exemples theme={null}
# Delete a single post
so-me posts:delete 550e8400-e29b-41d4-a716-446655440000

# Delete multiple posts and skip confirmation
so-me posts:delete id-1 id-2 id-3 -y
```

## posts:bulk-delete

Supprime plusieurs publications par ID en une seule requête groupée. Une confirmation est demandée, sauf si `-y` est défini.

```bash theme={null}
so-me posts:bulk-delete <ids...> [options]
```

| Argument | Description |
| - | - |
| `<ids...>` | ID des publications à supprimer **(obligatoire)** |

| Option | Description |
| - | - |
| `-y, --yes` | Ignore la demande de confirmation |

```bash Exemple theme={null}
so-me posts:bulk-delete id-1 id-2 id-3 -y
```

## posts:schedule

Programme une publication pour une date future.

```bash theme={null}
so-me posts:schedule <id> -s <date>
```

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

| Option | Description |
| - | - |
| `-s, --date <date>` | Date de programmation (ISO 8601, doit être dans le futur) **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:schedule 550e8400-e29b-41d4-a716-446655440000 -s 2026-04-15T14:00:00Z
```

## posts:unschedule

Retire une publication de la programmation.

```bash theme={null}
so-me posts:unschedule <id>
```

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:unschedule 550e8400-e29b-41d4-a716-446655440000
```

## posts:retry

Relance une publication en échec. La publication est remise en file d'attente.

```bash theme={null}
so-me posts:retry <id>
```

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:retry 550e8400-e29b-41d4-a716-446655440000
```

## posts:resubmit

Soumet à nouveau pour approbation une publication rejetée.

```bash theme={null}
so-me posts:resubmit <id>
```

| Argument | Description |
| - | - |
| `<id>` | ID de la publication **(obligatoire)** |

```bash Exemple theme={null}
so-me posts:resubmit 550e8400-e29b-41d4-a716-446655440000
```


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