https://www.helprange.com/api/v2/viewsPolling trigger "New document view": the latest 50 views of documents in your folders, newest first. Each item has a stable id (de-duplicate by it). The response is a JSON array.
Plans: Max, Unlimited, Deal Room Pass, trial. Auth: Authorization: Bearer hr_live_… (team key), X-API-Key, Authorization: Api-Key <key> or an OAuth Bearer token. Scope: analytics:read. Operation id: listRecentViews
curl -X GET https://www.helprange.com/api/v2/views \
-H "X-API-Key: $HELPRANGE_API_KEY"
const res = await fetch('https://www.helprange.com/api/v2/views', {
method: 'GET',
headers: {'X-API-Key': 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/api/v2/views',
headers={'X-API-Key': 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.
| 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 (or this feature). |
403 | The team API key lacks the scope this endpoint needs. |
405 | Wrong HTTP method for this endpoint. |
429 | A usage limit was reached – wait Retry-After seconds. |
[
{
"id": 98321,
"opened_at": "2026-11-15T09:12:40+00:00",
"viewer": "anna@client.com",
"document_id": 250,
"document": "proposal.pdf",
"link_label": "ACME - Anna",
"seconds_read": 312,
"country": "DE",
"downloaded": false
}
]
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.