{"openapi":"3.1.0","info":{"title":"Imóveis da Vini Imóveis — API pública para agentes","version":"1.0.0","description":"API pública SEM CHAVE e somente leitura do estoque publicado no site, mais o pedido de contato (vira lead da imobiliária, exige consentimento). Limite: 60 consultas por minuto por IP; pedidos de contato limitados por IP e por telefone. Os valores e a disponibilidade são confirmados pelo corretor."},"servers":[{"url":"https://vini.viniun.com.br/agentes"}],"paths":{"/imoveis":{"get":{"operationId":"buscarImoveis","summary":"Busca imóveis (texto livre e filtros)","parameters":[{"name":"pedido","in":"query","required":false,"schema":{"type":"string"},"description":"O que a pessoa procura, em português."},{"name":"finalidade","in":"query","required":false,"schema":{"type":"string"},"description":"venda | locacao | temporada | lancamento"},{"name":"tipo","in":"query","required":false,"schema":{"type":"string"},"description":"apartamento, casa, terreno…"},{"name":"cidade","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"bairro","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"preco_min","in":"query","required":false,"schema":{"type":"number"},"description":"R$"},{"name":"preco_max","in":"query","required":false,"schema":{"type":"number"},"description":"R$"},{"name":"dormitorios_min","in":"query","required":false,"schema":{"type":"integer"},"description":""},{"name":"vagas_min","in":"query","required":false,"schema":{"type":"integer"},"description":""},{"name":"area_min","in":"query","required":false,"schema":{"type":"number"},"description":"m²"},{"name":"minha_casa_minha_vida","in":"query","required":false,"schema":{"type":"boolean"},"description":""},{"name":"ordem","in":"query","required":false,"schema":{"type":"string"},"description":"relevancia | menor_valor | maior_valor | recentes | maior_area"},{"name":"limite","in":"query","required":false,"schema":{"type":"integer"},"description":"1 a 12"},{"name":"pagina","in":"query","required":false,"schema":{"type":"integer"},"description":""}],"responses":{"200":{"description":"Imóveis encontrados","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/imoveis/{referencia}":{"get":{"operationId":"verImovel","summary":"Ficha do imóvel pela referência","parameters":[{"name":"referencia","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ficha","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/contato":{"post":{"operationId":"falarComCorretor","summary":"Pedido de contato (ou de visita, com tipo=visita) — vira lead","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contato"}}}},"responses":{"200":{"description":"Pedido registrado","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Erro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}}},"components":{"schemas":{"Erro":{"type":"object","properties":{"erro":{"type":"string"}}},"Contato":{"type":"object","required":["nome","whatsapp","consentimento"],"properties":{"tipo":{"type":"string","enum":["contato","visita"],"default":"contato"},"nome":{"type":"string"},"whatsapp":{"type":"string"},"email":{"type":"string"},"mensagem":{"type":"string"},"referencia":{"type":"string"},"data":{"type":"string","description":"AAAA-MM-DD (visita)"},"periodo":{"type":"string","enum":["manha","tarde","noite"]},"hora":{"type":"string","description":"HH:MM"},"consentimento":{"type":"boolean","description":"true só se a pessoa autorizou o contato pelo WhatsApp"}}}}}}