Chaque fois qu'un destinataire télécharge un fichier que vous avez partagé, Coffrify enregistre le pays et, lorsque c'est connu, la ville d'origine de l'accès. L'endpoint GET /v1/analytics/geo agrège ces enregistrements et vous renvoie une répartition par pays et par ville sur la période de votre choix. Vous l'utilisez pour deux choses : comprendre votre audience (d'où viennent réellement vos téléchargements) et repérer un accès anormal (un document destiné à un client français ouvert depuis une région inattendue, par exemple).
/v1/analytics/geoRépartition des téléchargements par pays et par ville sur les derniers jours. Scope analytics:read.L'appel s'authentifie comme tout le reste de l'API, avec votre clé secrète dans l'en-tête Authorization: Bearer <clé>. La clé doit porter le scope analytics:read, faute de quoi la réponse est une erreur scope_missing. C'est une lecture seule : aucune écriture, donc pas d'en-tête Idempotency-Key à fournir.
Paramètres
Un seul paramètre de requête est accepté. Il définit la fenêtre temporelle sur laquelle les téléchargements sont agrégés.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| range_days | entier | 30 | Nombre de jours d'historique à agréger, à compter de maintenant. Borné entre 1 et 365 ; une valeur hors bornes est ramenée dans l'intervalle. |
Exemple de requête
Forme de la réponse
La réponse renvoie la fenêtre effectivement appliquée puis deux listes triées : by_country (tous les pays observés, du plus actif au moins actif) et by_city (les villes, même tri, limitées aux 50 premières). Le champ count est, dans les deux cas, le nombre de téléchargements comptabilisés sur la période. Quand la ville ou le pays d'un accès n'a pas pu être déterminé, cet accès n'apparaît simplement pas dans la liste correspondante.
| Champ | Type | Description |
|---|---|---|
| range_days | entier | La fenêtre réellement appliquée, après bornage. Utile pour vérifier ce qui a été agrégé. |
| by_country | liste | Un objet par pays, trié par count décroissant. Aucune limite : tous les pays observés figurent. |
| by_country[].country_code | chaîne | Code pays ISO à deux lettres (par exemple FR, DE, BE). |
| by_country[].country_name | chaîne | Nom lisible du pays. Retombe sur le code pays s'il n'est pas connu. |
| by_country[].count | entier | Nombre de téléchargements depuis ce pays sur la période. |
| by_city | liste | Un objet par ville, trié par count décroissant, limité aux 50 villes les plus actives. |
| by_city[].city | chaîne | Nom de la ville. |
| by_city[].country_code | chaîne | Code pays de la ville, ou ?? lorsqu'il n'a pas pu être rattaché. |
| by_city[].count | entier | Nombre de téléchargements depuis cette ville sur la période. |
Cas d'usage : comprendre son audience
Pour un tableau de bord ou un rapport mensuel, by_country vous donne directement la carte de votre audience. Vous pouvez par exemple ne garder que les pays au-dessus d'un certain volume, ou calculer la part de chaque pays dans le total. Élargissez la fenêtre pour lisser les variations hebdomadaires.
Cas d'usage : détecter un accès anormal
Si vos documents s'adressent à un public connu, par exemple uniquement en France et dans l'UE, tout pays inattendu dans by_country mérite un coup d'œil. Une vérification simple consiste à comparer les codes pays observés à votre liste de pays autorisés et à signaler les autres.
Limitation de débit et erreurs
Comme tous les endpoints, celui-ci est soumis à la limitation de débit : surveillez les en-têtes X-RateLimit-Remaining et X-RateLimit-Reset, et respectez Retry-After en cas de réponse 429. Les erreurs suivent le format standard {"error":{"code","message","request_id"}} ; les codes les plus probables ici sont invalid_api_key (clé absente ou invalide) et scope_missing (la clé n'a pas analytics:read). Conservez request_id si vous devez nous contacter au sujet d'une réponse.