Data Hub SkiResort ČERNÁ HORA – PEC

Data Hub pro agentury a vývojáře

Co Data Hub obsahuje, jak číst identifikátory, stavy, čas, cache, verze a licence – s příklady volání.

API v2 · schemaVersion 2.1.0 · release m-1db153 (2026-10-21T17:53:58+02:00)

Co je Data Hub

Data Hub je ověřený zdroj pravdy o lyžařském resortu SkiResort ČERNÁ HORA – PEC: areály, lanovky a vleky, sjezdovky, běžecké tratě, služby a místa, skibusy, produkty (skipasy), věkové kategorie, ceníky a glosář pojmů. Slouží webu a e-shopu (agenturám), vlastním kanálům resortu (TV panorama, displeje, aplikace) i AI asistentům.

Každý údaj je claim se zdrojem (URL, doslovný úryvek, čas stažení, důvěra). Pravidla priority zdrojů vyberou publikovanou hodnotu a rozpory se nerozhodují potichu (_conflicts, přehled kvality). Publikuje se neměnný release – API, fact pages, llms-full.txt i MCP čtou tentýž release, takže říkají totéž.

KanálAdresaPro koho
API v2 (JSON)https://data.skiresort.cz/api/v2web, e-shop, aplikace, integrace
OpenAPI 3.1https://data.skiresort.cz/openapi.json · YAMLgenerování klientů, function calling
Fact pages (HTML/Markdown)https://data.skiresort.cz/vyhledávače, AI vyhledávače, lidé
llms.txt / llms-full.txthttps://data.skiresort.cz/llms.txtcoding a prohlížečoví agenti
MCP (read-only)https://data.skiresort.cz/mcpAI asistenti (Claude, ChatGPT…)

Rychlý start

Čtení je bez autentizace, CORS je *, odpovědi jsou cacheovatelné. První volání:

curl -s 'https://data.skiresort.cz/api/v2/lifts?area=cerna-hora&lang=cs'
curl -s 'https://data.skiresort.cz/api/v2/status?area=pec'
curl -s -D - -o /dev/null -H 'If-None-Match: "<ETag z předchozí odpovědi>"' 'https://data.skiresort.cz/api/v2/lifts'   # → 304
curl -s -H 'Accept: application/ld+json' 'https://data.skiresort.cz/api/v2/lifts/lift:cerna-hora:a1'          # JSON-LD (schema.org)
curl -s 'https://data.skiresort.cz/lifts/cerna-hora/a1.md'                                                       # Markdown fact page
// Prohlížeč nebo Node.js – podmíněný požadavek s ETag
let etag;
async function refreshLifts() {
  const r = await fetch("https://data.skiresort.cz/api/v2/lifts?area=cerna-hora", { headers: etag ? { "If-None-Match": etag } : {} });
  if (r.status === 304) return null; // beze změny
  etag = r.headers.get("ETag");
  const { data, meta } = await r.json();
  return { lifts: data, release: meta.release, attribution: meta.attribution };
}
import json, urllib.request
req = urllib.request.Request("https://data.skiresort.cz/api/v2/age-categories", headers={"Accept": "application/json", "User-Agent": "agentura-xy/1.0 (+kontakt)"})
print(json.load(urllib.request.urlopen(req))["data"])

Co je co: typy entit a kolekce

Data mají vrstvy: M master (místa, zařízení), O provoz (živé stavy, rozvrhy, pozorování), C obchod (produkty, věk, ceny), K obsah (glosář, FAQ, texty), G governance (zdroje, kvalita). Každý typ entity má jednu kolekci /api/v2/{kolekce} a detail /api/v2/{kolekce}/{id}; atributy popisuje datový slovník.

KolekceTypVrstvaPočet v releasu
areasAreálM6
liftsLanovka / vlekM63
slopesSjezdovkaM70
snowparksSnowparkM2
crosscountry-trailsBěžecká traťM15
skitour-routesSkialpová / turistická trasaM0
sled-runsSáňkařská dráhaM1
parkingsParkovištěM12
poisMísto / služba na místěM121
servicesSlužbaM23
attractionsAtrakceM7
summer-attractionsLetní atrakceM8
skibus-linesLinka skibusuM17
routesTrasa (léto)M46
bus-stopsZastávka (skibus / výletní bus)M5
webcamsWebkameraM15
weather-stationsMeteostaniceM0
organizationsOrganizaceM16
contactsKontaktK18
seasonsSezónaO3
season-periodsCenové období sezónyC8
productsProduktC79
offersNabídka / cenaC781
age-categoriesVěková kategorieC22
age-category-setsSada věkových kategoriíC0
price-listsCeníkC0
price-tiersCenová hladinaC4
sales-channelsProdejní kanálC4
discountsSleva / pravidloC9
programsProgram / aktivitaC8
glossaryPojem glosářeK69
faqČastá otázkaK61
guidesPrůvodceK5
policiesPravidlo / podmínkaK39
documentsDokumentK8
newsNovinkaK8
eventsAkceK27

Souhrnné pohledy: /status (živý provoz), /weather (teploty z kamer), /prices (ceník sezóny), /age-categories (věkové sady s kontrolou pokrytí), /search?q=, /releases/latest, /quality.

Identifikátory

Stav ≠ schopnost ≠ rozvrh

Čas, jazyk, formáty

Cache, čerstvost a slušné chování

TřídaPříkladyCache-Control
živé/status, /weather, /quality, /releases/latestpublic, max-age=30, s-maxage=60, stale-while-revalidate=60, stale-if-error=3600
masterentity, kolekce, /prices, fact pages, OpenAPIpublic, max-age=60, s-maxage=300, stale-while-revalidate=600, stale-if-error=86400
hledání/searchpublic, max-age=60, stale-if-error=3600

Verze a kompatibilita

Chyby

Chyby jsou application/problem+json (RFC 9457) s akční radou: invalid-parameter (400, errors[] s povolenými hodnotami), invalid-id (400), not-found (404, suggestions[]), method-not-allowed (405), not-acceptable (406, supported[]), gone / cursor-expired (410), uri-too-long (414), release-unavailable (503, Retry-After).

Licence a atribuce

Zobrazujte meta.attributions (atribuce Data Hubu a zdrojů použitých v odpovědi: sourceId, text, licence, url). Podrobnosti a stav licencí: Licence a atribuce.

Kontroly kvality dat

Kontroly běží při stavbě každého releasu (výsledek je součástí releasu) a v okamžiku požadavku (čerstvost živých dat). Přehled: /api/v2/quality (checks[]: id, severity, result, stage, action, gate, count, affected, detail, data). Kontrola s gate: true a výsledkem fail release nepublikuje – API dál vrací předchozí release a živé stavy po validUntil přejdou na unknown.

IDKontrolaZávažnostKdyPři selhání
QC-PUB-03Zakázané vzory (přístupové kódy, známá tajemství, URL kamer, tokeny)blockstavba releasurelease se nepublikuje (brána)
QC-O-02Žádné „open“ lyžování mimo zimní sezónublockstavba releasurelease se nepublikuje (brána)
QC-O-03Žádné „open“ mimo dnešní provozní dobublockstavba releasurelease se nepublikuje (brána)
QC-O-04Žádný publikovaný stav zjištěný před dnešním provozním dnem (stav ze včerejška = unknown)blockstavba releasurelease se nepublikuje (brána)
QC-O-05Dnešní doba: oficiální rozvrh × Holidayinfo v rozporu (platí oficiální rozvrh)warnstavba releasupublikuje se s označením
QC-C-01Věkové kategorie pokrývají roky narození bez děr a překryvůblockstavba releasurelease se nepublikuje (brána)
QC-X-03Počet lanovek jádra = počet lanovek s kódem Holidayinfo; lanovka s kódem Holidayinfo není „planned“blockstavba releasurelease se nepublikuje (brána)
QC-PUB-01Hodnoty releasu odpovídají schématu registruquarantinestavba releasuhodnota se nepublikuje
QC-RES-03Povinné atributy podle registruwarnstavba releasupublikuje se s označením
QC-RES-01Konflikty zdrojů nad tolerancí (vysoká závažnost)warnstavba releasupublikuje se s označením
QC-X-01Souhrny km (sjezdovky, běžky) proti tvrzení oficiálního webuwarnstavba releasujen hlášení
QC-X-02Počty areálů, lanovek a sjezdovek proti tvrzení oficiálního webuwarnstavba releasujen hlášení
QC-REF-01Odkazy na neexistující entitywarnstavba releasujen hlášení
QC-O-01Živé stavy mají observedAt a validUntilwarnstavba releasupublikuje se s označením
QC-PUB-02Počty entit podle typu proti předchozímu releasu (pokles > 10 %)warnstavba releasujen hlášení
QC-PUB-05ID z předchozího releasu zůstávají (tombstone místo zmizení)warnstavba releasujen hlášení
QC-PUB-04Velikost dokumentů releasu (≤ 1 MB na entitu)warnstavba releasujen hlášení
QC-K-02Hygiena textů (neviditelné znaky, HTML, pokyny pro jazykové modely)warnstavba releasujen hlášení
QC-K-03Český název není cizojazyčný (claims z /de/, /en/, /pl/ stránek nesmí být cs)warnstavba releasujen hlášení
QC-RES-02Publikační minimum: vítěz s nízkou důvěrou ze zdroje s prioritou ≤ 30infostavba releasujen hlášení
QC-SLO-01Stáří releasu (SLO bety ≤ 30 min)warnpožadavekjen hlášení
QC-PUB-06Publikované URL Data Hubu bez privátní IP a bez http:// (blokující, je-li nastaven PUBLIC_BASE_URL)blockpožadavekpublikuje se s označením
QC-SLO-02Živé stavy potvrzené v době platnosti (žádné stale)warnpožadavekpublikuje se s označením
QC-SLO-03Stáří posledního potvrzení stavů zdrojem (v sezóně ≤ 30 min, jinak ≤ 45 min)warnpožadavekjen hlášení
QC-SLO-04Teploty z kamer per areál (SLO ≤ 60 min, nepublikují se po 3 h)warnpožadavekjen hlášení

Kontakt a nahlášení chyby v datech

Chybný údaj nahlaste s ID entity a URL fact page (každá stránka má sekci „Jak tato data vznikají“). Kontaktní adresa Data Hubu pro agentury se zřizuje; do té doby přes kontakt provozovatele na www.skiresort.cz.

Dokumentace