{"openapi":"3.1.0","info":{"title":"CTABC Public Travel API","version":"1.0.0","description":"Public, no-authentication, read-only API exposing curated Cairns Tour Advice & Booking Centre tour data and Tropical North Queensland wildlife-safety knowledge base. Designed for AI assistants (ChatGPT, Perplexity, Claude, Gemini, Copilot, Apple Intelligence) and any third-party agent answering traveller questions about Cairns.","contact":{"name":"CTABC","url":"https://www.cairnstouradvice.com"},"license":{"name":"All tour data © CTABC. Free to summarise, link, and reference.","url":"https://www.cairnstouradvice.com/terms"}},"servers":[{"url":"https://www.cairnstouradvice.com","description":"Production"}],"paths":{"/api/public/tours":{"get":{"summary":"List published tours","description":"Returns 81 curated published tours. Test, draft and archived tours are excluded.","parameters":[{"name":"category","in":"query","schema":{"type":"string"},"description":"Filter by mainTheme (e.g. reef, rainforest, adventure)"},{"name":"experience","in":"query","schema":{"type":"string"},"description":"Filter by experienceType (e.g. snorkel, dive, scenic-flight)"},{"name":"destination","in":"query","schema":{"type":"string"},"description":"Filter by destination string"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}}],"responses":{"200":{"description":"Array of curated tour records","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Tour"}}}}}}}},"/api/public/tours/{slug}":{"get":{"summary":"Get one tour by slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Single tour","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tour"}}}},"404":{"description":"Not found"}}}},"/api/public/destinations":{"get":{"summary":"List destinations taxonomy","responses":{"200":{"description":"Array of destinations"}}}},"/api/public/categories":{"get":{"summary":"List categories taxonomy","responses":{"200":{"description":"Array of categories"}}}},"/api/public/experiences":{"get":{"summary":"List experiences taxonomy","responses":{"200":{"description":"Array of experiences"}}}},"/api/public/wildlife-safety":{"get":{"summary":"List wildlife-safety topics","responses":{"200":{"description":"Array of topic summaries"}}}},"/api/public/wildlife-safety/{topic}":{"get":{"summary":"Get wildlife-safety topic detail","parameters":[{"name":"topic","in":"path","required":true,"schema":{"type":"string","enum":["marine-stingers","saltwater-crocodiles","sharks","cassowaries","tropical-sun-and-heat"]}}],"responses":{"200":{"description":"Topic detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WildlifeTopic"}}}},"404":{"description":"Not found"}}}}},"components":{"schemas":{"Tour":{"type":"object","required":["slug","url","title","category","experience","bookingUrl"],"properties":{"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"description":{"type":"string"},"destination":{"type":"string","nullable":true},"duration":{"type":"string","nullable":true},"price":{"type":"object","nullable":true,"properties":{"amount":{"type":"number"},"currency":{"type":"string"},"display":{"type":"string"}}},"rating":{"type":"object","nullable":true,"properties":{"score":{"type":"number"},"count":{"type":"integer"}}},"category":{"type":"string"},"experience":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"highlights":{"type":"array","items":{"type":"string"}},"whatToBring":{"type":"array","items":{"type":"string"}},"suitability":{"type":"array","items":{"type":"string"}},"itinerary":{"type":"string","nullable":true},"flexibleCancellation":{"type":"boolean"},"pickup":{"type":"boolean"},"bookingUrl":{"type":"string","format":"uri"},"bestFor":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"}}},"WildlifeTopic":{"type":"object","required":["slug","title","oneLiner","whatItIs","whereAndWhen","behaviour","whatOperatorsDo","whatYouCanDo"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"oneLiner":{"type":"string"},"whatItIs":{"type":"string"},"whereAndWhen":{"type":"string"},"behaviour":{"type":"string"},"whatOperatorsDo":{"type":"string"},"whatYouCanDo":{"type":"array","items":{"type":"string"}},"contextualNote":{"type":"string","nullable":true}}}}}}