---
title: v1: File statistics (GET /public-api/file/{file_id}/statistics) | HelpRange API
description: GET /public-api/file/{file_id}/statistics: Views, average reading time (per page too), engagement score and every visit of a document.
url: https://www.helprange.com/developers/api/v1-file-statistics
---

GET

# v1: File statistics

`https://www.helprange.com/public-api/file/{file_id}/statistics`

Views, average reading time (per page too), engagement score and every visit of a document.

**Plans:** Pro, Max, Unlimited, Deal Room Pass, trial. **Auth:** the API key in `Authorization` (bare, or `Bearer hr_live_…`) (v1). **Scope:** `analytics:read`. **Operation id:** `v1FileStatistics`

## Parameters

| Name | In | Type | Description |
|---|---|---|---|
| `file_id` required | path | integer | Document id. (min 1) |

## Example request

```
curl -X GET https://www.helprange.com/public-api/file/124/statistics \
  -H "Authorization: $HELPRANGE_API_KEY"
```

```
const res = await fetch('https://www.helprange.com/public-api/file/124/statistics', {
  method: 'GET',
  headers: {'Authorization': process.env.HELPRANGE_API_KEY},
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status}: ${data.error || data.message || data.reason}`);
console.log(data);
```

```
import os

import requests

r = requests.get(
    'https://www.helprange.com/public-api/file/124/statistics',
    headers={'Authorization': os.environ['HELPRANGE_API_KEY']},
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

The samples read the key from the `HELPRANGE_API_KEY` environment variable.

## Responses

| Status | Description |
|---|---|
| `200` | OK |
| `401` | Missing or invalid API key / OAuth token. Team keys: code invalid_key, key_revoked, key_expired or key_owner_removed. |
| `402` | Your plan does not include the REST API (the Free plan) or this feature (e.g. NDA needs Max). |
| `403` | v1: the key is invalid, or the folder / file / guest / data room is not yours (HTML page unless you send Accept: application/json). Team keys (v1 and v2): code insufficient_scope with required_scope – the key lacks the scope this endpoint needs. |
| `404` | Not found. |
| `429` | A usage limit was reached – wait Retry-After seconds. |

Example response · 200

```
{
  "engagement_score": 11.57,
  "total_views": 39,
  "avg_time_seconds": 24,
  "avg_time_per_page_seconds": [
    10,
    6,
    4,
    9,
    15
  ],
  "recordings": [
    {
      "time": "2026-10-24 10:34:56",
      "ip": "134.34.12.56",
      "country": "US",
      "referrer_url": "https://www.facebook.com",
      "read_time_sec": 100
    }
  ]
}
```

## Try it

**Uses your real account.** The request goes from your browser straight to `www.helprange.com` with your API key and acts as you. The key stays in this page (in this tab's session storage only if you tick the box), is never put in a URL and is not sent to analytics. Do not paste a key on a shared computer.
 API key

  Remember in this tab

file_id (path, required)

```

```
