{"openapi":"3.1.0","info":{"title":"Pé na Areia — API pública","version":"1.1.0","description":"APIs existentes e adaptador REST do MCP 0.2.0. Os filtros MCP não alteram /api/public/produtos. Disponibilidade e preços devem ser confirmados com a imobiliária. Nenhum endpoint administrativo é disponibilizado por este documento."},"servers":[{"url":"https://www.imobiliariapenaareia.com.br"}],"paths":{"/api/mcp/.mcp/list-tools":{"get":{"operationId":"listMcpToolSchemas","summary":"Descoberta das quatro ferramentas e schemas completos de entrada/saída","responses":{"200":{"description":"Contratos MCP, também disponíveis por tools/list","content":{"application/json":{"schema":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","required":["name","inputSchema","outputSchema"],"properties":{"name":{"type":"string"},"inputSchema":{"type":"object"},"outputSchema":{"type":"object"}}}}}}}}}}}},"/api/mcp/.mcp/invoke-tool/search_properties":{"post":{"operationId":"searchMcpPublicProperties","summary":"Busca MCP pelo adaptador REST existente, com filtros, unidades e totais","description":"Somente registros ativos e não excluídos. Totais antes do limite; filtros de unidade são combinados. Preços em BRL e área em m². Faixas invertidas e parâmetros desconhecidos são inválidos. OAuth pode ser exigido conforme configuração/metadados do serviço.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"nome":{"type":"string","minLength":1,"maxLength":500},"query":{"type":"string","minLength":1,"maxLength":500},"location":{"type":"string","minLength":1,"maxLength":500},"construtora":{"type":"string","minLength":1,"maxLength":500},"quartos":{"type":"integer","minimum":0},"preco_min":{"type":"number","minimum":0},"preco_max":{"type":"number","minimum":0},"tamanho_min":{"type":"number","minimum":0},"tamanho_max":{"type":"number","minimum":0},"featured_only":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0,"description":"Offset de empreendimentos após os filtros; não altera totais"},"modo":{"type":"string","enum":["lista","contagem_por_localizacao"],"default":"lista"}}}}}},"responses":{"200":{"description":"Resultado da ferramenta; verificar isError, não apenas HTTP 200","content":{"application/json":{"schema":{"type":"object","properties":{"structuredContent":{"type":"object","additionalProperties":false,"required":["total_empreendimentos","total_unidades","imoveis","results","limit","offset","has_more","next_offset"],"properties":{"total_empreendimentos":{"type":"integer","minimum":0},"total_unidades":{"type":"integer","minimum":0},"imoveis":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","title","location","construtora","entrega","description","image_url","gallery_urls","site","book_url","featured","status","title_en","title_es","description_en","description_es","location_en","location_es","slug_en","slug_es","seo_text","seo_text_en","seo_text_es","repasses"],"properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"title":{"type":"string"},"location":{"type":["string","null"]},"construtora":{"type":["string","null"]},"entrega":{"type":["string","null"]},"description":{"type":["string","null"]},"image_url":{"type":["string","null"]},"gallery_urls":{"type":"array","items":{"type":"string"}},"site":{"type":["string","null"]},"book_url":{"type":["string","null"]},"featured":{"type":"number"},"status":{"const":"active","type":"string"},"title_en":{"type":["string","null"]},"title_es":{"type":["string","null"]},"description_en":{"type":["string","null"]},"description_es":{"type":["string","null"]},"location_en":{"type":["string","null"]},"location_es":{"type":["string","null"]},"slug_en":{"type":["string","null"]},"slug_es":{"type":["string","null"]},"seo_text":{"type":["string","null"]},"seo_text_en":{"type":["string","null"]},"seo_text_es":{"type":["string","null"]},"repasses":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","produto_id","quartos","tamanho","valor","posicao","unidade","andar","destaque","posicao_en","posicao_es"],"properties":{"id":{"type":"string"},"produto_id":{"type":"string"},"quartos":{"type":["number","null"]},"tamanho":{"type":["number","null"],"description":"m²"},"valor":{"type":["number","null"],"description":"Reais (BRL)"},"posicao":{"type":["string","null"]},"unidade":{"type":["string","null"]},"andar":{"type":["string","null"]},"destaque":{"type":"number"},"posicao_en":{"type":["string","null"]},"posicao_es":{"type":["string","null"]}}}}}}},"results":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","title","location","construtora","entrega","description","image_url","gallery_urls","site","book_url","featured","status","title_en","title_es","description_en","description_es","location_en","location_es","slug_en","slug_es","seo_text","seo_text_en","seo_text_es","repasses"],"properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"title":{"type":"string"},"location":{"type":["string","null"]},"construtora":{"type":["string","null"]},"entrega":{"type":["string","null"]},"description":{"type":["string","null"]},"image_url":{"type":["string","null"]},"gallery_urls":{"type":"array","items":{"type":"string"}},"site":{"type":["string","null"]},"book_url":{"type":["string","null"]},"featured":{"type":"number"},"status":{"const":"active","type":"string"},"title_en":{"type":["string","null"]},"title_es":{"type":["string","null"]},"description_en":{"type":["string","null"]},"description_es":{"type":["string","null"]},"location_en":{"type":["string","null"]},"location_es":{"type":["string","null"]},"slug_en":{"type":["string","null"]},"slug_es":{"type":["string","null"]},"seo_text":{"type":["string","null"]},"seo_text_en":{"type":["string","null"]},"seo_text_es":{"type":["string","null"]},"repasses":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","produto_id","quartos","tamanho","valor","posicao","unidade","andar","destaque","posicao_en","posicao_es"],"properties":{"id":{"type":"string"},"produto_id":{"type":"string"},"quartos":{"type":["number","null"]},"tamanho":{"type":["number","null"],"description":"m²"},"valor":{"type":["number","null"],"description":"Reais (BRL)"},"posicao":{"type":["string","null"]},"unidade":{"type":["string","null"]},"andar":{"type":["string","null"]},"destaque":{"type":"number"},"posicao_en":{"type":["string","null"]},"posicao_es":{"type":["string","null"]}}}}}},"description":"Alias de imoveis"},"limit":{"type":"integer","minimum":1,"maximum":50},"offset":{"type":"integer","minimum":0},"has_more":{"type":"boolean"},"next_offset":{"type":["integer","null"],"minimum":0,"description":"Null no fim da busca ou no modo de agrupamento"},"empreendimentos_por_localizacao":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"unidades_por_localizacao":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}}},"isError":{"type":"boolean"},"content":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"Argumentos inválidos, tipo incorreto, chave desconhecida ou faixa invertida"},"401":{"description":"Autenticação exigida pela configuração OAuth"},"500":{"description":"Falha interna sem detalhes de credenciais"}}}},"/api/public/produtos":{"get":{"operationId":"listPublishedProperties","summary":"Empreendimentos ativos publicados","responses":{"200":{"description":"Lista de empreendimentos","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}},"/api/public/product":{"get":{"operationId":"getPublishedProperty","summary":"Empreendimento e unidades ativas","parameters":[{"name":"slug","in":"query","required":true,"description":"Slug publicado em português, inglês ou espanhol, ou ID existente.","schema":{"type":"string"}}],"responses":{"200":{"description":"Conteúdo público publicado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Imóvel não encontrado"}}}},"/api/public/repasses":{"get":{"operationId":"listPublishedUnits","summary":"Unidades ativas e informações públicas","responses":{"200":{"description":"Unidades publicadas, sem o campo privado de cliente","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}},"/api/public/blog-posts":{"get":{"operationId":"listPublishedPosts","summary":"Artigos publicados","responses":{"200":{"description":"Lista de artigos","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}},"/api/public/blog-post":{"get":{"operationId":"getPublishedPost","summary":"Artigo por slug ou ID","parameters":[{"name":"slug","in":"query","required":true,"description":"Slug publicado em português, inglês ou espanhol, ou ID existente.","schema":{"type":"string"}}],"responses":{"200":{"description":"Conteúdo público publicado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Artigo não encontrado"}}}},"/api/public/site-settings":{"get":{"operationId":"getPublicSiteSettings","summary":"Contatos e apresentação pública","responses":{"200":{"description":"Conteúdo público publicado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/public/newsletter":{"post":{"operationId":"subscribeNewsletter","summary":"Cadastro de email solicitado pelo próprio visitante","description":"Escrita existente; requer intenção explícita do titular. Não é uma ferramenta do MCP.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Email já registrado"},"201":{"description":"Inscrição criada"},"400":{"description":"Email inválido"}}}},"/api/functions/youtube-videos":{"get":{"operationId":"getPublicPodcastVideos","summary":"Episódios do PNACAST publicados no YouTube","responses":{"200":{"description":"Conteúdo público publicado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/health":{"get":{"operationId":"health","summary":"Estado da aplicação e conexão de leitura","responses":{"200":{"description":"Conteúdo público publicado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}