{"openapi":"3.0.3","info":{"title":"Celebria event marketplace API","version":"1.0.0","description":"Public discovery surface for Celebria, the Portuguese marketplace for event venues and event services. Catalog pages and llms.txt are unauthenticated. Write APIs for listings, messages, and billing require a signed-in session and are not part of this document. Search quota: 3 requests / 86400 seconds anonymous, 10 signed in. Successful and rejected search responses include RateLimit-Policy and RateLimit (draft-ietf-httpapi-ratelimit-headers). HTTP 429 also includes Retry-After, in seconds.","contact":{"email":"suporte@celebriaeventos.pt","url":"https://celebriaeventos.pt/contacto"}},"servers":[{"url":"https://celebriaeventos.pt"}],"paths":{"/":{"get":{"summary":"Homepage","description":"HTML by default. Accept: text/markdown returns Markdown with Vary: Accept.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"summary":"Agent catalog map","responses":{"200":{"description":"llms.txt","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"summary":"Long-form listing summaries","responses":{"200":{"description":"llms-full.txt","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"Public URL list.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"robots.txt","description":"Crawler rules.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/spaces":{"get":{"summary":"Event venues","description":"Approved event spaces in Portugal.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/servicos":{"get":{"summary":"Event services","description":"Approved event service providers.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/porque-celebria":{"get":{"summary":"About Celebria","description":"Canonical explanation of the marketplace. English alias: /about.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/contacto":{"get":{"summary":"Contact","description":"Support email suporte@celebriaeventos.pt. English alias: /contact.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/privacidade":{"get":{"summary":"Privacy","description":"Privacy policy. English alias: /privacy.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/desenvolvedores":{"get":{"summary":"Developer docs","description":"How agents and developers should call Celebria.","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"summary":"This document","responses":{"200":{"description":"OpenAPI document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/search":{"post":{"operationId":"searchMarketplace","summary":"Natural-language marketplace search","description":"Matches venues and services in Portugal. Optional session cookie raises the daily quota. Does not book or confirm availability.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"What the visitor needs, in natural language."},"broaden":{"type":"boolean"},"catalog":{"type":"string","enum":["spaces","services","both"]}}}}}},"responses":{"200":{"description":"Search results","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"RateLimit":{"$ref":"#/components/headers/RateLimit"}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Quota exceeded","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}}},"components":{"headers":{"RateLimit-Policy":{"description":"Quota policy. search allows q requests per w=86400 seconds.","schema":{"type":"string"},"example":"\"search\";q=3;w=86400"},"RateLimit":{"description":"Remaining requests (r) and seconds until the window resets (t).","schema":{"type":"string"},"example":"\"search\";r=2;t=3600"},"Retry-After":{"description":"Seconds to wait before retrying a 429.","schema":{"type":"integer"}}}}}