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

# Point de terminaison public - Erreurs

Ce point de terminaison de l'API Error est fourni pour ajouter des erreurs
supplémentaires à AppSignal, lorsqu'une intégration existante ne peut pas être
utilisée ou que le langage utilisé n'est pas (encore) pris en charge.

## Point de terminaison

Méthode de requête : `POST`

| Point de terminaison                                                           | Description                        |
| ------------------------------------------------------------------------------ | ---------------------------------- |
| [https://appsignal-endpoint.net/errors](https://appsignal-endpoint.net/errors) | Accepte les données formatées JSON |

## Paramètres d'URL

| Paramètre | Type   | Description                                                                                                                       |
| --------- | ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| api\_key  | String | Clé d'API **Front-end**, peut être trouvée dans les [paramètres de l'application](https://appsignal.com/redirect-to/app?to=info). |

```shell Shell theme={null}
https://appsignal-endpoint.net/errors?api_key=<api_key>
```

## Paramètres du corps

Le corps de la requête POST doit contenir un objet JSON, formaté comme suit :

| Paramètre   | Type                     | Description                                                                                                                                                                             |
| ----------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| timestamp   | Integer                  | Timestamp (Epoch) auquel l'erreur s'est produite                                                                                                                                        |
| action      | String                   | (Optionnel) Nom de l'action où l'erreur s'est produite (par exemple `BlogpostController#show` ou `UserInfoLambda#perform`)                                                              |
| namespace   | String                   | Espace de noms où l'erreur s'est produite (par exemple `frontend` ou `lambda`)                                                                                                          |
| error       | Error                    | Objet Error, voir la description ci-dessous                                                                                                                                             |
| revision    | String                   | (Optionnel) Hash complet de la révision (GIT) de l'application                                                                                                                          |
| tags        | `Object<String, String>` | (Optionnel) Tags pour filtrer l'échantillon ou fournir un contexte supplémentaire. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple `{"account_id": "abc-123"}`)  |
| params      | `Object<String, String>` | (Optionnel) Paramètres qui ont été passés à la fonction où l'erreur s'est produite. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple `{"id": "abc-123"}`)         |
| environment | `Object<String, String>` | (Optionnel) Valeurs d'environnement définies au moment où l'erreur s'est produite. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple `{"REGION": "eu-central-1"}`) |
| breadcrumbs | `Array<Breadcrumb>`      | (Optionnel) Tableau de breadcrumbs, enregistrés avant que l'erreur ne se produise. Voir ci-dessous la description de l'objet Breadcrumb                                                 |
| language    | String                   | (Optionnel) Chaîne de langage, utilisée pour formater la backtrace. Les valeurs acceptées sont `ruby`, `javascript`. Laissez vide lorsque vous utilisez un autre langage                |

Error :

| Paramètre | Type            | Description                                                                    |
| --------- | --------------- | ------------------------------------------------------------------------------ |
| name      | String          | Nom de l'erreur (par exemple `StandardError`)                                  |
| message   | String          | (Optionnel) Message d'erreur                                                   |
| backtrace | `Array<String>` | (Optionnel) Tableau des lignes de backtrace, chaque ligne doit être une chaîne |

Breadcrumb :

| Paramètre | Type                     | Description                                                                  |
| --------- | ------------------------ | ---------------------------------------------------------------------------- |
| category  | String                   | Catégorie pour étiqueter l'événement (par exemple `network` ou `navigation`) |
| action    | String                   | Informations contextuelles liées à l'événement                               |
| message   | String                   | (optionnel) Un message de log ou une autre chaîne à envoyer à AppSignal      |
| metadata  | `Object<String, String>` | (optionnel) Un objet de métadonnées lié à l'événement                        |

Par exemple :

<CodeGroup>
  ```json JSON theme={null}
  {
    "action": "BlogpostController#show",
    "namespace": "frontend",
    "timestamp": 1559201249,
    "error": {
      "name": "StandardError",
      "message": "Error message",
      "backtrace": ["backtrace/line:1", "backtrace/line:2"]
    },
    "environment": {
      "os": "windows",
      "agent": "super secret user agent"
    },
    "params": {
      "foo": "bar"
    },
    "tags": {
      "account_id": "abc-123"
    },
    "revision": "revision-abc",
    "breadcrumbs": [
      {
        "timestamp": 1559201249,
        "category": "request",
        "action": "http://google.com",
        "message": "request failed",
        "metadata": {
          "code": "not_found"
        }
      }
    ],
    "language": "javascript"
  }
  ```
</CodeGroup>

## Exemple

<CodeGroup>
  ```ruby Ruby theme={null}
  require "uri"
  require "json"
  require "net/http"

  url = URI("https://appsignal-endpoint.net/errors?api_key=FRONTEND-API-KEY")

  https = Net::HTTP.new(url.host, url.port)
  https.use_ssl = true

  request = Net::HTTP::Post.new(url)
  request["Content-Type"] = "application/json"
  request.body = JSON.dump({
    "action": "BlogpostController#show",
    "namespace": "frontend",
    "timestamp": 1640327525,
    "error": {
      "name": "StandardError",
      "message": "Error message",
      "backtrace": [
        "backtrace/line:1",
        "backtrace/line:2"
      ]
    },
    "environment": {
      "os": "windows",
      "agent": "super secret user agent"
    },
    "params": {
      "foo": "bar"
    },
    "tags": {
      "account_id": "abc-123"
    },
    "revision": "revision-abc-123",
    "breadcrumbs": [
      {
        "timestamp": 1640327525,
        "category": "request",
        "action": "http://google.com",
        "message": "request failed",
        "metadata": {
          "code": "not_found"
        }
      }
    ],
    "language": "javascript"
  })

  response = https.request(request)
  puts response.read_body
  ```
</CodeGroup>

<Tip>
  **Note** : Cet endpoint est optimisé pour de grands volumes de trafic et ne
  valide pas la clé API ni la charge utile. Une réponse `200` (`OK`) est renvoyée lorsque la
  taille du corps est dans la limite de `200k`. Cela ne signifie pas que la requête est
  acceptée lors de sa réception.
</Tip>
