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

# API publique (V2)

L'API publique (V2) est une API REST permettant de lire les données brutes des
applications : métriques, traces, journaux, métriques Kubernetes et statistiques
de déploiement. Elle complète l'[API GraphQL](/api/graphql), qui gère les
modèles tels que les apps, les incidents, les tableaux de bord et les alertes.
En règle générale, utilisez l'API REST pour lire les données et l'API GraphQL
pour gérer la configuration.

<Tip>
  Si vous créez un agent ou un assistant IA, [AppSignal MCP](/mcp-server)
  expose ces données directement aux agents — vous n'avez peut-être pas besoin
  d'appeler cette API vous-même.
</Tip>

## URL de base

Tous les points de terminaison sont servis sous `/api/v2` sur le domaine
`appsignal.com` :

<CodeGroup>
  ```shell Base URL theme={null}
  https://appsignal.com/api/v2
  ```
</CodeGroup>

## Authentification

Les requêtes sont authentifiées avec votre jeton d'API personnel, transmis soit
en tant que jeton bearer, soit en tant que paramètre de requête. Vous pouvez
trouver votre jeton dans l'[écran des paramètres
personnels](https://appsignal.com/users/edit).

<CodeGroup>
  ```shell Authorization header theme={null}
  curl -H "Authorization: Bearer YOUR-PERSONAL-API-TOKEN" \
    https://appsignal.com/api/v2/metrics/names/YOUR-SITE-ID
  ```

  ```shell Query parameter theme={null}
  curl "https://appsignal.com/api/v2/metrics/names/YOUR-SITE-ID?token=YOUR-PERSONAL-API-TOKEN"
  ```
</CodeGroup>

Votre jeton donne accès aux mêmes sites et organisations que ceux que vous
pouvez voir dans AppSignal. La plupart des requêtes sont limitées à un seul
`site_id` ; les points de terminaison de traçage utilisent un tableau
`site_ids` afin de pouvoir effectuer des recherches sur plusieurs sites. L'API
vérifie que votre jeton a accès à chaque site demandé avant de renvoyer les
données. Pour vérifier un jeton lui-même, appelez `GET /api/v2/auth`.

Votre `site_id` est l'ID figurant dans l'URL de votre app :
`https://appsignal.com/<organization>/sites/<SITE_ID>`. Pour les requêtes de
journaux, vous avez également besoin d'un ID de source de journal — voir
[trouver vos IDs de site et de
source](/api/v2/logs#finding-your-site-and-source-ids).

## Vérifier un jeton

<CodeGroup>
  ```shell Endpoint theme={null}
  GET /api/v2/auth
  ```
</CodeGroup>

Renvoie un objet JSON avec un `message` confirmant l'ID de l'utilisateur
authentifié.

## Requêtes et réponses

La plupart des points de terminaison utilisent `POST` avec un corps JSON et
renvoient du JSON. Les recherches en lecture seule (telles que la liste des
noms de métriques) utilisent `GET` avec des paramètres de chemin. Définissez
`Content-Type: application/json` sur les requêtes comportant un corps.

Les heures sont des chaînes ISO 8601. La plupart des corps de requête prennent
une plage temporelle `from` et `to` plus soit un `site_id`, soit, pour les
points de terminaison de traçage, un tableau `site_ids`.

Pour une référence complète et générée automatiquement de chaque point de
terminaison, requête et type de réponse, consultez la [référence de l'API
REST](https://appsignal.com/api/v2/docs).

## Réponses d'erreur

Tout point de terminaison peut renvoyer ces réponses non-2xx :

| Statut | Signification                              | Corps                                         |
| ------ | ------------------------------------------ | --------------------------------------------- |
| `401`  | Jeton manquant ou invalide                 | `{ "error": "Unauthorized" }`                 |
| `404`  | Route ou ressource introuvable             | `{ "error": "Not found" }`                    |
| `422`  | Requête analysée mais impossible à traiter | Enveloppe d'erreur (voir la section suivante) |
| `500`  | Échec côté serveur non géré                | `{ "error": "<message>" }`                    |

### Enveloppe 422

Chaque réponse `422` utilise la même enveloppe, vous pouvez donc les gérer en
un seul endroit :

<CodeGroup>
  ```json 422 response theme={null}
  {
    "error": "<stable_slug>",
    "message": "<human-readable message>",
    "details": {}
  }
  ```
</CodeGroup>

* `error` : un slug stable et lisible par machine. Branchez-vous dessus dans votre code.
* `message` : un message lisible par l'humain, sûr à afficher.
* `details` : un objet optionnel dont la forme dépend de `error`.

Un slug que vous pourrez rencontrer est `legacy_log_query_syntax`, renvoyé
lorsqu'une requête de journaux utilise l'ancienne syntaxe
`attributes.<name>_<type>`. Voir [requêtes de journaux](/api/v2/logs) pour le
langage de requête actuel.

## Points de terminaison

### Métriques

| Méthode | Chemin                                                  | Description                                                                        |
| ------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `POST`  | `/api/v2/metrics/timeseries`                            | Interroger les données de métriques sous forme de série temporelle                 |
| `POST`  | `/api/v2/metrics/list`                                  | Interroger les données de métriques agrégées sous forme de liste avec regroupement |
| `GET`   | `/api/v2/metrics/names/{site_id}`                       | Lister tous les noms de métriques pour un site                                     |
| `GET`   | `/api/v2/metrics/type_and_tags/{site_id}/{metric_name}` | Obtenir le type d'une métrique et les tags disponibles                             |

Voir la [référence des métriques](/api/v2/metrics).

### Traçage

| Méthode | Chemin                                | Description                                               |
| ------- | ------------------------------------- | --------------------------------------------------------- |
| `POST`  | `/api/v2/tracing/locator`             | Localiser une trace à travers les sites par ID de trace   |
| `POST`  | `/api/v2/tracing/trace`               | Obtenir tous les spans d'une trace                        |
| `POST`  | `/api/v2/tracing/trace/performance`   | Obtenir les spans d'une trace de performance              |
| `POST`  | `/api/v2/tracing/trace/error`         | Obtenir les spans d'une trace d'erreur                    |
| `POST`  | `/api/v2/tracing/traces/performance`  | Lister les traces de performance                          |
| `POST`  | `/api/v2/tracing/traces/errors`       | Lister les traces d'erreur                                |
| `POST`  | `/api/v2/tracing/actions`             | Lister les actions de performance avec métriques agrégées |
| `POST`  | `/api/v2/tracing/action_edges`        | Lister les arêtes amont et aval pour une action           |
| `POST`  | `/api/v2/tracing/site_edges`          | Lister les arêtes de dépendances de services pour un site |
| `POST`  | `/api/v2/tracing/slow_events`         | Lister les événements lents avec statistiques agrégées    |
| `POST`  | `/api/v2/tracing/slow_events/actions` | Lister les actions liées à un événement lent              |

Voir la [référence de traçage](/api/v2/traces).

### Journaux

| Méthode | Chemin               | Description                      |
| ------- | -------------------- | -------------------------------- |
| `POST`  | `/api/v2/logs/lines` | Rechercher des lignes de journal |

Voir la [référence des journaux](/api/v2/logs).

### Kubernetes

| Méthode | Chemin                             | Description                                                 |
| ------- | ---------------------------------- | ----------------------------------------------------------- |
| `POST`  | `/api/v2/kubernetes/nodes`         | Interroger les métriques de nœud                            |
| `POST`  | `/api/v2/kubernetes/pods`          | Interroger les métriques de pod                             |
| `POST`  | `/api/v2/kubernetes/pods/overview` | Interroger la vue d'ensemble des pods avec labels et statut |

Voir la [référence Kubernetes](/api/v2/kubernetes).

### Déploiements

| Méthode | Chemin                  | Description                                               |
| ------- | ----------------------- | --------------------------------------------------------- |
| `POST`  | `/api/v2/deploys/stats` | Obtenir les statistiques de déploiement pour une révision |

Voir la [référence des déploiements](/api/v2/deploys).

### Check-ins

| Méthode | Chemin                        | Description                                            |
| ------- | ----------------------------- | ------------------------------------------------------ |
| `POST`  | `/api/v2/check_ins/test_cron` | Tester et valider une expression de planification cron |

Voir la [référence des check-ins](/api/v2/check-ins).

### Visuels enregistrés

| Méthode | Chemin                           | Description                                    |
| ------- | -------------------------------- | ---------------------------------------------- |
| `GET`   | `/api/v2/saved_visuals/{id}`     | Récupérer un visuel enregistré au format JSON  |
| `GET`   | `/api/v2/saved_visuals/{id}/csv` | Télécharger un visuel enregistré au format CSV |

Les points de terminaison des visuels enregistrés ne nécessitent pas
d'authentification. Voir la [référence des visuels
enregistrés](/api/v2/saved-visuals).

### Système

| Méthode | Chemin         | Description                     |
| ------- | -------------- | ------------------------------- |
| `GET`   | `/api/v2/auth` | Vérifier qu'un jeton est valide |
