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

## Index des échantillons

Points de terminaison \[`GET`] :

| Point de terminaison                     | Description                                 |
| ---------------------------------------- | ------------------------------------------- |
| `/api/[app_id]/samples.json`             | Renvoie **TOUS** les types d'échantillons   |
| `/api/[app_id]/samples/performance.json` | Renvoie les échantillons de **performance** |
| `/api/[app_id]/samples/errors.json`      | Renvoie les échantillons d'**erreurs**      |

Paramètres :

| Param       | Type              |                                     Description |
| ----------- | ----------------- | ----------------------------------------------: |
| action\_id  | string            |       Exemple : `BlogPostsController-hash-show` |
| exception   | string            |                         Exemple : NoMethodError |
| since       | timestamp/integer |                      Tous les horaires sont UTC |
| before      | timestamp/integer |                      Tous les horaires sont UTC |
| limit       | integer           |      Nombre d'entrées renvoyées (par défaut 10) |
| count\_only | boolean           | (true/false) Pour renvoyer uniquement un nombre |

Échappez les actions en remplaçant :

* `#` par `-hash-`
* `/` par `-slash-`
* `.` par `-dot-`

Ainsi, `BlogPostsController#show` devient : `BlogPostsController-hash-show`

Un exemple de requête complète serait :

```shell Shell theme={null}
https://appsignal.com/api/5114f7e38c5ce90000000011/samples.json?token=HseUe&action_id=AccountsController-hash-index&exception=ActionView::Template::Error&since=1374843246
```

### Résultat

Ce point de terminaison renvoie le JSON suivant (un échantillon lent et un
échantillon d'erreur) :

<CodeGroup>
  ```json JSON theme={null}
  {
    "count": 2,
    "log_entries": [
      {
        "id": "51f29e7b183d700800150358_SlowController#show_1476962400",
        "action": "SlowController#show",
        "path": "/slow-request",
        "duration": 3182.545407,
        "status": 200,
        "time": 1476962400,
        "is_exception": false,
        "exception": {
          "name": null
        }
      },
      {
        "id": "57f653fa16b7e24cb0dc9e2b_ErrorController#trigger_1475761080",
        "action": "ErrorController#trigger",
        "path": "/error-request",
        "duration": null,
        "status": null,
        "time": 1475761080,
        "is_exception": true,
        "exception": {
          "name": "ActionView::Template::Error"
        }
      }
    ]
  }
  ```
</CodeGroup>

## Affichage d'un échantillon

Point de terminaison \[`GET`] : `/api/[app_id]/samples/[id].json`

Paramètres :

| Param | Type   |                                                                                         Description |
| ----- | ------ | --------------------------------------------------------------------------------------------------: |
| id    | string | ID d'échantillon assaini (exemple : `51f29e7b183d700800150358_SlowController-hash-show_1476962400`) |

### Résultat

Voici une entrée de log **SLOW** :

<CodeGroup>
  ```json JSON theme={null}
  {
    "id": "51f29e7b183d700800150358_SlowController#show_1476962400",
    "action": "slow#request",
    "db_runtime": 500.0,
    "duration": 300.0,
    "environment": {},
    "hostname": "app1",
    "is_exception": null,
    "kind": "http_request",
    "params": {},
    "path": "/blog",
    "request_format": "html",
    "request_method": "GET",
    "session_data": {},
    "status": "200",
    "view_runtime": 500.0,
    "time": 1002700800,
    "end": 978339601,
    "allocation_count": 110101,
    "events": [
        {
            "action": "query",
            "duration": 250.0,
            "group": "mongoid",
            "name": "query.mongoid",
            "payload": {
                "query": "this is a mongoid query"
            },
            "time": 0,
            "end": 0
            "digest": 00000,
            "allocation_count": 1010101

        }
    ],
    "exception": null
  }
  ```
</CodeGroup>

Voici une entrée de log **ERROR** :

<CodeGroup>
  ```json JSON theme={null}
  {
    "id": "57f653fa16b7e24cb0dc9e2b_ErrorController#trigger_1475761080",
    "action": "Error#trigger",
    "db_runtime": 500.0,
    "duration": null,
    "environment": {
      "HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh"
    },
    "hostname": "app1",
    "is_exception": true,
    "kind": "http_request",
    "params": {
      "id": 1,
      "get": "something"
    },
    "path": "/blog",
    "request_format": "html",
    "request_method": "GET",
    "session_data": {
      "current_user_id": 1
    },
    "status": "200",
    "view_runtime": 500.0,
    "time": 1002700800,
    "end": 978339601,
    "events": [],
    "tags": {
      "user": "john doe",
      "id": 1
    },
    "exception": {
      "message": "The method was not found",
      "name": "NoMethodError",
      "backtrace": ["Backtrace line 1", "Backtrace line 2", "Backtrace line 3"]
    }
  }
  ```
</CodeGroup>

**Remarque :** Si vous avez besoin d'une recherche plus avancée, telle que la
recherche d'échantillons par tag, vous pouvez le faire en utilisant notre [API
GraphQL](https://docs.appsignal.com/api/graphql). Consultez la documentation
de l'API GraphQL pour des exemples de requêtes et plus de détails.
