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

# Analytics de site web

> Obtenez les analytics d'un site web hébergé sur Square Cloud. Limité à 10 requêtes non mises en cache toutes les 60 secondes.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clé d'API de votre compte. Vous pouvez la trouver dans les [paramètres de votre compte](https://squarecloud.app/fr/account/security).
</ParamField>

### Paramètres

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  L'ID de l'application. Vous le trouverez dans l'URL du dashboard de votre application.
</ParamField>

<ParamField query="start" type="string" placeholder="ISO 8601 timestamp" required>
  Timestamp de début ISO 8601 pour la fenêtre d'analyse. La fenêtre de rétention maximale est de 7 jours ; le début est borné à la date de création de l'application.
</ParamField>

<ParamField query="end" type="string" placeholder="ISO 8601 timestamp" required>
  Timestamp de fin ISO 8601. Doit être postérieur à `start`.
</ParamField>

#### Filtres d'exploration

Filtres optionnels qui restreignent **chaque** répartition au trafic correspondant. Réutilisez la valeur exacte de `type` renvoyée par la répartition correspondante dans une réponse précédente. Les filtres se combinent (ET).

<ParamField query="country" type="string" placeholder="BR">
  Un unique pays client (code à 2 caractères), tel que renvoyé dans la répartition `countries`.
</ParamField>

<ParamField query="ip" type="string" placeholder="203.0.113.45">
  Une unique IP cliente (correspondance exacte IPv4/IPv6), telle que renvoyée dans la répartition `ips`.
</ParamField>

<ParamField query="path" type="string" placeholder="/api">
  Chemins de requête commençant par ce préfixe (par ex. `/api` couvre `/api/*`). Maximum 256 caractères.
</ParamField>

<ParamField query="status" type="string" placeholder="404">
  Un unique code de statut de réponse edge (3 chiffres), tel que renvoyé dans la répartition `status_codes`.
</ParamField>

<ParamField query="os" type="string" placeholder="Windows">
  Un unique OS client, tel que renvoyé dans la répartition `os`.
</ParamField>

<ParamField query="browser" type="string" placeholder="Chrome">
  Un unique navigateur client, tel que renvoyé dans la répartition `browsers`.
</ParamField>

<ParamField query="protocol" type="string" placeholder="HTTP/2">
  Un unique protocole HTTP, tel que renvoyé dans la répartition `protocols`.
</ParamField>

<ParamField query="referer" type="string" placeholder="google.com">
  Un unique host referer, tel que renvoyé dans la répartition `referers` (`Direct` = aucun referer).
</ParamField>

<ParamField query="provider" type="string" placeholder="GOOGLE (15169)">
  Un unique réseau client, tel que renvoyé dans la répartition `providers` — par ex. `GOOGLE (15169)`, un numéro d'ASN brut, ou `SQUARE-CLOUD-PLATFORM`.
</ParamField>

<ParamField query="content_type" type="string" placeholder="json">
  Un unique type de contenu de réponse, tel que renvoyé dans la répartition `content_types` (`Unknown` = non classé).
</ParamField>

<ParamField query="bot" type="string" placeholder="Search Engine Crawler">
  Une unique catégorie de bot vérifié, telle que renvoyée dans la répartition `bots` (`Unverified` = trafic normal non-bot).
</ParamField>

### Réponse

<Info>
  Cette route peut renvoyer une réponse dans un format compressé, optimisant la transmission des données.
</Info>

<ResponseField name="status" type="string">
  Indique si l'appel a réussi. `success` en cas de succès, `error` sinon.
</ResponseField>

<ResponseField name="response" type="object">
  Chaque répartition est un tableau de buckets. `type` identifie la dimension, `visits` correspond aux visiteurs uniques, `requests` au nombre de requêtes, `bytes` aux octets de réponse servis, et `date` au début de la fenêtre de 15 minutes. Les répartitions `ips`, `status_codes`, `bots` et `content_types` sont des totaux de fenêtre (top-N sur l'ensemble de la fenêtre) et ne comportent **pas** de champ `date`. Renvoie un objet vide (`{}`) lorsque la fenêtre demandée commence avant la date de création de l'application.
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "visits": [
        { "visits": 1024, "requests": 1247, "bytes": 8421000, "date": "2026-05-21T10:00:00Z" }
      ],
      "countries": [
        { "type": "BR", "visits": 612, "requests": 743, "bytes": 5012000, "date": "2026-05-21T10:00:00Z" }
      ],
      "devices": [
        { "type": "desktop", "visits": 820, "requests": 998, "bytes": 6700000, "date": "2026-05-21T10:00:00Z" }
      ],
      "os": [
        { "type": "Windows", "visits": 540, "requests": 651, "bytes": 4400000, "date": "2026-05-21T10:00:00Z" }
      ],
      "browsers": [
        { "type": "Chrome", "visits": 720, "requests": 870, "bytes": 5800000, "date": "2026-05-21T10:00:00Z" }
      ],
      "protocols": [
        { "type": "HTTP/2", "visits": 900, "requests": 1100, "bytes": 7400000, "date": "2026-05-21T10:00:00Z" }
      ],
      "methods": [
        { "type": "GET", "visits": 850, "requests": 1020, "bytes": 6900000, "date": "2026-05-21T10:00:00Z" }
      ],
      "paths": [
        { "type": "/", "visits": 410, "requests": 498, "bytes": 3320000, "date": "2026-05-21T10:00:00Z" }
      ],
      "referers": [
        { "type": "Direct", "visits": 380, "requests": 462, "bytes": 3100000, "date": "2026-05-21T10:00:00Z" }
      ],
      "providers": [
        { "type": "AS15169 (GOOGLE)", "visits": 210, "requests": 254, "bytes": 1700000, "date": "2026-05-21T10:00:00Z" }
      ],
      "ips": [
        { "type": "203.0.113.45", "visits": 40, "requests": 3120, "bytes": 2100000 }
      ],
      "status_codes": [
        { "type": "200", "visits": 950, "requests": 1180, "bytes": 8100000 }
      ],
      "bots": [
        { "type": "Search Engine Crawler", "visits": 0, "requests": 84, "bytes": 410000 }
      ],
      "content_types": [
        { "type": "json", "visits": 310, "requests": 720, "bytes": 4200000 }
      ]
    }
  }
  ```
</ResponseExample>
