GET /v1/recap
Podaci za Recap, sažete metrike i najpopularnije stranice za unaprijed definirana razdoblja ili prilagođeni raspon datuma.
Zahtjev
https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=25
Upotrijebite Recap kada Vaša integracija treba dohvatiti povijesne podatke: povijesna izvješća, izvoz najpopularnijih stranica, prilagođene raspone datuma ili rezultate filtrirane pretraživanjem.
Autentikacija
Potreban je API ključ u zaglavlju Authorization, u obliku Authorization: Bearer nm_YOUR_KEY.
Parametri upita
| Naziv | Vrsta | Obavezno | Opis |
|---|---|---|---|
site |
string |
obavezno | Tracker ID. API ključ mora imati pristup tom trackeru. |
preset |
string |
neobavezno | Unaprijed definirano razdoblje. Jedna od vrijednosti today, yesterday, last7, last14, last30, last90, this_month, last_month, all_time, custom. Zadano: last30. |
start |
date |
neobavezno | Početni datum za preset=custom. Format: YYYY-MM-DD. |
end |
date |
neobavezno | Završni datum za preset=custom. Format: YYYY-MM-DD. |
limit |
integer |
neobavezno | Maksimalan broj najpopularnijih stranica po odgovoru, uključujući odgovore s paginacijom. Vrijednosti se ograničavaju na raspon 1–100. Zadano: 100. |
q |
string |
neobavezno | Pojam za pretraživanje najpopularnijih stranica. Podudaranje se traži u URL-u, naslovu ili autoru. Alias: search. |
search |
string |
neobavezno | Alias za q. |
offset |
integer |
neobavezno | Paginaciju započnite s offset=0. Cijeli broj od 0 do 2000. Za sljedeće stranice potreban je snapshot. Bez parametra offset ili snapshot postojeći odgovor ostaje nepromijenjen. |
snapshot |
string |
neobavezno | Upotrijebite pagination.snapshot_id iz prvog odgovora. Ponovite izvorne parametre site, preset, start, end i search. Veličina stranice može se promijeniti. Izostavite snapshot da biste započeli novo dohvaćanje. |
Primjer cURL-a
curl -H "Authorization: Bearer nm_YOUR_KEY" \
"https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=25"
Primjer odgovora
{
"site": "TRACKER_ID",
"preset": "last30",
"timezone": "Europe/Zurich",
"range": {
"from": "2026-05-28",
"to": "2026-06-26",
"label": "Last 30 Days",
"days": 30
},
"limits": {
"min_date": "2025-03-17",
"max_date": "2026-06-26",
"max_days": null
},
"search": {
"query": ""
},
"daily": [
{
"date": "2026-06-25",
"pageviews": 102400,
"visits": 12800
},
{
"date": "2026-06-26",
"pageviews": 98450,
"visits": 12130
}
],
"summary": {
"total_pageviews": 3158127,
"total_visits": 388450,
"pages_per_visitor": 8.1
},
"top_pages": [
{
"rank": 1,
"title": "Home page",
"author": "",
"pubdate": "",
"url": "/",
"url_full": "https://example-media.test/",
"url_id": "5dc0a5883395e2a126e5239650d9268e",
"thumbnail": "https://realtimemetadata.fra1.cdn.digitaloceanspaces.com/thumbnails/example.jpg",
"pageviews": 159280
},
{
"rank": 2,
"title": "Culture desk live notes",
"author": "Alex Morgan",
"pubdate": "2026-06-24",
"url": "/culture/live-notes",
"url_full": "https://example-media.test/culture/live-notes",
"url_id": "b35c1a5f2fd0cbb7f3c13b853c2a9d2c",
"thumbnail": "https://realtimemetadata.fra1.cdn.digitaloceanspaces.com/thumbnails/example-2.jpg",
"pageviews": 85632
}
],
"generated_at": "2026-06-26T12:30:00Z"
}
Paginacija
Dodajte offset=0 da biste uključili paginaciju. Svaki odgovor sadržava najviše 100 članaka, a snimka najviše 2000 članaka. Bez parametra offset ili snapshot format postojećeg odgovora i ograničenje ostaju nepromijenjeni.
Za svaku sljedeću stranicu pošaljite pagination.next_offset kao offset i pagination.snapshot_id kao snapshot. Ponovite izvorne parametre site, preset, start, end i search, uključujući prilagođene datume. Zaustavite se kada je next_offset null. Offset jednak ili veći od dostupnog broja vraća prazan niz top_pages.
Redoslijed članaka, broj pregleda stranica, dnevne vrijednosti, sažetak i generated_at ostaju nepromijenjeni na svim stranicama, uključujući raspone koji sadržavaju današnji dan. Sažete metrike obuhvaćaju cijeli odabrani raspon, a pagination.total obuhvaća samo članke u ograničenoj snimci. Svaki zahtjev i dalje zahtijeva valjanu autorizaciju i ubraja se u ograničenje broja zahtjeva za tracker.
Snimke istječu nakon 10 minuta; čitanje ne produljuje njihov rok valjanosti. U slučaju HTTP 410 odbacite djelomično dohvaćanje i ponovno ga pokrenite s offset=0, bez parametra snapshot. Primjeri u nastavku prikazuju prvi zahtjev, nastavak i dodatni objekt paginacije.
GET https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=100&offset=0
GET https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=100&offset=100&snapshot=0123456789abcdef0123456789abcdef0123456789abcdef
{
"pagination": {
"limit": 100,
"offset": 0,
"total": 2000,
"max_results": 2000,
"has_more": true,
"next_offset": 100,
"snapshot_id": "0123456789abcdef0123456789abcdef0123456789abcdef",
"expires_at": "2026-06-26T12:40:00Z"
}
}
Polja odgovora
| Polje | Vrsta | Opis |
|---|---|---|
site |
string |
Tracker ID upotrijebljen za zahtjev. |
preset |
string |
Razriješeno unaprijed definirano razdoblje upotrijebljeno za odgovor. |
timezone |
string |
Vremenska zona trackera upotrijebljena za određivanje lokalnih datuma. |
range |
object |
Razriješeni raspon datuma s poljima from, to, label i brojem dana. |
limits |
object |
Ograničenja dostupne povijesti za tracker. |
search.query |
string |
Normalizirani upit za pretraživanje upotrijebljen za filtriranje najpopularnijih stranica. |
daily[] |
array<object> |
Dnevni broj pregleda stranica i posjeta za razriješeni raspon. |
summary.total_pageviews |
integer |
Ukupan broj pregleda stranica u razriješenom rasponu. |
summary.total_visits |
integer |
Ukupan broj posjeta u razriješenom rasponu. |
summary.pages_per_visitor |
number |
Broj pregleda stranica podijeljen brojem posjeta, zaokružen na jednu decimalu. |
top_pages[] |
array<object> |
Najpopularnije stranice poredane prema broju pregleda stranica. |
top_pages[].rank |
integer |
Poredak u potpunoj snimci pri upotrebi paginacije; poredak se nastavlja na sljedećim stranicama. |
top_pages[].title |
string |
Naslov stranice. |
top_pages[].author |
string |
Autor, ako je dostupan. |
top_pages[].pubdate |
string |
Datum objave, ako je dostupan. |
top_pages[].url |
string |
Putanja ili skraćeni URL. |
top_pages[].url_full |
string |
Apsolutni URL, ako je dostupan. |
top_pages[].url_id |
string |
Stabilni identifikator URL-a. |
top_pages[].thumbnail |
string |
URL minijature, ako je dostupan. |
top_pages[].pageviews |
integer |
Broj pregleda stranice za razriješeni raspon. |
generated_at |
string |
Vremenska oznaka u UTC-u koja označava kada je sadržaj generiran. |
pagination |
object |
Prisutan samo u načinu rada s paginacijom. Na svim je stranicama dostupno najviše 2000 članaka. |
pagination.limit |
integer |
Učinkovita veličina stranice, od 1 do 100. |
pagination.offset |
integer |
Pozicija tražene stranice koja počinje od nule. |
pagination.total |
integer |
Broj članaka u ovoj snimci, ograničen na 2000. To nije neograničeni broj URL-ova koji odgovaraju kriterijima. |
pagination.max_results |
integer |
Maksimalan broj članaka po snimci: 2000. |
pagination.has_more |
boolean |
Označava postoji li u ovoj snimci još jedna stranica. |
pagination.next_offset |
integer|null |
Proslijedite ovu vrijednost kao offset za sljedeću stranicu. Null označava da je dosegnut kraj. |
pagination.snapshot_id |
string |
Neprozirni ID za sljedeće zahtjeve koji upotrebljavaju parametar snapshot. Povezan je s autentificiranim korisnikom i trackerom. |
pagination.expires_at |
string |
Fiksno vrijeme isteka u UTC-u, 10 minuta nakon pohrane. Čitanje stranica ne produljuje rok. |
Aktualnost i predmemoriranje
Zahtjevi bez paginacije upotrebljavaju postojeću mikro-predmemoriju od 60 sekundi i povijesni pričuvni mehanizam. Paginacija pohranjuje nepromjenjivu snimku u lokalni Stats Redis na 600 sekundi, uz automatski istek i bez kliznog produljenja. Istovjetni početni zahtjevi koje isti korisnik pošalje unutar 60 sekundi mogu ponovno upotrijebiti snimku, stoga kao rok upotrebljavajte expires_at. Nastavci nikada ponovno ne izrađuju podatke niti kao pričuvnu opciju upotrebljavaju drugu snimku.
Pogreške
| HTTP | Kôd | Opis |
|---|---|---|
| 400 | site_required |
Nedostaje obavezni parametar site. |
| 401 | missing_token |
Nedostaje zaglavlje Authorization. |
| 401 | invalid_token |
Token nije valjan ili je opozvan. |
| 403 | site_not_authorized |
API ključ nema pristup tom trackeru. |
| 429 | rate_limit_exceeded |
Prekoračeno je ograničenje broja zahtjeva. |
| 503 | redis_unavailable |
Sustav u pozadini za podatke u stvarnom vremenu privremeno nije dostupan. |
| 503 | clickhouse_unavailable |
Povijesni podaci privremeno nisu dostupni. |
| 500 | encoding_failed |
Odgovor Recap nije moguće kodirati. |
| 400 | invalid_pagination |
Parametri upita za paginaciju moraju biti skalarne vrijednosti. |
| 400 | invalid_offset |
Offset mora biti cijeli broj od 0 do 2000. |
| 400 | invalid_snapshot |
ID snimke ima nevaljan format. |
| 400 | snapshot_required |
Za offsete veće od nule potreban je ID snimke. Započnite s offset=0. |
| 400 | snapshot_mismatch |
Unaprijed definirano razdoblje, datumi ili pretraživanje razlikuju se od izvornog zahtjeva. |
| 410 | snapshot_expired |
Snimka je istekla ili više nije dostupna u kontekstu ovog korisnika i trackera. Ponovno pokrenite postupak s offset=0 i bez parametra snapshot. |
| 503 | snapshot_storage_unavailable |
Nije moguće čitati ni zapisati pohranu snimke. Pokušajte ponovno; postojeći ID snimke mora ostati nepromijenjen. |
| 503 | recap_unavailable |
Trenutačno nije moguće izraditi potpunu novu snimku. Pokušajte ponovno uskoro. |
{
"error": {
"code": "invalid_token",
"message": "Bearer token is invalid or revoked."
}
}