# Aperçu de l'API Customer Journey

L'API Customer Journey permet à un backend de gérer les [Customer Journeys](/fr/product/customer-journey/pushwoosh-journey-overview/) par programmation : créer et modifier les définitions de parcours, faire passer les parcours par leur cycle de vie (démarrer, mettre en pause, terminer, brouillon, archiver), déclencher un parcours en cours depuis vos propres systèmes, et extraire les statistiques par parcours.

Il s'agit de la même API que celle utilisée par l'éditeur de Customer Journey, exposée via REST/JSON à travers un pont gRPC-Gateway.

## URL de base

```
https://journey.pushwoosh.com
```

<Aside type="tip">
Si vous utilisez une région dédiée ou un déploiement privé, confirmez l'URL de base exacte avec votre Customer Success Manager Pushwoosh.
</Aside>

## Authentification

Chaque requête doit inclure un en-tête `Authorization` avec un [jeton d'accès API](/fr/developer/api-reference/api-access-token/#server-api-token) Pushwoosh côté serveur :

```
Authorization: Api VOTRE_JETON_API
```

<Aside type="note">
Le jeton est lié au compte qui le possède. Toutes les opérations s'appliquent à ce compte. Utilisez le même jeton que vous émettez pour d'autres appels API de serveur à serveur, et ne l'exposez jamais dans les applications clientes.
</Aside>

## Méthodes

### Gérer les parcours

- [Cycle de vie](/fr/developer/api-reference/customer-journey-api/lifecycle/) : `POST /api/v3/journeygateway/{action}`. Démarrer, mettre en pause, terminer, mettre en brouillon ou archiver un parcours par son UUID.
- [Créer et mettre à jour](/fr/developer/api-reference/customer-journey-api/create-update/) : `POST /api/v3/journeygateway` et `PUT /api/v3/journeygateway/{uuid}`. Créer une nouvelle définition de parcours ou remplacer une définition existante.

### Déclencher les parcours

- [Démarrer par API](/fr/developer/api-reference/customer-journey-api/start-by-api/) : `POST /api/journey/{id}/start/external`. Injecter des utilisateurs dans le point d'entrée API d'un parcours déjà en cours d'exécution.

### Statistiques et audience

- [Obtenir les statistiques du Journey](/fr/developer/api-reference/customer-journey-api/statistics/) : `GET /api/journey/{id}/statistics/external`. Métriques de livraison et de conversion par point.
- [Retirer des utilisateurs des parcours](/fr/developer/api-reference/customer-journey-api/drop-users/) : `POST /api/journey/drop-users/external`. Retirer des utilisateurs de tous les parcours actifs ou de parcours sélectionnés.

### Référence

- [Objet Journey](/fr/developer/api-reference/customer-journey-api/journey-object/) : la forme de la définition du parcours (info, params, points, comments) retournée par les méthodes de cycle de vie, de création et de mise à jour.
- [Référence des points](/fr/developer/api-reference/customer-journey-api/point-reference/) : la structure `point_data` pour chaque type de point : éléments d'entrée, de synchronisation, de division, d'action et de messagerie.

## Démarrage du cycle de vie vs Démarrage par API

Customer Journey a deux opérations qui semblent similaires mais se comportent différemment.

Le [démarrage du cycle de vie](/fr/developer/api-reference/customer-journey-api/lifecycle/#endpoints) change l'état du parcours (par exemple, de Brouillon à **En cours**).
Le [démarrage par API](/fr/developer/api-reference/customer-journey-api/start-by-api/) injecte des utilisateurs dans un parcours déjà en cours d'exécution. Le tableau ci-dessous les compare côte à côte.

| | Démarrage du cycle de vie | Démarrage par API |
|---|---|---|
| Point de terminaison | `POST /api/v3/journeygateway/start` | `POST /api/journey/{id}/start/external` |
| Ce que ça fait | Active le parcours et le fait passer à l'état **En cours** | Injecte des utilisateurs dans le **point d'entrée API** d'un parcours déjà en cours d'exécution |
| État du parcours requis | Brouillon ou En pause | En cours (avec un point de Démarrage API) |
| Fréquence d'exécution | Une fois par changement d'état | De manière répétée, au fur et à mesure que les utilisateurs doivent entrer |

## Format des requêtes et des réponses

- Type de contenu : `application/json`.
- Les noms de champs `v3` utilisent le `snake_case`. Les valeurs Enum sont sérialisées sous forme de chaînes de caractères (par exemple, `"STATUS_RUNNING"`, `"POINT_TYPE_SEND_PUSH"`).
- Les méthodes gRPC-Gateway (`/api/v3/journeygateway/...`) retournent l'[objet journey](/fr/developer/api-reference/customer-journey-api/journey-object/) en cas de succès et l'enveloppe d'erreur standard gRPC-Gateway en cas d'échec : `{ "code": ..., "message": ..., "details": [...] }`.
- Les anciennes méthodes externes (`/api/journey/...`) retournent un corps JSON spécifique à la méthode en cas de succès et `{ "success": false, "message": ... }` avec un code HTTP `400` en cas d'erreurs de validation.

## Démarrage rapide

```bash title="Démarrer un parcours"
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway/start \
  -H "Authorization: Api VOTRE_JETON_API" \
  -H "Content-Type: application/json" \
  -d '{ "uuid": "11111111-2222-3333-4444-555555555555" }'
```

## Prochaines étapes

<CardGrid>
  <LinkCard title="Cycle de vie" href="/developer/api-reference/customer-journey-api/lifecycle/" />
  <LinkCard title="Créer et mettre à jour" href="/developer/api-reference/customer-journey-api/create-update/" />
  <LinkCard title="Démarrer par API" href="/developer/api-reference/customer-journey-api/start-by-api/" />
  <LinkCard title="Obtenir les statistiques du Journey" href="/developer/api-reference/customer-journey-api/statistics/" />
  <LinkCard title="Retirer des utilisateurs des parcours" href="/developer/api-reference/customer-journey-api/drop-users/" />
  <LinkCard title="Objet Journey" href="/developer/api-reference/customer-journey-api/journey-object/" />
  <LinkCard title="Référence des points" href="/developer/api-reference/customer-journey-api/point-reference/" />
</CardGrid>