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

# Produits

> Créez, modifiez, publiez et listez vos produits.

Permissions : `products.read`, `products.write` (inclut la lecture). Guide : [Produits](https://docs.pulse-sell.com/guides/products.md).

## Lister les produits

`GET /products` — `products.read`

| Paramètre | Description |
| - | - |
| `per_page` | Résultats par page (1–100, défaut 10). |
| `cursor` | Valeur `next_cursor` de la page précédente. |
| `status` | `draft`, `published` ou `archived`. |
| `type` | Type de produit (`download`, `course`, `license_key`…). |
| `q` | Recherche dans le nom. |

```bash cURL theme={null}
curl "https://api.pulse-sell.com/v1/products?status=published" \
  -H "Authorization: Bearer $PULSESELL_API_KEY"
```

## Obtenir un produit

`GET /products/{id}` — `products.read`

```bash cURL theme={null}
curl https://api.pulse-sell.com/v1/products/cm1prod001 \
  -H "Authorization: Bearer $PULSESELL_API_KEY"
```

## Créer un produit (brouillon)

`POST /products` — `products.write` — `201`

Le produit est **toujours** créé en brouillon ; publiez-le avec `POST /products/{id}/publish`. La devise est celle du compte vendeur.

| Champ | Requis | Description |
| - | - | - |
| `name` | oui | Nom du produit. |
| `type` | oui | `download`, `course`, `license_key`… |
| `price` | oui | Prix de base. |
| `short_description`, `description`, `category`, `tags`, `images`, `features`, `benefits` | non | Contenu du produit. |
| `compare_price` | non | Prix barré. |
| `sku`, `stock` | non | Référence et stock. |
| `seo_title`, `seo_description`, `seo_keywords` | non | Référencement. |

Les autres champs (statut, devise, vendeur, modération) sont ignorés : ils ont leurs propres actions.

```bash cURL theme={null}
curl -X POST https://api.pulse-sell.com/v1/products \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name": "Guide complet", "type": "download", "price": 25, "description": "Un guide pratique."}'
```

## Modifier un produit

`PATCH /products/{id}` — `products.write`

Mêmes champs que la création, tous optionnels. Le statut ne se change que par `publish`, `unpublish` et `archive`.

```bash cURL theme={null}
curl -X PATCH https://api.pulse-sell.com/v1/products/cm1prod001 \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"price": 29, "short_description": "Nouvelle accroche"}'
```

## Publier, dépublier, archiver

`POST /products/{id}/publish` — `POST /products/{id}/unpublish` — `POST /products/{id}/archive` — `products.write`

`publish` applique les mêmes conditions et la même modération que le tableau de bord ; sinon `422` avec le premier point bloquant. `unpublish` remet en brouillon. `archive` retire le produit de la vente en le conservant.

```bash cURL theme={null}
curl -X POST https://api.pulse-sell.com/v1/products/cm1prod001/publish \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

## Supprimer un produit

`DELETE /products/{id}` — `products.write` — `204`

Suppression douce : les ventes passées restent intactes.

```bash cURL theme={null}
curl -X DELETE https://api.pulse-sell.com/v1/products/cm1prod001 \
  -H "Authorization: Bearer $PULSESELL_API_KEY"
```


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