{"openapi":"3.1.0","info":{"title":"Yenta Venue Read API","version":"1.0.0","description":"This venue's machine-consumable JSON reads over `/v1/public/venue` — only the capabilities this venue has granted appear (an ungranted read is absent, not refused). Anonymous, read-only, no authentication. Every result carries a `source` freshness reference. Powered by Yenta."},"servers":[{"url":"https://celavi-dubai.venues.dev.yentaknows.ai","description":"This venue host."}],"externalDocs":{"description":"llms.txt — the agent entrypoint naming every Yenta surface.","url":"https://dev.yentaknows.ai/llms.txt"},"x-mcp":{"url":"https://celavi-dubai.venues.dev.yentaknows.ai/mcp","transport":"streamable-http"},"paths":{"/v1/public/venue/profile":{"get":{"operationId":"get_venue_profile","summary":"Get this venue's profile","description":"This venue's published profile summary, or `not_available`.","responses":{"200":{"description":"The venue profile (its own website when it grants get_venue_links, and open_now/today when it states hours and a timezone), or not_available.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"item":{"$ref":"#/components/schemas/Content"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/menu":{"get":{"operationId":"search_menu","summary":"Search this venue's menu","description":"Published menu items by text, required dietary tags and allergens to avoid, matched case- and separator-insensitively.","parameters":[{"name":"query","in":"query","required":false,"description":"Text to match against item names and descriptions, and section and menu names; every word must match; connector words (and, with, in) aren't required.","schema":{"type":"string","maxLength":256}},{"name":"dietary_tags","in":"query","required":false,"description":"Require ALL of these tags; case- and separator-insensitive (gluten free = gluten-free).","schema":{"type":"array","items":{"type":"string"},"maxItems":8}},{"name":"allergens","in":"query","required":false,"description":"Exclude items declaring any of these allergens.","schema":{"type":"array","items":{"type":"string"},"maxItems":8}},{"name":"max_price","in":"query","required":false,"description":"Only items priced at or under this, in the menu's currency.","schema":{"type":"number","minimum":0,"maximum":1000000.0}},{"name":"limit","in":"query","required":false,"description":"Maximum items to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":50}},{"name":"cursor","in":"query","required":false,"description":"Offset of the first item to return.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"responses":{"200":{"description":"A page of matching menu items.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"A parameter fell outside its bounds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/menus":{"get":{"operationId":"get_menu","summary":"Get this venue's whole menu","description":"The whole approved menu as nested menus, sections and items, unpaginated.","responses":{"200":{"description":"The nested menu document, or not_available.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"item":{"$ref":"#/components/schemas/Content"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/dietary-options":{"get":{"operationId":"get_dietary_options","summary":"Get this venue's dietary options","description":"Every dietary tag and allergen declared on the approved menu, plus examples (per dietary tag, up to 3 item names in menu order) and allergen_counts (per allergen, how many items declare it; counts only).","responses":{"200":{"description":"The dietary vocabulary with examples and allergen_counts, or not_available.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"item":{"$ref":"#/components/schemas/Content"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/faqs":{"get":{"operationId":"get_venue_faq","summary":"Search this venue's FAQs","description":"The approved revision's FAQs, optionally filtered by text.","parameters":[{"name":"query","in":"query","required":false,"description":"Text to match against questions and answers.","schema":{"type":"string","maxLength":256}},{"name":"limit","in":"query","required":false,"description":"Maximum items to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":50}},{"name":"cursor","in":"query","required":false,"description":"Offset of the first item to return.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"responses":{"200":{"description":"A page of FAQs.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"A parameter fell outside its bounds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/links":{"get":{"operationId":"get_venue_links","summary":"Get this venue's links","description":"The approved revision's booking, ordering and website links (L26).","responses":{"200":{"description":"The venue's links, or not_available.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/venue/events":{"get":{"operationId":"search_venue_events","summary":"Search this venue's events","description":"Dated events overlapping a date window (defaults to from today).","parameters":[{"name":"from_date","in":"query","required":false,"description":"ISO date; defaults to today.","schema":{"type":"string","format":"date"}},{"name":"to_date","in":"query","required":false,"description":"ISO date; open-ended if omitted.","schema":{"type":"string","format":"date"}},{"name":"event_type","in":"query","required":false,"description":"Exact event_type spelling from published events.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum items to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":50}},{"name":"cursor","in":"query","required":false,"description":"Offset of the first item to return.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"responses":{"200":{"description":"A page of events. Results carry booking_url, the partner's booking page when present, and canonical_url, the destination's page.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","not_available"]},"reason":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"source":{"$ref":"#/components/schemas/Source"}},"required":["status","source"]}}}},"404":{"description":"Wrong host family, or no such resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"A parameter fell outside its bounds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Source":{"type":"object","description":"Which approved revision an answer was read from.","properties":{"content_version":{"type":"integer"},"source":{"type":"string","description":"'directory' for cross-venue reads, or 'approved-content-revision:<id>' for a single venue/destination."},"approved_at":{"type":"string","format":"date-time","description":"When the cited revision was approved (ISO-8601), so an answer can be quoted 'as of' that time. Present on a single venue/destination answer and on each search_venues candidate's own per-item source; absent on a cross-venue directory footer."},"powered_by":{"type":"string","description":"Brand signature on the entry reads only."}},"required":["content_version","source"]},"Pagination":{"type":"object","description":"The page actually served; next_cursor is null past the last page.","properties":{"limit":{"type":"integer"},"cursor":{"type":"integer"},"next_cursor":{"type":["integer","null"]},"total":{"type":"integer"}},"required":["limit","cursor","total"]},"Content":{"type":"object","description":"One approved-content item — a menu item, a FAQ, a link, a listing, an event, an offer, a season or a guide. Its fields depend on the resource (see each operation); no organization or row id ever appears.","additionalProperties":true},"Error":{"type":"object","description":"The uniform error envelope; every 404 is byte-identical.","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}