{"openapi":"3.1.0","info":{"title":"Ofertas Apolônia Grade — API pública de conteúdo","version":"1.0.0","description":"Somente leitura de páginas públicas. Não contém dados pessoais, inscrições, pedidos ou pagamentos. Sem autenticação; operações administrativas não existem. Não faz compras ou reservas. Se a plataforma responder 429, respeite Retry-After."},"servers":[{"url":"https://ofertas.apoloniarosadodeserto.com.br"}],"security":[],"paths":{"/api/v1/site":{"get":{"operationId":"getPublicSite","summary":"Listar páginas públicas","description":"Retorna a identidade do site e os caminhos indexáveis. A lista é pequena, completa e não paginada.","responses":{"200":{"description":"Índice público","content":{"application/json":{"schema":{"type":"object","required":["name","url","pages"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"pages":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Erro estruturado. Corrija a requisição conforme resolution.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail","code","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"}}}}}},"405":{"description":"Erro estruturado. Corrija a requisição conforme resolution.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail","code","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"}}}}}}}}},"/api/v1/page":{"get":{"operationId":"getPublicPage","summary":"Ler uma página pública","description":"Retorna conteúdo Markdown já publicado. Aceita somente caminhos da lista de getPublicSite, nunca URLs externas ou caminhos de arquivos.","parameters":[{"name":"path","in":"query","required":true,"description":"Caminho listado no índice, por exemplo /about. Não inclua domínio.","schema":{"type":"string","maxLength":300},"example":"/about"}],"responses":{"200":{"description":"Conteúdo público","content":{"application/json":{"schema":{"type":"object","required":["url","path","markdown"],"properties":{"url":{"type":"string","format":"uri"},"path":{"type":"string"},"markdown":{"type":"string"}}}}}},"400":{"description":"Erro estruturado. Corrija a requisição conforme resolution.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail","code","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"}}}}}},"404":{"description":"Erro estruturado. Corrija a requisição conforme resolution.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail","code","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"}}}}}},"405":{"description":"Erro estruturado. Corrija a requisição conforme resolution.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail","code","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"}}}}}}}}}}}