GET /v1/recap
Data z Recap, souhrnné metriky a nejčtenější stránky pro přednastavená období nebo vlastní období.
Požadavek
https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=25
Recap použijte, když vaše integrace potřebuje pracovat s historickými daty: pro historické přehledy, exporty nejčtenějších stránek, vlastní období nebo výsledky filtrované vyhledáváním.
Ověření
Vyžaduje klíč API v hlavičce Authorization: Authorization: Bearer nm_YOUR_KEY.
Parametry dotazu
| Název | Typ | Povinný | Popis |
|---|---|---|---|
site |
string |
povinné | ID trackeru. Klíč API musí mít k tomuto trackeru přístup. |
preset |
string |
volitelné | Předvolba období. Jedna z hodnot today, yesterday, last7, last14, last30, last90, this_month, last_month, all_time, custom. Výchozí hodnota: last30. |
start |
date |
volitelné | Počáteční datum pro preset=custom. Formát: YYYY-MM-DD. |
end |
date |
volitelné | Koncové datum pro preset=custom. Formát: YYYY-MM-DD. |
limit |
integer |
volitelné | Maximální počet nejčtenějších stránek v jedné odpovědi včetně stránkovaných odpovědí. Hodnoty se omezí na 1–100. Výchozí hodnota: 100. |
q |
string |
volitelné | Hledaný výraz pro nejčtenější stránky. Vyhledává v URL, názvu nebo autorovi. Alias: search. |
search |
string |
volitelné | Alias pro q. |
offset |
integer |
volitelné | Stránkování zahájíte hodnotou offset=0. Celé číslo od 0 do 2000. Další stránky vyžadují snapshot. Bez parametru offset nebo snapshot zůstane stávající odpověď beze změny. |
snapshot |
string |
volitelné | Použijte hodnotu pagination.snapshot_id z první odpovědi. Opakujte původní parametry site, preset, start, end a search. Velikost stránky se může změnit. Parametr snapshot vynechte, pokud chcete zahájit nové procházení. |
Příklad cURL
curl -H "Authorization: Bearer nm_YOUR_KEY" \
"https://api.nowmetrix.com/v1/recap?site=TRACKER_ID&preset=last30&limit=25"
Příklad odpovědi
{
"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"
}
Stránkování
Přidejte offset=0 a zapněte stránkování. Každá odpověď obsahuje nejvýše 100 článků; snapshot obsahuje nejvýše 2000 článků. Bez parametru offset nebo snapshot zůstane stávající formát odpovědi a limit beze změny.
Pro každou další stránku odešlete pagination.next_offset jako offset a pagination.snapshot_id jako snapshot. Opakujte původní parametry site, preset, start, end a search včetně vlastních dat. Jakmile je next_offset hodnotou null, skončete. Offset, který je roven dostupnému počtu nebo jej přesahuje, vrátí prázdné pole top_pages.
Pořadí článků, zobrazení stránek, denní hodnoty, souhrn a generated_at zůstávají na všech stránkách stejné, včetně období obsahujících dnešek. Souhrnné metriky pokrývají celé vybrané období; pagination.total zahrnuje pouze články v omezeném snapshotu. Každý požadavek stále vyžaduje platné ověření a započítává se do limitu požadavků trackeru.
Platnost snapshotu vyprší po 10 minutách a při čtení se neprodlužuje. Při HTTP 410 zahoďte neúplné procházení a začněte znovu s offset=0 bez parametru snapshot. Níže uvedené příklady ukazují první požadavek, pokračování a dodatečný objekt pagination.
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"
}
}
Pole odpovědi
| Pole | Typ | Popis |
|---|---|---|
site |
string |
ID trackeru použité v požadavku. |
preset |
string |
Vyhodnocená předvolba použitá pro odpověď. |
timezone |
string |
Časové pásmo trackeru použité k určení místních dat. |
range |
object |
Vyhodnocené období s údaji from, to, label a počtem dnů. |
limits |
object |
Limity dostupné historie trackeru. |
search.query |
string |
Normalizovaný hledaný výraz použitý k filtrování nejčtenějších stránek. |
daily[] |
array<object> |
Počet zobrazení stránek a návštěv pro vyhodnocené období po jednotlivých dnech. |
summary.total_pageviews |
integer |
Celkový počet zobrazení stránek za vyhodnocené období. |
summary.total_visits |
integer |
Celkový počet návštěv za vyhodnocené období. |
summary.pages_per_visitor |
number |
Počet zobrazení stránek dělený počtem návštěv, zaokrouhlený na jedno desetinné místo. |
top_pages[] |
array<object> |
Nejčtenější stránky seřazené podle počtu zobrazení stránek. |
top_pages[].rank |
integer |
Pořadí v celém snapshotu při stránkování; pořadí pokračuje napříč stránkami. |
top_pages[].title |
string |
Název stránky. |
top_pages[].author |
string |
Autor, pokud je k dispozici. |
top_pages[].pubdate |
string |
Datum publikace, pokud je k dispozici. |
top_pages[].url |
string |
Cesta nebo zkrácená URL. |
top_pages[].url_full |
string |
Absolutní URL, pokud je k dispozici. |
top_pages[].url_id |
string |
Stabilní identifikátor URL. |
top_pages[].thumbnail |
string |
URL náhledu, pokud je k dispozici. |
top_pages[].pageviews |
integer |
Počet zobrazení stránek za vyhodnocené období. |
generated_at |
string |
Časové razítko UTC označující, kdy byla data vygenerována. |
pagination |
object |
Zobrazuje se pouze v režimu stránkování. Napříč všemi stránkami je dostupných nejvýše 2000 článků. |
pagination.limit |
integer |
Efektivní velikost stránky od 1 do 100. |
pagination.offset |
integer |
Počáteční pozice požadované stránky, počítaná od nuly. |
pagination.total |
integer |
Počet článků v tomto snapshotu, nejvýše 2000. Nejde o neomezený počet odpovídajících URL. |
pagination.max_results |
integer |
Maximální počet článků v snapshotu: 2000. |
pagination.has_more |
boolean |
Určuje, zda je v tomto snapshotu dostupná další stránka. |
pagination.next_offset |
integer|null |
Tuto hodnotu předejte jako offset pro další stránku. Hodnota null znamená, že bylo dosaženo konce. |
pagination.snapshot_id |
string |
Neprůhledné ID pro další požadavky s parametrem snapshot. Je vázané na ověřeného uživatele a tracker. |
pagination.expires_at |
string |
Pevný čas vypršení platnosti v UTC, 10 minut po uložení. Čtení stránek platnost neprodlužuje. |
Aktuálnost a cachování
Požadavky bez stránkování používají stávající 60sekundovou mikrocache a historická záložní data. Stránkování ukládá neměnný snapshot do místního Stats Redis na 600 sekund s automatickým vypršením platnosti bez jejího průběžného prodlužování. Totožné počáteční požadavky od stejného uživatele během 60 sekund mohou znovu použít snapshot, proto jako čas vypršení použijte expires_at. Pokračování nikdy data znovu nevytváří ani nepoužívá jiný snapshot jako záložní.
Chyby
| HTTP | Kód | Popis |
|---|---|---|
| 400 | site_required |
Chybí povinný parametr site. |
| 401 | missing_token |
Chybí hlavička Authorization. |
| 401 | invalid_token |
Token je neplatný nebo odvolaný. |
| 403 | site_not_authorized |
Klíč API nemá k tomuto trackeru přístup. |
| 429 | rate_limit_exceeded |
Limit požadavků byl překročen. |
| 503 | redis_unavailable |
Backend Realtime je dočasně nedostupný. |
| 503 | clickhouse_unavailable |
Historická data jsou dočasně nedostupná. |
| 500 | encoding_failed |
Odpověď Recap se nepodařilo zakódovat. |
| 400 | invalid_pagination |
Parametry dotazu pro stránkování musí být skalární hodnoty. |
| 400 | invalid_offset |
Offset musí být celé číslo od 0 do 2000. |
| 400 | invalid_snapshot |
ID snapshotu má neplatný formát. |
| 400 | snapshot_required |
Offsety větší než nula vyžadují ID snapshotu. Začněte s offset=0. |
| 400 | snapshot_mismatch |
Předvolba, data nebo vyhledávání se liší od původního požadavku. |
| 410 | snapshot_expired |
Platnost snapshotu vypršela nebo už není v kontextu tohoto uživatele či trackeru dostupný. Začněte znovu s offset=0 bez parametru snapshot. |
| 503 | snapshot_storage_unavailable |
Úložiště snapshotů nelze číst ani do něj zapisovat. Zkuste to znovu; stávající ID snapshotu musí zůstat beze změny. |
| 503 | recap_unavailable |
Kompletní nový snapshot momentálně nelze vytvořit. Zkuste to za chvíli znovu. |
{
"error": {
"code": "invalid_token",
"message": "Bearer token is invalid or revoked."
}
}