{"openapi":"3.1.1","info":{"title":"GoVisit HTTP API","version":"1","description":"Read-only JSON HTTP adapters over public GoVisit WebMCP tools.","license":{"name":"GoVisit Data Use License","url":"https://govisit.ai/en/docs/general/data-use-license"}},"servers":[{"url":"https://govisit.ai"}],"externalDocs":{"url":"https://govisit.ai/en/docs/developers/http-api/overview"},"tags":[{"name":"Activities"},{"name":"Categories"},{"name":"Collections"},{"name":"Destinations"},{"name":"Documentation"},{"name":"Places"},{"name":"Statistics"}],"paths":{"/api/tools/v1/get_place_overview":{"post":{"operationId":"v1_get_place_overview","summary":"Get place overview","tags":["Places"],"description":"Read the published overview fields for the current place.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-place-overview"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"place"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"operatingStatus":{"type":"object","properties":{"code":{"type":["string","null"]},"label":{"type":["string","null"]}},"required":["code","label"],"additionalProperties":false},"lifecycle":{"type":"object"},"address":{"description":"Published JSON value; optional field shapes depend on the page projection."},"addresses":{"description":"Published JSON value; optional field shapes depend on the page projection."},"city":{"description":"Published JSON value; optional field shapes depend on the page projection."},"country":{"description":"Published JSON value; optional field shapes depend on the page projection."},"phones":{"description":"Published JSON value; optional field shapes depend on the page projection."},"websites":{"description":"Published JSON value; optional field shapes depend on the page projection."},"website":{"description":"Published JSON value; optional field shapes depend on the page projection."},"email":{"description":"Published JSON value; optional field shapes depend on the page projection."},"classifications":{"type":"array","description":"Current page-published classifications. Scheme codes define numeric scales; evidence is the exact linked page assessment or null, never inferred from a certificate URL.","items":{"type":"object","properties":{"subject":{"type":"string","enum":["place","facility","organizational_unit","organization"]},"schemeCode":{"type":"string"},"schemeName":{"type":"string"},"valueCode":{"type":"string"},"label":{"type":"string"},"numericValue":{"type":["number","null"]},"status":{"const":"active"},"schemeVersion":{"type":["string","null"]},"validFrom":{"type":["string","null"]},"validTo":{"type":["string","null"]},"verificationUrl":{"type":["string","null"]},"evidence":{"type":["object","null"]}},"required":["subject","schemeCode","valueCode","label","status","evidence"],"additionalProperties":true}},"owner":{"type":["string","null"],"description":"Name of the property-owning organization, or null when unknown."},"chain":{"type":["string","null"],"description":"Name of the brand's chain organization, or null when unknown."},"operator":{"type":["string","null"],"description":"Name of the company that manages the physical facility, distinct from profile management, or null when unknown."}},"required":["id","name","category","summary","description","operatingStatus","lifecycle","owner","chain","operator"],"additionalProperties":false}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_place_visit_facts":{"post":{"operationId":"v1_get_place_visit_facts","summary":"Get place visit facts","tags":["Places"],"description":"Read compact, normalized visit facts for the current place.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-place-visit-facts"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"place"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-visit-facts"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string"},"summary":{"type":"string"},"operatingStatus":{"type":"object","properties":{"code":{"type":["string","null"]},"label":{"type":["string","null"]}},"required":["code","label"],"additionalProperties":false},"location":{"type":"object","properties":{"address":{"description":"Published location value."},"addresses":{"description":"Published location value."},"city":{"description":"Published location value."},"country":{"description":"Published location value."},"coordinates":{"description":"Published location value."},"latitude":{"description":"Published location value."},"longitude":{"description":"Published location value."}},"additionalProperties":false},"contact":{"type":"object","properties":{"phones":{"description":"Published contact value; phones and websites may be lists of labeled records."},"websites":{"description":"Published contact value; phones and websites may be lists of labeled records."},"website":{"description":"Published contact value; phones and websites may be lists of labeled records."},"email":{"description":"Published contact value; phones and websites may be lists of labeled records."}},"additionalProperties":false},"openingHours":{"type":["object","array","string","null"]},"accessibility":{"type":["object","array","null"]},"experiences":{"type":["object","array","null"]},"owner":{"type":["string","null"],"description":"Name of the property-owning organization, or null when unknown."},"chain":{"type":["string","null"],"description":"Name of the brand's chain organization, or null when unknown."},"operator":{"type":["string","null"],"description":"Name of the company that manages the physical facility, distinct from profile management, or null when unknown."}},"required":["id","name","category","summary","operatingStatus","location","contact","openingHours","accessibility","experiences","owner","chain","operator"],"additionalProperties":false}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_place_section":{"post":{"operationId":"v1_get_place_section","summary":"Get place section","tags":["Places"],"description":"Read one published section of the current place, including spatial details when requested.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-place-section"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"section":{"type":"string","enum":["overview","location","attributes","collections","audiences","experiences","opening_hours","faq","media","accessibility","updates","nearby"]}},"required":["pagePath","section"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"place"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"description":"The requested published section. Overview is an object; lists are arrays of at most 20 items; places/experiences may wrap items in an object; missing opening-hours data is null. Strings and nested lists are bounded by the WebMCP snapshot policy.","type":["object","array","string","null"],"maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."},"anyOf":[{"title":"Overview (section=overview)","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"operatingStatus":{"type":"object","properties":{"code":{"type":["string","null"]},"label":{"type":["string","null"]}},"required":["code","label"],"additionalProperties":false},"lifecycle":{"type":"object"},"address":{"description":"Published JSON value; optional field shapes depend on the page projection."},"addresses":{"description":"Published JSON value; optional field shapes depend on the page projection."},"city":{"description":"Published JSON value; optional field shapes depend on the page projection."},"country":{"description":"Published JSON value; optional field shapes depend on the page projection."},"phones":{"description":"Published JSON value; optional field shapes depend on the page projection."},"websites":{"description":"Published JSON value; optional field shapes depend on the page projection."},"website":{"description":"Published JSON value; optional field shapes depend on the page projection."},"email":{"description":"Published JSON value; optional field shapes depend on the page projection."},"owner":{"type":["string","null"],"description":"Name of the property-owning organization, or null when unknown."},"chain":{"type":["string","null"],"description":"Name of the brand's chain organization, or null when unknown."},"operator":{"type":["string","null"],"description":"Name of the company that manages the physical facility, distinct from profile management, or null when unknown."}},"required":["id","name","category","summary","description","operatingStatus","lifecycle","owner","chain","operator"],"additionalProperties":false},{"title":"Published list section","type":"array","maxItems":20,"items":{"description":"Published section records; fields depend on the section and the page projection."}},{"title":"Published structured section","type":"object","description":"Named public fields or an items list, such as places.items, location coordinates, opening hours or experience groups.","properties":{"items":{"type":"array","maxItems":20,"items":{"type":"object"}}}},{"title":"Published text section","type":"string","maxLength":4000},{"title":"Unavailable published section","type":"null"}]}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_destination_overview":{"post":{"operationId":"v1_get_destination_overview","summary":"Get destination overview","tags":["Destinations"],"description":"Read the published overview fields for the current destination.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-destination-overview"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"destination"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","description":"Published long destination description in the page language; empty when absent."},"region":{"type":"string"},"type":{"type":"string"},"country":{"type":["object","string","null"]},"coordinates":{"type":["object","array","null"]},"sameAs":{"type":"array","maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."}},"placeCount":{"type":"number"},"primaryTaxonomy":{"type":"array","maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."}},"overview":{"type":["string","null"],"maxLength":2048,"description":"Legacy published overview field in the page language; null when absent."},"metaDescription":{"type":["string","null"],"description":"Published search and page meta description in the page language; null when absent."}},"required":["code","name","description","metaDescription","country","region","type","coordinates","sameAs","placeCount","primaryTaxonomy","overview"],"additionalProperties":false}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_destination_section":{"post":{"operationId":"v1_get_destination_section","summary":"Get destination section","tags":["Destinations"],"description":"Read one published section of the current destination.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-destination-section"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"section":{"type":"string","enum":["overview","experiences","highlights","categories","places","collections","activities","updates"]}},"required":["pagePath","section"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"destination"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"description":"The requested published section. Overview includes independent short description and nullable long overview. Experiences is an object with every published page-language card in items (all audiences, no list cap). Other lists remain bounded to 20 items; strings remain bounded.","type":["object","array","string","null"],"maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."},"anyOf":[{"title":"Overview (section=overview)","type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","description":"Published long destination description in the page language; empty when absent."},"region":{"type":"string"},"type":{"type":"string"},"country":{"type":["object","string","null"]},"coordinates":{"type":["object","array","null"]},"sameAs":{"type":"array","maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."}},"placeCount":{"type":"number"},"primaryTaxonomy":{"type":"array","maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."}},"overview":{"type":["string","null"],"maxLength":2048,"description":"Legacy published overview field in the page language; null when absent."},"metaDescription":{"type":["string","null"],"description":"Published search and page meta description in the page language; null when absent."}},"required":["code","name","description","metaDescription","country","region","type","coordinates","sameAs","placeCount","primaryTaxonomy","overview"],"additionalProperties":false},{"title":"Complete experiences (section=experiences)","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","maxLength":4000},"audience":{"type":["string","null"],"maxLength":4000},"intent":{"type":"null","description":"Reserved Place-compatible field. Destination canonical editorial intent is never public."},"headline":{"type":"string","maxLength":4000},"summary":{"type":["string","null"],"maxLength":4000},"locale":{"type":"string","maxLength":4000}},"required":["type","audience","intent","headline","summary","locale"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false},{"title":"Published list section","type":"array","maxItems":20,"items":{"description":"Published section records; fields depend on the section and the page projection."}},{"title":"Published structured section","type":"object","description":"Named public fields or an items list, such as places.items, location coordinates, opening hours or experience groups.","properties":{"items":{"type":"array","maxItems":20,"items":{"type":"object"}}}},{"title":"Published text section","type":"string","maxLength":4000},{"title":"Unavailable published section","type":"null"}]}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_destination_places":{"post":{"operationId":"v1_list_destination_places","summary":"List destination places","tags":["Destinations"],"description":"Filter the published place cards already present on the destination page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-destination-places"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"name":{"type":"string","description":"Optional published place name or partial name."},"category":{"type":"string","description":"Optional published category code."},"audience":{"type":"string","description":"Optional published audience label or code."},"accessibility":{"type":"string","description":"Optional published accessibility label or code."},"neighborhood":{"type":"string","description":"Optional published neighborhood."},"administrativeArea":{"type":"string","description":"Optional published administrative area."},"activityType":{"type":"string","description":"Optional published activity type."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_category_overview":{"post":{"operationId":"v1_get_category_overview","summary":"Get category overview","tags":["Categories"],"description":"Read the published overview for the current destination category page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-category-overview"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"category"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"type":"object","properties":{"destinationCode":{"type":"string"},"destinationName":{"type":"string"},"code":{"type":"string"},"label":{"type":"string"},"count":{"type":"number"},"isOther":{"type":"boolean"},"parentCode":{"type":["string","null"]}},"required":["destinationCode","destinationName","code","label"],"additionalProperties":false}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_category_section":{"post":{"operationId":"v1_get_category_section","summary":"Get category section","tags":["Categories"],"description":"Read one published section for the current destination category page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-category-section"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"section":{"type":"string","enum":["overview","places"]}},"required":["pagePath","section"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"category"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"description":"The requested published section. Overview is an object; lists are arrays of at most 20 items; places/experiences may wrap items in an object; missing opening-hours data is null. Strings and nested lists are bounded by the WebMCP snapshot policy.","type":["object","array","string","null"],"maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."},"anyOf":[{"title":"Overview (section=overview)","type":"object","properties":{"destinationCode":{"type":"string"},"destinationName":{"type":"string"},"code":{"type":"string"},"label":{"type":"string"},"count":{"type":"number"},"isOther":{"type":"boolean"},"parentCode":{"type":["string","null"]}},"required":["destinationCode","destinationName","code","label"],"additionalProperties":false},{"title":"Published list section","type":"array","maxItems":20,"items":{"description":"Published section records; fields depend on the section and the page projection."}},{"title":"Published structured section","type":"object","description":"Named public fields or an items list, such as places.items, location coordinates, opening hours or experience groups.","properties":{"items":{"type":"array","maxItems":20,"items":{"type":"object"}}}},{"title":"Published text section","type":"string","maxLength":4000},{"title":"Unavailable published section","type":"null"}]}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_category_places":{"post":{"operationId":"v1_list_category_places","summary":"List category places","tags":["Categories"],"description":"Filter the published place cards shown on the current destination category page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-category-places"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"name":{"type":"string","description":"Optional published place name or partial name."},"category":{"type":"string","description":"Optional published category code."},"audience":{"type":"string","description":"Optional published audience label or code."},"accessibility":{"type":"string","description":"Optional published accessibility label or code."},"neighborhood":{"type":"string","description":"Optional published neighborhood."},"administrativeArea":{"type":"string","description":"Optional published administrative area."},"activityType":{"type":"string","description":"Optional published activity type."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_collection_overview":{"post":{"operationId":"v1_get_collection_overview","summary":"Get collection overview","tags":["Collections"],"description":"Read the published overview for the current destination collection page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-collection-overview"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"collection"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"type":"object","properties":{"destinationCode":{"type":"string"},"destinationName":{"type":"string"},"label":{"type":"string"},"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"count":{"type":"number"}},"required":["destinationCode","destinationName","label"],"additionalProperties":false}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_collection_section":{"post":{"operationId":"v1_get_collection_section","summary":"Get collection section","tags":["Collections"],"description":"Read one published section for the current destination collection page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-collection-section"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"section":{"type":"string","enum":["overview","places"]}},"required":["pagePath","section"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Successful read of the sanitized published page snapshot. Unsupported sections reject the invocation.","properties":{"schemaVersion":{"const":"1"},"pageType":{"const":"collection"},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"const":"page-published-section"},"data":{"description":"The requested published section. Overview is an object; lists are arrays of at most 20 items; places/experiences may wrap items in an object; missing opening-hours data is null. Strings and nested lists are bounded by the WebMCP snapshot policy.","type":["object","array","string","null"],"maxItems":20,"items":{"description":"Published JSON value; optional field shapes depend on the page projection."},"anyOf":[{"title":"Overview (section=overview)","type":"object","properties":{"destinationCode":{"type":"string"},"destinationName":{"type":"string"},"label":{"type":"string"},"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"count":{"type":"number"}},"required":["destinationCode","destinationName","label"],"additionalProperties":false},{"title":"Published list section","type":"array","maxItems":20,"items":{"description":"Published section records; fields depend on the section and the page projection."}},{"title":"Published structured section","type":"object","description":"Named public fields or an items list, such as places.items, location coordinates, opening hours or experience groups.","properties":{"items":{"type":"array","maxItems":20,"items":{"type":"object"}}}},{"title":"Published text section","type":"string","maxLength":4000},{"title":"Unavailable published section","type":"null"}]}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_collection_places":{"post":{"operationId":"v1_list_collection_places","summary":"List collection places","tags":["Collections"],"description":"Filter the published place cards shown on the current destination collection page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-collection-places"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"name":{"type":"string","description":"Optional published place name or partial name."},"category":{"type":"string","description":"Optional published category code."},"audience":{"type":"string","description":"Optional published audience label or code."},"accessibility":{"type":"string","description":"Optional published accessibility label or code."},"neighborhood":{"type":"string","description":"Optional published neighborhood."},"administrativeArea":{"type":"string","description":"Optional published administrative area."},"activityType":{"type":"string","description":"Optional published activity type."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/search_documentation":{"post":{"operationId":"v1_search_documentation","summary":"Search documentation","tags":["Documentation"],"description":"Search the published documentation links rendered on the current documentation index page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/search-documentation"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"query":{"type":"string","description":"Optional documentation title or path text to match."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/search_places":{"post":{"operationId":"v1_search_places","summary":"Search places","tags":["Places"],"description":"Discover places by name or traveler intent in an explicit geographic scope.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/search-places"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":200,"description":"Place or destination name, or the traveler's intent."},"mode":{"type":"string","enum":["auto","name","intent"],"default":"auto","description":"Name lookup, intent retrieval, or name-first auto discovery."},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"language":{"type":"string","enum":["en","cs"],"description":"Requested response language; defaults to the page language."},"destination":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9_]*$","description":"Stable destination code or all. Defaults to the current destination, otherwise all."},"country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"ISO country scope; intersects destination and proximity where the public geography projection is available."},"near":{"type":"object","properties":{"placeId":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","description":"Reference GERS Place resolved from the same public release."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180}},"required":["latitude","longitude"],"additionalProperties":false},"radiusMeters":{"type":"number","minimum":1,"maximum":100000}},"required":["radiusMeters"],"additionalProperties":false,"oneOf":[{"required":["placeId"],"not":{"required":["coordinates"]}},{"required":["coordinates"],"not":{"required":["placeId"]}}]}},"required":["query"],"additionalProperties":false,"allOf":[{"if":{"properties":{"mode":{"const":"intent"}},"required":["mode"]},"then":{"properties":{"query":{"minLength":3}}}},{"if":{"properties":{"mode":{"const":"name"}},"required":["mode"]},"then":{"properties":{"query":{"maxLength":120},"limit":{"maximum":10}}}}]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"string","const":"2"},"locale":{"type":"string","enum":["en","cs"]},"completeness":{"type":"string","enum":["search-index-release","partial-geography","invalid-input","unavailable"]},"release":{"type":"string"},"error":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"retryAfter":{"type":"number"},"data":{"type":"object","properties":{"scope":{"type":"object","properties":{"kind":{"type":"string","enum":["all","country","destination"]},"code":{"type":"string"},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"near":{"type":"object","description":"Resolved proximity constraint; never interpreted as travel time."}},"required":["kind","code"],"additionalProperties":false},"items":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":["string","null"]},"locality":{"type":["string","null"]},"address":{"type":["string","null"],"description":"Street address, for example \"Pobřežní 311/1\"; null when the place has none."},"coordinates":{"type":["object","null"],"description":"The place's point (WGS 84); null when it has none.","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"]},"url":{"type":"string","description":"The place's canonical GoVisit page."},"score":{"type":["number","null"],"description":"Engine-specific ranking signal; compare only within the same match method, not a suitability probability."},"entityType":{"type":"string","const":"place"},"id":{"type":"string","format":"uuid","description":"Public GERS Place identity."},"match":{"type":"string","enum":["name","intent"]},"profileQuality":{"type":["number","null"],"description":"Published profile completeness signal; not guest fit."},"categoryCode":{"type":"string","description":"Published canonical category, not an amenity or suitability verdict."},"destinationCodes":{"type":["array","null"],"items":{"type":"string"},"description":"Canonical membership; null is unestablished and an empty array is known empty."},"operatingStatus":{"type":["string","null"],"enum":["operational","temporarily_closed","permanently_closed",null],"description":"Published lifecycle status, not open-now or booking availability."},"distanceMeters":{"type":"number","minimum":0,"description":"Straight-line geographic distance from the explicit proximity reference, not travel time."}},"required":["id","entityType","name","url","match","score"]}},"count":{"type":"integer","minimum":0},"coverage":{"type":"object","description":"Bounded candidate observation, not exhaustive market coverage.","properties":{"candidatesRetrieved":{"type":"integer","minimum":0,"maximum":200},"examined":{"type":"integer","minimum":0,"maximum":200},"unestablished":{"type":"integer","minimum":0,"maximum":200},"eligible":{"type":"integer","minimum":0,"maximum":200},"returned":{"type":"integer","minimum":0,"maximum":20},"candidateBudget":{"const":200},"indexRowsScanned":{"type":"integer","minimum":0},"truncated":{"type":"boolean"}},"required":["candidatesRetrieved","examined","unestablished","eligible","returned","candidateBudget","indexRowsScanned","truncated"],"additionalProperties":false}},"required":["scope","items","count"],"additionalProperties":false}},"required":["schemaVersion","locale","completeness","data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/search_destinations":{"post":{"operationId":"v1_search_destinations","summary":"Search destinations","tags":["Destinations"],"description":"Discover destinations by name or traveler intent, returning stable codes for subsequent searches.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/search-destinations"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":120,"description":"Place or destination name, or the traveler's intent."},"mode":{"type":"string","enum":["auto","name","intent"],"default":"auto","description":"Name lookup, intent retrieval, or name-first auto discovery."},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"language":{"type":"string","enum":["en","cs"],"description":"Requested response language; defaults to the page language."},"within":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9_]*$","not":{"pattern":"^[aA][lL][lL]$"},"description":"Canonical destination code to explore within; all is reserved for an explicit unrestricted place search, never a containing-destination filter."},"types":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"enum":["country","region","district","city","highlight"]},"description":"Match any of these published classifications; not a size/tier filter."}},"required":["query"],"additionalProperties":false,"allOf":[{"if":{"properties":{"mode":{"const":"intent"}},"required":["mode"]},"then":{"properties":{"query":{"minLength":3}}}},{"if":{"properties":{"mode":{"const":"name"}},"required":["mode"]},"then":{"properties":{"query":{"maxLength":120}}}}]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"string","const":"2"},"locale":{"type":"string","enum":["en","cs"]},"completeness":{"type":"string","enum":["search-index-release","invalid-input","unavailable"]},"release":{"type":"string"},"error":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"retryAfter":{"type":"number"},"data":{"type":"object","properties":{"scope":{"type":"object","properties":{"kind":{"type":"string","enum":["all","destination"]},"code":{"type":"string"}},"required":["kind","code"],"additionalProperties":false},"items":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":["string","null"],"enum":["country","region","district","city","highlight",null]},"region":{"type":["string","null"],"description":"The region it lies in; null for a country or a region."},"country":{"type":["string","null"],"description":"The country it lies in; null for a country."},"places":{"type":"integer","minimum":0,"description":"Indexed places in the destination."},"match":{"type":"string","enum":["name","intent"]},"score":{"type":["number","null"],"description":"Engine-specific ranking signal; compare only within the same match method, not a suitability probability."},"url":{"type":"string","description":"The destination's canonical GoVisit page."},"entityType":{"type":"string","const":"destination"},"code":{"type":"string","description":"Stable code accepted by search_places.destination."},"classifications":{"type":"array","items":{"type":"string"},"description":"Published classifications; highlight is not a geographic size or tier."},"containmentMethod":{"enum":["identity","division-coverage","parent-chain"],"description":"Canonical relation used to establish within scope; parent-chain is disclosed fallback when coverage is absent."}},"required":["code","entityType","name","url","match","score"]}},"count":{"type":"integer","minimum":0}},"required":["scope","items","count"],"additionalProperties":false}},"required":["schemaVersion","locale","completeness","data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_related_places":{"post":{"operationId":"v1_list_related_places","summary":"Get related places","tags":["Places"],"description":"Find bounded, page-local related place cards using optional published-field filters.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-related-places"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"name":{"type":"string","description":"Optional published place name or partial name."},"category":{"type":"string","description":"Optional published category code."},"audience":{"type":"string","description":"Optional published audience label or code."},"accessibility":{"type":"string","description":"Optional published accessibility label or code."},"neighborhood":{"type":"string","description":"Optional published neighborhood."},"administrativeArea":{"type":"string","description":"Optional published administrative area."},"activityType":{"type":"string","description":"Optional published activity type."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_destination_highlights":{"post":{"operationId":"v1_list_destination_highlights","summary":"Get destination highlights","tags":["Destinations"],"description":"Read the bounded published highlights shown on the destination page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-destination-highlights"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_destination_categories":{"post":{"operationId":"v1_list_destination_categories","summary":"Get destination categories","tags":["Destinations"],"description":"Read the published category projection shown on the destination page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-destination-categories"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/list_destination_activities":{"post":{"operationId":"v1_list_destination_activities","summary":"Get destination activities","tags":["Activities"],"description":"Read the bounded published activities shown on the destination page.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/list-destination-activities"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0}},"required":["items","count"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_documentation_page":{"post":{"operationId":"v1_get_documentation_page","summary":"Read documentation page","tags":["Documentation"],"description":"Read bounded structured content from the current published article.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-documentation-page"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"section":{"type":"string","minLength":1,"maxLength":200,"description":"Optional heading anchor identifying one published section."}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"content":{"type":"array"},"truncated":{"type":"boolean"}},"required":["content","truncated"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_page_faq":{"post":{"operationId":"v1_get_page_faq","summary":"Read published page FAQs","tags":["Documentation"],"description":"Read the published questions and answers on the current blog or documentation article.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-page-faq"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"query":{"type":"string","maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"required":["pagePath"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array"},"count":{"type":"integer","minimum":0},"truncated":{"type":"boolean"}},"required":["items","count","truncated"]}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}},"/api/tools/v1/get_statistics":{"post":{"operationId":"v1_get_statistics","summary":"Get statistics","tags":["Statistics"],"description":"Read governed catalog coverage statistics for the World or the current Destination.","externalDocs":{"url":"https://govisit.ai/en/docs/developers/tools/get-statistics"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pagePath":{"type":"string","minLength":1,"maxLength":1000,"description":"Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."},"category":{"type":"string","enum":["coverage"],"default":"coverage","description":"Statistic family. Coverage is the only supported family today."}},"additionalProperties":false,"required":["pagePath"]},"example":{"pagePath":"/en/places"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"Governed statistics from the cached public page. Each metric has its own observation date. Missing or invalid observations are unknown, never zero.","properties":{"schemaVersion":{"const":"1"},"pageType":{"enum":["home","places-index","destinations-index","destination","category","collection"]},"pageId":{"type":"string"},"locale":{"type":"string"},"canonicalUrl":{"type":"string"},"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]},"freshness":{"type":"object","properties":{"contentVersion":{"type":["string","number","null"]},"updatedAt":{"type":["string","null"]}},"required":["contentVersion","updatedAt"],"additionalProperties":false},"completeness":{"enum":["page-published-statistics","partial","unavailable","invalid-input"]},"data":{"type":"object","properties":{"category":{"const":"coverage"},"scope":{"type":"object","properties":{"kind":{"enum":["world","destination"]},"code":{"type":"string"}},"required":["kind","code"],"additionalProperties":false},"metrics":{"type":"array","maxItems":22,"items":{"type":"object","properties":{"code":{"enum":["places","activities","collections","destinations","destinations_country","destinations_region","destinations_district","destinations_city","destinations_highlight","places_arts_and_entertainment","places_community_and_government","places_cultural_and_historic","places_education","places_food_and_drink","places_geographic_entities","places_health_care","places_lifestyle_services","places_lodging","places_services_and_business","places_shopping","places_sports_and_recreation","places_travel_and_transportation"]},"name":{"type":"string","maxLength":4000},"description":{"type":"string","maxLength":4000},"value":{"type":"integer","minimum":0,"maximum":9007199254740991},"unit":{"const":"count"},"definitionVersion":{"const":"1"},"source":{"const":"catalog_coverage"},"observedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$"},"computedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$"},"window":{"type":"object","properties":{"code":{"const":"all_time"},"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$"},"timeZone":{"type":["string","null"]}},"required":["code","start","end","timeZone"],"additionalProperties":false}},"additionalProperties":false,"required":["code","name","description","value","unit","definitionVersion","source","observedAt","computedAt","window"]}},"count":{"type":"integer","minimum":0,"maximum":22},"missingCodes":{"type":"array","maxItems":22,"uniqueItems":true,"items":{"enum":["places","activities","collections","destinations","destinations_country","destinations_region","destinations_district","destinations_city","destinations_highlight","places_arts_and_entertainment","places_community_and_government","places_cultural_and_historic","places_education","places_food_and_drink","places_geographic_entities","places_health_care","places_lifestyle_services","places_lodging","places_services_and_business","places_shopping","places_sports_and_recreation","places_travel_and_transportation"]}}},"required":["category","scope","metrics","count","missingCodes"],"additionalProperties":false},"error":{"type":"string"}},"required":["schemaVersion","pageType","pageId","locale","canonicalUrl","contentVersion","updatedAt","freshness","completeness","data"],"additionalProperties":false}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":0}}}},"default":{"description":"Invalid request or unavailable tool execution"}}}}}}
