Mudanças da API

Esta página existe para uma coisa só: que uma mudança nossa não te encontre em produção.

Aqui vai o que te afeta — um campo que saiu, um novo, um comportamento que mudou. O que não te afeta não entra, então esta lista é curta de propósito e vale a pena ler por inteiro.

A API não muda de versão: property-v1 é a superfície e fica. O que muda são coisas pontuais dentro dela, e é por isso que as entradas vêm com a sua data e não com um número. Se o seu código funciona hoje, a data da última entrada diz desde quando.

Como ler cada entrada:

🔴 Quebrase você estava usando, o seu código para de funcionar. Sempre diz o que colocar no lugar
🟢 Somaalgo novo. Você não tem de fazer nada; está aqui para que saiba que existe
🔧 Correçãoalgo que não funcionava e agora funciona. Você não tem de mudar nada

📧 Uma mudança que quebra é avisada por e-mail, com 30 dias de antecedência

Você não precisa assinar nada nem revisar esta página todos os dias. Quando uma mudança 🔴 estiver decidida, escrevemos para o e-mail da aplicação registrada pelo menos 30 dias antes de ela ir para produção, dizendo o que muda, o que colocar no lugar e a data exata.

Nesses 30 dias a API continua funcionando como hoje. Se o prazo não for suficiente para você, escreva para nós: conversamos antes de mover qualquer coisa.

🔴 Quebrae-mail com 30 dias de antecedência, e só depois vai ao ar
🟢 Soma · 🔧 Correçãonão avisamos por e-mail: não te obrigam a fazer nada. Aparecem aqui quando saem

Se o seu e-mail de contato mudou, avise-nos em dev@mapaprop.com com o seu appId — é para esse endereço que vamos escrever.

As entradas de 21 de outubro de 2026 são anteriores a este compromisso e saíram no mesmo dia. De agora em diante, uma 🔴 é anunciada antes.


21 de outubro de 2026

🔴 remote.publicado já não viaja — use remoteStatus

Afeta: consultar o estado de um anúncio ou de um empreendimento, em todos os portais.

O veredito "está publicado?" viajava em dois lugares: remoteStatus e remote.publicado. Era o mesmo dado, e dois campos que podem se contradizer são piores do que um.

- if (r.remote.publicado) { … }
+ if (r.remoteStatus === 'published') { … }

remoteStatus diz a mesma coisa, é o mesmo campo em todos os portais, e vale tanto para anúncios como para empreendimentos. Os valores são published, unpublished ou null (o portal não nos deu com o que decidir). O quando continua em remote.unpublishedAt.

⚠️ Se você estava lendo publicado num empreendimento da Zonaprop, é a mesma mudança: a página do empreendimento já diz assim.

🔴 Argenprop: três campos do estado mudaram de nome

Afeta: GET …/publication/argenpropapi — o bloco remote.

Os nomes da Argenprop estavam em espanhol e os da Zonaprop em inglês, para os mesmos conceitos. Se você suportava os dois portais, tinha de escrever duas leituras para cada pergunta.

AntesAgoraO que é
remote.estadoPortalremote.publicationStateo estado tal como o portal diz: VIGENTE · SUSPENDIDO · HISTORICO · RESERVADO · VENDIDO
remote.puntosremote.pointsos pontos daquele anúncio
remote.idAvisoremote.portalItemIdo id que o portal deu ao anúncio

Agora os dois portais usam os mesmos nomes — cada um com os seus próprios valores, que continuam sendo os do portal. remote.visible não mudou.

🟢 Argenprop: remote.url já traz o endereço público do anúncio

Afeta: GET …/publication/argenpropapi.

Vinha sempre null. Agora chega montada (https://www.argenprop.com/aviso--20722329), igual à Zonaprop. Não precisa construí-la: se o portal mudar o seu formato, corrigimos de um lado só.

Continua vindo null nos dois casos que sempre dissemos: se ainda não temos o id do portal, ou se não podemos montá-la com certeza para o país do imóvel.

🔧 Argenprop: as unidades de um empreendimento agora são agrupadas corretamente

Afeta: PUT /developments/{paId}/publication/argenpropapi.

Agrupar unidades devolvia uma falha por cada uma ("a unidade não existe") mesmo que as unidades estivessem publicadas. Era nosso, e já está corrigido: você pode referenciá-las em units[] com o código que você deu a elas ou com o seu paId — os dois funcionam.

🔧 Menos 503 ao publicar um empreendimento grande

Afeta: PUT /developments/{paId}/publication/{portal}.

Quando o portal demorava a responder uma das chamadas internas, a publicação inteira ficava sem tempo e você recebia um 503 sem detalhe. Ajustamos quanto esperamos cada uma, então agora o lote termina e o que falhou volta por unidade, com o seu motivo — que é o que a resposta sempre prometeu.

Não é necessário tentar várias vezes: se uma unidade falha, o motivo está na resposta.

📘 Esclarecimento: publicar um empreendimento não é igual nos dois portais

Não é uma mudança da API — é algo que a documentação dizia errado, e vale a pena revisar se você escreveu o seu fluxo lendo-a:

ZonapropArgenprop
As unidadesviajam dentro da publicação do empreendimentojá precisam estar publicadas: o empreendimento as agrupa
Chamadasumauma por unidade, e depois a do empreendimento

O fluxo corrigido, com a cota de cada caso: publicar um empreendimento.