{"openapi":"3.1.0","info":{"title":"melb.si data","version":"0.1.0","description":"Read-only curated Melbourne data. No API key. CC BY 4.0. About provenance may be absent until supplied by the publisher.","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://data.melb.si"}],"paths":{"/v1":{"get":{"summary":"List datasets and usage","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/holidays":{"get":{"summary":"Find Victorian public holidays by year or exact date, with official sources and checked dates; uncovered years are unknown.","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","minimum":1900,"maximum":9999}},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/ai-help":{"get":{"summary":"Find curated AI training and assistance for Victorian small businesses, including eligibility, cost, sources and checked dates.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/events":{"get":{"summary":"List upcoming Melbourne AI events from today in Melbourne or a later date, with sources and checked dates.","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/ai-rules":{"get":{"summary":"Find curated Australian small business AI rules and guidance; preserve confirmed versus inferred status, sources and checked dates.","parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/about":{"get":{"summary":"Explain who operates melb.si, its services and data policy, using the publisher's own information.","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/everyday":{"get":{"summary":"Answer everyday questions about living in or visiting Melbourne and Victoria (tap water, myki and trams, parking signs, tipping, rental bonds, emergency numbers, licences and more). Returns up to five checked answers, ranked by English word or Chinese substring matches in questions, aliases and answers, with official sources and checked dates.","description":"Provide q or tag (or both). tag is an exact case-insensitive tag. Search question, aliases and answer only; English words and Chinese substrings. Rank by term/field hits, ties in source order, return at most five records. No filters is HTTP 400.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}},"/v1/stats":{"get":{"summary":"Aggregated counters with test traffic separated","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":366,"default":30}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","both"],"default":"both"}}],"responses":{"200":{"description":"Curated data with attribution; records preserve sources and checked where available.","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"},"lang":{"type":"string"}}}}}},"400":{"description":"Invalid parameters."},"503":{"description":"Service unavailable."}}}}}}