
# Obtenir un point de terminaison webhook

`GET /v1/webhook-endpoints/{endpoint_id}` · autorisation `webhook-endpoints:read` · tous les forfaits

Renvoie un point de terminaison webhook. L'en-tête `ETag` correspond à la version du point de terminaison et à la valeur `If-Match` pour la [mise à jour](update.md) et la [suppression](delete.md). Le secret de signature n'est jamais renvoyé ici.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `endpoint_id` | path | oui | Identifiant du point de terminaison webhook (`whe_…`). |

## Réponse

`200 OK` avec le point de terminaison.

| Champ | Description |
|---|---|
| `id` | Identifiant du point de terminaison (`whe_…`). |
| `key` | Clé stable, unique dans l'environnement. |
| `url` | URL du récepteur. |
| `description` | Texte libre ; chaîne vide si absent. |
| `event_types` | Types d'événements du catalogue sélectionnés ; vide signifie tous les types, à l'exception des types à fort volume. |
| `event_schema_versions` | Substitutions de version de schéma par type d'événement. |
| `payload_mode` | `thin` ou `full`. |
| `status` | `enabled`, `disabled_by_user`, `disabled_by_failure` (aucune livraison réussie pendant 5 jours et au moins 10 livraisons abandonnées) ou `disabled_by_receiver` (le récepteur a répondu `410 Gone`). Réactivez avec la [mise à jour](update.md) et `"status": "enabled"` ; utilisez le rejeu pour les événements de la période désactivée. |
| `rate_limit_per_second` | Plafond de débit des livraisons pour ce point de terminaison. |
| `previous_secret_expires_at` | Après une rotation, la fin de la période pendant laquelle l'ancien secret signe encore les livraisons ; sinon `null`. |
| `last_success_at` | Dernière livraison réussie, ou `null`. |
| `failing_since` | Début des livraisons en échec consécutives, ou `null`. |
| `version` | Version ; égale à l'en-tête `ETag`. |
| `created_at`, `updated_at` | Horodatages. |

```json
{
  "id": "whe_01k8a3m5q7t9v1w3x5y7z9b2c4",
  "key": "crm-sync",
  "url": "https://hooks.example.com/keenauth",
  "description": "CRM sync",
  "event_types": ["user.created", "user.updated"],
  "event_schema_versions": {"user.created": 1},
  "payload_mode": "thin",
  "status": "enabled",
  "rate_limit_per_second": 50,
  "previous_secret_expires_at": null,
  "last_success_at": "2026-10-26T09:12:00Z",
  "failing_since": null,
  "version": 3,
  "created_at": "2026-10-26T09:00:00Z",
  "updated_at": "2026-10-26T10:00:00Z"
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 404 | `not_found` | Aucun point de terminaison de ce type dans cet environnement (également pour le point de terminaison d'un autre environnement ou un identifiant mal formé). |
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant ne dispose pas de `webhook-endpoints:read`. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; réessayez après la durée indiquée par `Retry-After`. |
| 503 | `service_unavailable` | L'administration des webhooks est temporairement indisponible ; réessayez après la durée indiquée par `Retry-After`. |

## Exemple

```bash
curl -i https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4 \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI : `keenauth webhook-endpoints get whe_01k8a3m5q7t9v1w3x5y7z9b2c4`
